@medplum/react 2.1.5 → 2.1.7

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.
@@ -1,4 +1,4 @@
1
- "use strict";var yi=Object.create;var Wr=Object.defineProperty;var vi=Object.getOwnPropertyDescriptor;var Si=Object.getOwnPropertyNames;var bi=Object.getPrototypeOf,Pi=Object.prototype.hasOwnProperty;var Di=(e,o)=>{for(var t in o)Wr(e,t,{get:o[t],enumerable:!0})},Yf=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of Si(o))!Pi.call(e,a)&&a!==t&&Wr(e,a,{get:()=>o[a],enumerable:!(r=vi(o,a))||r.enumerable});return e};var m=(e,o,t)=>(t=e!=null?yi(bi(e)):{},Yf(o||!e||!e.__esModule?Wr(t,"default",{value:e,enumerable:!0}):t,e)),Ti=e=>Yf(Wr({},"__esModule",{value:!0}),e);var qc={};Di(qc,{AddressDisplay:()=>Xa,AddressInput:()=>Ja,AnnotationInput:()=>$a,AppShell:()=>fu,AsyncAutocomplete:()=>ut,AttachmentArrayDisplay:()=>Ln,AttachmentArrayInput:()=>Nn,AttachmentButton:()=>ct,AttachmentDisplay:()=>uo,AttachmentInput:()=>gr,BackboneElementDisplay:()=>Rt,BackboneElementInput:()=>Vt,CalendarInput:()=>uf,CheckboxFormSection:()=>Sr,CodeInput:()=>Ir,CodeableConceptDisplay:()=>mt,CodeableConceptInput:()=>Zn,CodingDisplay:()=>Qn,CodingInput:()=>Yn,ContactDetailDisplay:()=>Wn,ContactDetailInput:()=>ef,ContactPointDisplay:()=>hr,ContactPointInput:()=>Pr,Container:()=>Ro,DateTimeInput:()=>no,DefaultResourceTimeline:()=>Ku,DescriptionList:()=>Vn,DescriptionListEntry:()=>qn,DiagnosticReportDisplay:()=>Sa,Document:()=>wr,ElementDefinitionInputSelector:()=>ts,ElementDefinitionTypeInput:()=>sf,EncounterTimeline:()=>ju,ErrorBoundary:()=>st,FhirPathTable:()=>Ls,Form:()=>le,FormSection:()=>Xe,Header:()=>Mn,HumanNameDisplay:()=>pr,HumanNameInput:()=>tf,IdentifierDisplay:()=>Xn,IdentifierInput:()=>rf,Loading:()=>_r,Logo:()=>Go,MedplumLink:()=>Te,MedplumProvider:()=>ki,MemoizedFhirPathTable:()=>yd,MemoizedSearchControl:()=>pd,MoneyDisplay:()=>$n,MoneyInput:()=>af,Navbar:()=>En,ObservationTable:()=>ds,OperationOutcomeAlert:()=>St,Panel:()=>Ct,PatientTimeline:()=>vd,PlanDefinitionBuilder:()=>Sd,QuantityDisplay:()=>Lt,QuantityInput:()=>Ze,QuestionnaireBuilder:()=>qd,QuestionnaireForm:()=>Wf,QuestionnaireItemType:()=>Hr,QuestionnaireRepeatWrapper:()=>Ha,RangeDisplay:()=>Cr,RangeInput:()=>Qt,ReferenceDisplay:()=>Xo,ReferenceInput:()=>ht,ReferenceRangeEditor:()=>ic,ReferenceRangeGroupEditor:()=>Zs,RegisterForm:()=>Rc,RequestGroupDisplay:()=>Ic,ResourceArrayDisplay:()=>_n,ResourceArrayInput:()=>ff,ResourceAvatar:()=>Re,ResourceBadge:()=>No,ResourceBlame:()=>bc,ResourceDiff:()=>Tc,ResourceForm:()=>su,ResourceHistoryTable:()=>Bc,ResourceInput:()=>Br,ResourceName:()=>mo,ResourcePropertyDisplay:()=>Fe,ResourcePropertyInput:()=>ho,ResourceTable:()=>ba,ResourceTimeline:()=>Vo,Scheduler:()=>wc,SearchChangeEvent:()=>Fa,SearchClickEvent:()=>tt,SearchControl:()=>Os,SearchFieldEditor:()=>wf,SearchFilterEditor:()=>Of,SearchLoadEvent:()=>wa,ServiceRequestTimeline:()=>Lc,SignInForm:()=>Vc,StatusBadge:()=>Fr,Timeline:()=>mf,TimelineItem:()=>Ho,TimingInput:()=>lf,addDateFilterBetween:()=>Da,addField:()=>ed,addFilter:()=>vt,addLastMonthFilter:()=>Sf,addMissingFilter:()=>Ta,addNextMonthFilter:()=>Pf,addThisMonthFilter:()=>bf,addTodayFilter:()=>Cf,addTomorrowFilter:()=>yf,addYearToDateFilter:()=>Tf,addYesterdayFilter:()=>hf,buildFieldNameString:()=>Ve,clearFilters:()=>Yu,clearFiltersOnField:()=>Lr,convertIsoToLocal:()=>Ul,convertLocalToIso:()=>Ql,createScriptTag:()=>Qr,deleteFilter:()=>gf,getErrorsForInput:()=>we,getIssuesForExpression:()=>br,getMonthString:()=>as,getNewMultiSelectValues:()=>Hf,getOpString:()=>Zt,getQuestionnaireItemReferenceTargetTypes:()=>Vr,getRecaptcha:()=>Kf,getSearchOperators:()=>Mf,getSortField:()=>Bf,getStartMonth:()=>Ca,getTimeString:()=>ti,getValueAndType:()=>We,initRecaptcha:()=>$f,isChoiceQuestion:()=>Rf,isQuestionEnabled:()=>Nf,isSortDescending:()=>Af,parseForm:()=>Fn,renderValue:()=>Ff,setFilters:()=>_t,setOffset:()=>Bs,setPage:()=>kf,setPropertyValue:()=>Ht,setQuestionnaireItemReferenceTargetTypes:()=>qr,setSort:()=>ka,sortByDateAndPriority:()=>pf,toggleSort:()=>od,useMedplum:()=>T,useMedplumContext:()=>Dt,useMedplumNavigate:()=>Do,useMedplumProfile:()=>lr,useResource:()=>re});module.exports=Ti(qc);var el=require("@medplum/core"),Wa=m(require("react"));function Xa(e){let o=e.value;return o?Wa.default.createElement(Wa.default.Fragment,null,(0,el.formatAddress)(o)):null}var io=require("@mantine/core"),je=m(require("react"));function ol(e,o){return e.line&&e.line.length>o?e.line[o]:""}function tl(e,o,t){let r=e.line||[];for(;r.length<=o;)r.push("");return r[o]=t,{...e,line:r}}function Ja(e){let[o,t]=(0,je.useState)(e.defaultValue||{}),r=(0,je.useRef)();r.current=o;function a(c){t(c),e.onChange&&e.onChange(c)}function n(c){a({...r.current,use:c})}function f(c){a({...r.current,type:c})}function s(c){a(tl(r.current||{},0,c))}function l(c){a(tl(r.current||{},1,c))}function i(c){a({...r.current,city:c})}function u(c){a({...r.current,state:c})}function d(c){a({...r.current,postalCode:c})}return je.default.createElement(io.Group,{spacing:"xs",grow:!0,noWrap:!0},je.default.createElement(io.NativeSelect,{"data-testid":"address-use",defaultValue:o.use,onChange:c=>n(c.currentTarget.value),data:["","home","work","temp","old","billing"]}),je.default.createElement(io.NativeSelect,{"data-testid":"address-type",defaultValue:o.type,onChange:c=>f(c.currentTarget.value),data:["","postal","physical","both"]}),je.default.createElement(io.TextInput,{placeholder:"Line 1",defaultValue:ol(o,0),onChange:c=>s(c.currentTarget.value)}),je.default.createElement(io.TextInput,{placeholder:"Line 2",defaultValue:ol(o,1),onChange:c=>l(c.currentTarget.value)}),je.default.createElement(io.TextInput,{placeholder:"City",defaultValue:o.city,onChange:c=>i(c.currentTarget.value)}),je.default.createElement(io.TextInput,{placeholder:"State",defaultValue:o.state,onChange:c=>u(c.currentTarget.value)}),je.default.createElement(io.TextInput,{placeholder:"Postal Code",defaultValue:o.postalCode,onChange:c=>d(c.currentTarget.value)}))}var nl=require("@mantine/core"),fl=require("@medplum/core"),Tt=m(require("react"));var rl=require("@mantine/notifications"),_e=m(require("react")),al=(0,_e.createContext)(void 0);function ki(e){let o=e.medplum,t=e.navigate??Bi,[r,a]=(0,_e.useState)({profile:o.getProfile(),loading:!1});(0,_e.useEffect)(()=>{function f(){a({...r,profile:o.getProfile()})}return o.addEventListener("change",f),()=>o.removeEventListener("change",f)},[o,r]),(0,_e.useEffect)(()=>{function f(){(0,rl.showNotification)({color:"red",message:"No connection to server",autoClose:!1})}return o.addEventListener("offline",f),()=>o.removeEventListener("offline",f)},[o]);let n=(0,_e.useMemo)(()=>({...r,medplum:o,navigate:t}),[r,o,t]);return _e.default.createElement(al.Provider,{value:n},e.children)}function Dt(){return(0,_e.useContext)(al)}function T(){return Dt().medplum}function Do(){return Dt().navigate}function lr(){return Dt().profile}function Bi(e){window.location.assign(e)}function $a(e){let o=lr(),[t,r]=(0,Tt.useState)(e.defaultValue||{}),a=(0,Tt.useRef)();a.current=t;function n(f){let s=f?{text:f,authorReference:o&&(0,fl.createReference)(o),time:new Date().toISOString()}:{};r(s),e.onChange&&e.onChange(s)}return Tt.default.createElement(nl.TextInput,{name:e.name,placeholder:"Annotation text",defaultValue:t.text,onChange:f=>n(f.currentTarget.value)})}var fa=require("@mantine/core"),ao=m(require("react"));var cl=require("@mantine/core"),ml=require("@medplum/core");var sr=require("react"),Qo=m(require("prop-types"));var ll={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Ai=Object.defineProperty,Mi=Object.defineProperties,Fi=Object.getOwnPropertyDescriptors,Xr=Object.getOwnPropertySymbols,ul=Object.prototype.hasOwnProperty,dl=Object.prototype.propertyIsEnumerable,sl=(e,o,t)=>o in e?Ai(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,il=(e,o)=>{for(var t in o||(o={}))ul.call(o,t)&&sl(e,t,o[t]);if(Xr)for(var t of Xr(o))dl.call(o,t)&&sl(e,t,o[t]);return e},wi=(e,o)=>Mi(e,Fi(o)),Oi=(e,o)=>{var t={};for(var r in e)ul.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Xr)for(var r of Xr(e))o.indexOf(r)<0&&dl.call(e,r)&&(t[r]=e[r]);return t},x=(e,o,t)=>{let r=(0,sr.forwardRef)((a,n)=>{var f=a,{color:s="currentColor",size:l=24,stroke:i=2,children:u}=f,d=Oi(f,["color","size","stroke","children"]);return(0,sr.createElement)("svg",il(wi(il({ref:n},ll),{width:l,height:l,stroke:s,strokeWidth:i,className:`tabler-icon tabler-icon-${e}`}),d),[...t.map(([c,h])=>(0,sr.createElement)(c,h)),...u||[]])});return r.propTypes={color:Qo.default.string,size:Qo.default.oneOfType([Qo.default.string,Qo.default.number]),stroke:Qo.default.oneOfType([Qo.default.string,Qo.default.number])},r.displayName=`${o}`,r};var Ka=x("adjustments-horizontal","IconAdjustmentsHorizontal",[["path",{d:"M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M4 6l8 0",key:"svg-1"}],["path",{d:"M16 6l4 0",key:"svg-2"}],["path",{d:"M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M4 12l2 0",key:"svg-4"}],["path",{d:"M10 12l10 0",key:"svg-5"}],["path",{d:"M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-6"}],["path",{d:"M4 18l11 0",key:"svg-7"}],["path",{d:"M19 18l1 0",key:"svg-8"}]]);var lt=x("alert-circle","IconAlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);var ja=x("arrow-down","IconArrowDown",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M18 13l-6 6",key:"svg-1"}],["path",{d:"M6 13l6 6",key:"svg-2"}]]);var _a=x("arrow-up","IconArrowUp",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M18 11l-6 -6",key:"svg-1"}],["path",{d:"M6 11l6 -6",key:"svg-2"}]]);var Za=x("bleach-off","IconBleachOff",[["path",{d:"M5 19h14m1.986 -1.977a2 2 0 0 0 -.146 -.773l-7.1 -12.25a2 2 0 0 0 -3.5 0l-.815 1.405m-1.488 2.568l-4.797 8.277a2 2 0 0 0 1.75 2.75",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]);var Ya=x("bleach","IconBleach",[["path",{d:"M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75",key:"svg-0"}]]);var en=x("box-multiple","IconBoxMultiple",[["path",{d:"M7 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M17 17v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h2",key:"svg-1"}]]);var on=x("brackets-contain","IconBracketsContain",[["path",{d:"M7 4h-4v16h4",key:"svg-0"}],["path",{d:"M17 4h4v16h-4",key:"svg-1"}],["path",{d:"M8 16h.01",key:"svg-2"}],["path",{d:"M12 16h.01",key:"svg-3"}],["path",{d:"M16 16h.01",key:"svg-4"}]]);var tn=x("bucket-off","IconBucketOff",[["path",{d:"M5.029 5.036c-.655 .58 -1.029 1.25 -1.029 1.964c0 2.033 3.033 3.712 6.96 3.967m3.788 -.21c3.064 -.559 5.252 -2.029 5.252 -3.757c0 -2.21 -3.582 -4 -8 -4c-1.605 0 -3.1 .236 -4.352 .643",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.1 -.3 .252 -.812 .457 -1.535m.862 -3.146c.262 -.975 .735 -2.76 1.418 -5.354a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]]);var rn=x("bucket","IconBucket",[["path",{d:"M12 7m-8 0a8 4 0 1 0 16 0a8 4 0 1 0 -16 0",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.333 -1 1.246 -4.345 2.737 -10.035a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}]]);var To=x("calendar","IconCalendar",[["path",{d:"M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z",key:"svg-0"}],["path",{d:"M16 3v4",key:"svg-1"}],["path",{d:"M8 3v4",key:"svg-2"}],["path",{d:"M4 11h16",key:"svg-3"}],["path",{d:"M11 15h1",key:"svg-4"}],["path",{d:"M12 15v3",key:"svg-5"}]]);var ir=x("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]);var an=x("checkbox","IconCheckbox",[["path",{d:"M9 11l3 3l8 -8",key:"svg-0"}],["path",{d:"M20 12v6a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h9",key:"svg-1"}]]);var nn=x("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]);var zo=x("circle-minus","IconCircleMinus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}]]);var kt=x("circle-plus","IconCirclePlus",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M9 12h6",key:"svg-1"}],["path",{d:"M12 9v6",key:"svg-2"}]]);var ur=x("cloud-upload","IconCloudUpload",[["path",{d:"M7 18a4.6 4.4 0 0 1 0 -9a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-1",key:"svg-0"}],["path",{d:"M9 15l3 -3l3 3",key:"svg-1"}],["path",{d:"M12 12l0 9",key:"svg-2"}]]);var fn=x("columns","IconColumns",[["path",{d:"M4 6l5.5 0",key:"svg-0"}],["path",{d:"M4 10l5.5 0",key:"svg-1"}],["path",{d:"M4 14l5.5 0",key:"svg-2"}],["path",{d:"M4 18l5.5 0",key:"svg-3"}],["path",{d:"M14.5 6l5.5 0",key:"svg-4"}],["path",{d:"M14.5 10l5.5 0",key:"svg-5"}],["path",{d:"M14.5 14l5.5 0",key:"svg-6"}],["path",{d:"M14.5 18l5.5 0",key:"svg-7"}]]);var ln=x("copy","IconCopy",[["path",{d:"M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2",key:"svg-1"}]]);var sn=x("currency-dollar","IconCurrencyDollar",[["path",{d:"M16.7 8a3 3 0 0 0 -2.7 -2h-4a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6h-4a3 3 0 0 1 -2.7 -2",key:"svg-0"}],["path",{d:"M12 3v3m0 12v3",key:"svg-1"}]]);var un=x("dots","IconDots",[["path",{d:"M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var dn=x("edit","IconEdit",[["path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1",key:"svg-0"}],["path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]]);var Bt=x("equal-not","IconEqualNot",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}],["path",{d:"M5 19l14 -14",key:"svg-2"}]]);var At=x("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);var cn=x("file-alert","IconFileAlert",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 17l.01 0",key:"svg-2"}],["path",{d:"M12 11l0 3",key:"svg-3"}]]);var mn=x("file-plus","IconFilePlus",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 11l0 6",key:"svg-2"}],["path",{d:"M9 14l6 0",key:"svg-3"}]]);var pn=x("filter","IconFilter",[["path",{d:"M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z",key:"svg-0"}]]);var xn=x("list-details","IconListDetails",[["path",{d:"M13 5h8",key:"svg-0"}],["path",{d:"M13 9h5",key:"svg-1"}],["path",{d:"M13 15h8",key:"svg-2"}],["path",{d:"M13 19h5",key:"svg-3"}],["path",{d:"M3 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-4"}],["path",{d:"M3 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-5"}]]);var In=x("logout","IconLogout",[["path",{d:"M14 8v-2a2 2 0 0 0 -2 -2h-7a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M9 12h12l-3 -3",key:"svg-1"}],["path",{d:"M18 15l3 -3",key:"svg-2"}]]);var Jr=x("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]);var $r=x("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]);var gn=x("message","IconMessage",[["path",{d:"M8 9h8",key:"svg-0"}],["path",{d:"M8 13h6",key:"svg-1"}],["path",{d:"M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z",key:"svg-2"}]]);var hn=x("pin","IconPin",[["path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4",key:"svg-0"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-1"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-2"}]]);var Cn=x("pinned-off","IconPinnedOff",[["path",{d:"M3 3l18 18",key:"svg-0"}],["path",{d:"M15 4.5l-3.249 3.249m-2.57 1.433l-2.181 .818l-1.5 1.5l7 7l1.5 -1.5l.82 -2.186m1.43 -2.563l3.25 -3.251",key:"svg-1"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-2"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-3"}]]);var yn=x("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);var vn=x("refresh","IconRefresh",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]]);var Sn=x("search","IconSearch",[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]);var Mt=x("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]);var dr=x("sort-ascending","IconSortAscending",[["path",{d:"M4 6l7 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l9 0",key:"svg-2"}],["path",{d:"M15 9l3 -3l3 3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]);var cr=x("sort-descending","IconSortDescending",[["path",{d:"M4 6l9 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l7 0",key:"svg-2"}],["path",{d:"M15 15l3 3l3 -3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]);var bn=x("square","IconSquare",[["path",{d:"M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z",key:"svg-0"}]]);var Pn=x("switch-horizontal","IconSwitchHorizontal",[["path",{d:"M16 3l4 4l-4 4",key:"svg-0"}],["path",{d:"M10 7l10 0",key:"svg-1"}],["path",{d:"M8 13l-4 4l4 4",key:"svg-2"}],["path",{d:"M4 17l9 0",key:"svg-3"}]]);var Dn=x("table-export","IconTableExport",[["path",{d:"M12.5 21h-7.5a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5",key:"svg-0"}],["path",{d:"M3 10h18",key:"svg-1"}],["path",{d:"M10 3v18",key:"svg-2"}],["path",{d:"M16 19h6",key:"svg-3"}],["path",{d:"M19 16l3 3l-3 3",key:"svg-4"}]]);var mr=x("trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]);var Tn=x("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);var Kr=m(require("react")),st=class extends Kr.default.Component{constructor(t){super(t);this.state={}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,r){console.error("Uncaught error:",t,r)}render(){return this.state.error?Kr.default.createElement(cl.Alert,{icon:Kr.default.createElement(lt,{size:16}),title:"Something went wrong",color:"red"},(0,ml.normalizeErrorString)(this.state.error)):this.props.children}};var jr=require("@mantine/core"),kn=m(require("react"));function _r(){return kn.default.createElement(jr.Center,{style:{width:"100%",height:"100vh"}},kn.default.createElement(jr.Loader,null))}var K=require("@mantine/core"),xr=require("@medplum/core");var X=m(require("react"));var pl=require("@medplum/core"),Bn=m(require("react"));function pr(e){let o=e.value;return o?Bn.default.createElement(Bn.default.Fragment,null,(0,pl.formatHumanName)(o,e.options)):null}var An=require("@mantine/core"),oa=require("@medplum/core"),ea=m(require("react"));var Il=require("@mantine/core"),Yr=require("@medplum/core"),gl=m(require("react"));function Q(e){e.preventDefault(),e.stopPropagation()}function Zr(e){if(xl(e))return!0;if(e instanceof HTMLTableCellElement){let o=e.children;if(o.length===1&&xl(o[0]))return!0}return!1}function xl(e){return e instanceof HTMLInputElement&&e.type==="checkbox"}function Te(e){let o=Do(),{to:t,suffix:r,label:a,onClick:n,children:f,...s}=e,l=Ei(t);return r&&(l+="/"+r),gl.default.createElement(Il.Anchor,{href:l,"aria-label":a,onClick:i=>{Q(i),n?n(i):t&&o(l)},...s},f)}function Ei(e){if(e){if(typeof e=="string")return Li(e);if((0,Yr.isResource)(e))return Ri(e);if((0,Yr.isReference)(e))return Ni(e)}return"#"}function Li(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e}function Ri(e){return`/${e.resourceType}/${e.id}`}function Ni(e){return`/${e.reference}`}var ko=require("@medplum/core"),it=require("react");function re(e,o){let t=T(),[r,a]=(0,it.useState)(hl(t,e)),n=(0,it.useCallback)(f=>{(0,ko.deepEquals)(f,r)||a(f)},[r,a]);return(0,it.useEffect)(()=>{n(hl(t,e))},[t,e,n]),(0,it.useEffect)(()=>{let f=!0;return(0,ko.isReference)(e)&&t.readReference(e).then(s=>{f&&n(s)}).catch(s=>{f&&(n(void 0),o&&o((0,ko.normalizeOperationOutcome)(s)))}),()=>f=!1},[t,r,e,n,o]),r}function hl(e,o){if(o){if((0,ko.isResource)(o))return o;if((0,ko.isReference)(o))return e.getCachedReference(o)}}function Re(e){let o=re(e.value),t=o?(0,oa.getDisplayString)(o):e.alt??"",r=(o&&(0,oa.getImageSrc)(o))??e.src,a=e.radius??"xl",n={...e};return delete n.value,delete n.link,e.link?ea.default.createElement(Te,{to:o},ea.default.createElement(An.Avatar,{src:r,alt:t,radius:a,...n})):ea.default.createElement(An.Avatar,{src:r,alt:t,radius:a,...n})}var dt=require("@mantine/core"),Bo=require("@medplum/core");var Qe=m(require("react"));var ta=require("@mantine/core"),Cl=require("@mantine/notifications"),yl=require("@medplum/core"),fe=m(require("react"));function ut(e){let{defaultValue:o,toKey:t,toOption:r,loadOptions:a,onChange:n,onCreate:f,creatable:s,...l}=e,i=Hi(o),u=(0,fe.useRef)(null),[d,c]=(0,fe.useState)(),[h,P]=(0,fe.useState)(),[M,D]=(0,fe.useState)(),[k,A]=(0,fe.useState)(),[I,N]=(0,fe.useState)(i.map(r)),[C,R]=(0,fe.useState)([]),me=(0,fe.useRef)();me.current=d;let to=(0,fe.useRef)();to.current=h;let Ae=(0,fe.useRef)();Ae.current=M;let ar=(0,fe.useRef)();ar.current=k;let b=(0,fe.useRef)();b.current=C;let U=(0,fe.useCallback)(()=>{P(void 0);let he=u.current?.value.trim()||"";if(he===me.current)return;c(he);let Me=new AbortController;D(Me),a(he,Me.signal).then(Le=>{Me.signal.aborted||(R(Le.map(r)),D(void 0),ar.current&&(Le.length>0&&n(Le.slice(0,1)),A(!1)))}).catch(Le=>{Me.signal.aborted||Le.message.includes("aborted")||(0,Cl.showNotification)({color:"red",message:(0,yl.normalizeErrorString)(Le)})})},[a,n,r]),so=(0,fe.useCallback)(()=>{Ae.current&&(Ae.current.abort(),D(void 0)),to.current!==void 0&&window.clearTimeout(to.current);let he=window.setTimeout(()=>U(),100);P(he)},[U]),Ne=(0,fe.useCallback)(he=>{let Me=[],Le=[];for(let nr of he){let zr=b.current?.find(Ci=>Ci.value===nr),fr=zr?.resource;!fr&&s!==!1&&f&&(fr=f(nr),zr=r(fr)),fr&&Me.push(fr),zr&&Le.push(zr)}n(Me),N(Le)},[s,n,f,r]),ft=(0,fe.useCallback)(he=>{he.key==="Enter"&&(!to.current&&!Ae.current?(Q(he),b.current&&b.current.length>0&&(R(b.current.slice(0,1)),Ne([b.current[0].value]))):A(!0))},[Ne]),B=(0,fe.useCallback)(he=>{let Me=r(f(he));return R([...b.current,Me]),Me},[f,R,r]),oe=(0,fe.useCallback)((he,Me)=>!Me,[]);return(0,fe.useEffect)(()=>()=>{Ae.current&&Ae.current.abort()},[]),fe.default.createElement(ta.MultiSelect,{...l,ref:u,defaultValue:i.map(t),searchable:!0,onKeyDown:ft,onSearchChange:so,data:[...I,...C],onFocus:U,onChange:Ne,onCreate:B,rightSectionWidth:40,rightSection:M?fe.default.createElement(ta.Loader,{size:16}):null,filter:oe,creatable:!0})}function Hi(e){return e?Array.isArray(e)?e:[e]:[]}var Vi=(0,dt.createStyles)(()=>({searchInput:{input:{width:220,transition:"width 0.2s"},"input:focus":{width:400},"@media (max-width: 800px)":{input:{width:150},"input:focus":{width:150}}}}));function qi(e){return e.id}function Gi(e){return{value:e.id,label:(0,Bo.getDisplayString)(e),resource:e}}function bl(e){let{classes:o}=Vi(),t=Do(),r=T(),a=(0,Qe.useCallback)(async(f,s)=>{let l=Qi(f),i={signal:s},u=await r.graphql(l,void 0,void 0,i);return zi(u,f)},[r]),n=(0,Qe.useCallback)(f=>{f.length>0&&t(`/${(0,Bo.getReferenceString)(f[0])}`)},[t]);return Qe.default.createElement(ut,{key:`${e.pathname}?${e.searchParams}`,size:"sm",radius:"md",className:o.searchInput,icon:Qe.default.createElement(Sn,{size:16}),placeholder:"Search",itemComponent:Ui,toKey:qi,toOption:Gi,onChange:n,loadOptions:a,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var Ui=(0,Qe.forwardRef)(({resource:e,...o},t)=>{let r;return e.resourceType==="Patient"?r=e.birthDate:e.resourceType==="ServiceRequest"&&(r=e.subject?.display),Qe.default.createElement("div",{ref:t,...o},Qe.default.createElement(dt.Group,{noWrap:!0},Qe.default.createElement(Re,{value:e}),Qe.default.createElement("div",null,Qe.default.createElement(dt.Text,null,(0,Bo.getDisplayString)(e)),Qe.default.createElement(dt.Text,{size:"xs",color:"dimmed"},r))))});function Qi(e){let o=JSON.stringify(e);return(0,Bo.isUUID)(e)?`{
1
+ "use strict";var Ai=Object.create;var Xr=Object.defineProperty;var Fi=Object.getOwnPropertyDescriptor;var Mi=Object.getOwnPropertyNames;var wi=Object.getPrototypeOf,Oi=Object.prototype.hasOwnProperty;var Ei=(e,o)=>{for(var t in o)Xr(e,t,{get:o[t],enumerable:!0})},ll=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of Mi(o))!Oi.call(e,a)&&a!==t&&Xr(e,a,{get:()=>o[a],enumerable:!(r=Fi(o,a))||r.enumerable});return e};var m=(e,o,t)=>(t=e!=null?Ai(wi(e)):{},ll(o||!e||!e.__esModule?Xr(t,"default",{value:e,enumerable:!0}):t,e)),Li=e=>ll(Xr({},"__esModule",{value:!0}),e);var jc={};Ei(jc,{AddressDisplay:()=>ja,AddressInput:()=>_a,AnnotationInput:()=>Za,AppShell:()=>mu,AsyncAutocomplete:()=>it,AttachmentArrayDisplay:()=>Vn,AttachmentArrayInput:()=>Gn,AttachmentButton:()=>dt,AttachmentDisplay:()=>so,AttachmentInput:()=>Ir,BackboneElementDisplay:()=>Ht,BackboneElementInput:()=>Wt,CalendarInput:()=>vf,CheckboxFormSection:()=>Pr,CodeInput:()=>xr,CodeableConceptDisplay:()=>pt,CodeableConceptInput:()=>sf,CodingDisplay:()=>Yn,CodingInput:()=>Dr,ContactDetailDisplay:()=>of,ContactDetailInput:()=>uf,ContactPointDisplay:()=>yr,ContactPointInput:()=>kr,Container:()=>wo,DateTimeInput:()=>ro,DefaultResourceTimeline:()=>nd,DescriptionList:()=>$n,DescriptionListEntry:()=>jn,DiagnosticReportDisplay:()=>Ba,Document:()=>gr,ElementDefinitionInputSelector:()=>Ss,ElementDefinitionTypeInput:()=>yf,EncounterTimeline:()=>fd,ErrorBoundary:()=>lt,FhirPathTable:()=>Ys,Form:()=>le,FormSection:()=>Xe,Header:()=>En,HumanNameDisplay:()=>mr,HumanNameInput:()=>pf,IdentifierDisplay:()=>tf,IdentifierInput:()=>xf,Loading:()=>ea,Logo:()=>Oo,MedplumLink:()=>ke,MedplumProvider:()=>Md,MemoizedFhirPathTable:()=>Fd,MemoizedSearchControl:()=>Pd,MoneyDisplay:()=>af,MoneyInput:()=>If,Navbar:()=>Hn,ObservationTable:()=>Fs,OperationOutcomeAlert:()=>mt,Panel:()=>ct,PatientTimeline:()=>Od,PlanDefinitionBuilder:()=>Ed,QuantityDisplay:()=>Nt,QuantityInput:()=>je,QuestionnaireBuilder:()=>Zd,QuestionnaireForm:()=>ol,QuestionnaireItemType:()=>qr,QuestionnaireRepeatWrapper:()=>Qa,RangeDisplay:()=>vr,RangeInput:()=>Qt,ReferenceDisplay:()=>Jo,ReferenceInput:()=>Ct,ReferenceRangeEditor:()=>vc,ReferenceRangeGroupEditor:()=>Ii,RegisterForm:()=>gu,RequestGroupDisplay:()=>Bc,ResourceArrayDisplay:()=>lf,ResourceArrayInput:()=>hf,ResourceAvatar:()=>Le,ResourceBadge:()=>Ho,ResourceBlame:()=>Lc,ResourceDiff:()=>Nc,ResourceForm:()=>Vc,ResourceHistoryTable:()=>qc,ResourceInput:()=>Mr,ResourceName:()=>uo,ResourcePropertyDisplay:()=>we,ResourcePropertyInput:()=>ho,ResourceTable:()=>Aa,ResourceTimeline:()=>qo,Scheduler:()=>Xc,SearchChangeEvent:()=>Na,SearchClickEvent:()=>rt,SearchControl:()=>_s,SearchFieldEditor:()=>Uf,SearchFilterEditor:()=>Qf,SearchLoadEvent:()=>Ha,ServiceRequestTimeline:()=>$c,SignInForm:()=>yu,StatusBadge:()=>Er,Timeline:()=>Pf,TimelineItem:()=>Vo,TimingInput:()=>Cf,addDateFilterBetween:()=>Ma,addField:()=>ud,addFilter:()=>vt,addLastMonthFilter:()=>wf,addMissingFilter:()=>wa,addNextMonthFilter:()=>Ef,addThisMonthFilter:()=>Of,addTodayFilter:()=>Af,addTomorrowFilter:()=>Ff,addYearToDateFilter:()=>Rf,addYesterdayFilter:()=>Bf,buildFieldNameString:()=>Ve,clearFilters:()=>id,clearFiltersOnField:()=>Nr,convertIsoToLocal:()=>cf,convertLocalToIso:()=>mf,createScriptTag:()=>Cr,deleteFilter:()=>kf,getErrorsForInput:()=>Fe,getIssuesForExpression:()=>hr,getNewMultiSelectValues:()=>Kf,getOpString:()=>Zt,getQuestionnaireItemReferenceTargetTypes:()=>Gr,getRecaptcha:()=>Wn,getSearchOperators:()=>qf,getSortField:()=>Hf,initRecaptcha:()=>zn,isChoiceQuestion:()=>Xf,isQuestionEnabled:()=>Jf,isSortDescending:()=>Vf,parseForm:()=>Ln,reactContext:()=>Kr,renderValue:()=>Gf,setFilters:()=>_t,setOffset:()=>Xs,setPage:()=>Nf,setQuestionnaireItemReferenceTargetTypes:()=>Ur,setSort:()=>Oa,sortByDateAndPriority:()=>Tf,toggleSort:()=>dd,useMedplum:()=>T,useMedplumContext:()=>Tt,useMedplumNavigate:()=>To,useMedplumProfile:()=>fr,useResource:()=>te,useSearch:()=>Qc,useSearchOne:()=>zc,useSearchResources:()=>al});module.exports=Li(jc);var sl=require("@medplum/core"),$a=m(require("react"));function ja(e){let o=e.value;return o?$a.default.createElement($a.default.Fragment,null,(0,sl.formatAddress)(o)):null}var lo=require("@mantine/core"),Je=m(require("react"));function il(e,o){return e.line&&e.line.length>o?e.line[o]:""}function ul(e,o,t){let r=e.line||[];for(;r.length<=o;)r.push("");return r[o]=t,{...e,line:r}}function _a(e){let[o,t]=(0,Je.useState)(e.defaultValue||{}),r=(0,Je.useRef)();r.current=o;function a(c){t(c),e.onChange&&e.onChange(c)}function n(c){a({...r.current,use:c})}function f(c){a({...r.current,type:c})}function s(c){a(ul(r.current||{},0,c))}function l(c){a(ul(r.current||{},1,c))}function i(c){a({...r.current,city:c})}function u(c){a({...r.current,state:c})}function d(c){a({...r.current,postalCode:c})}return Je.default.createElement(lo.Group,{spacing:"xs",grow:!0,noWrap:!0},Je.default.createElement(lo.NativeSelect,{"data-testid":"address-use",defaultValue:o.use,onChange:c=>n(c.currentTarget.value),data:["","home","work","temp","old","billing"]}),Je.default.createElement(lo.NativeSelect,{"data-testid":"address-type",defaultValue:o.type,onChange:c=>f(c.currentTarget.value),data:["","postal","physical","both"]}),Je.default.createElement(lo.TextInput,{placeholder:"Line 1",defaultValue:il(o,0),onChange:c=>s(c.currentTarget.value)}),Je.default.createElement(lo.TextInput,{placeholder:"Line 2",defaultValue:il(o,1),onChange:c=>l(c.currentTarget.value)}),Je.default.createElement(lo.TextInput,{placeholder:"City",defaultValue:o.city,onChange:c=>i(c.currentTarget.value)}),Je.default.createElement(lo.TextInput,{placeholder:"State",defaultValue:o.state,onChange:c=>u(c.currentTarget.value)}),Je.default.createElement(lo.TextInput,{placeholder:"Postal Code",defaultValue:o.postalCode,onChange:c=>d(c.currentTarget.value)}))}var dl=require("@mantine/core"),cl=require("@medplum/core"),Dt=m(require("react"));var Jr=require("react"),Kr=(0,Jr.createContext)(void 0);function Tt(){return(0,Jr.useContext)(Kr)}function T(){return Tt().medplum}function To(){return Tt().navigate}function fr(){return Tt().profile}function Za(e){let o=fr(),[t,r]=(0,Dt.useState)(e.defaultValue||{}),a=(0,Dt.useRef)();a.current=t;function n(f){let s=f?{text:f,authorReference:o&&(0,cl.createReference)(o),time:new Date().toISOString()}:{};r(s),e.onChange&&e.onChange(s)}return Dt.default.createElement(dl.TextInput,{name:e.name,placeholder:"Annotation text",defaultValue:t.text,onChange:f=>n(f.currentTarget.value)})}var ia=require("@mantine/core"),to=m(require("react"));var hl=require("@mantine/core"),Cl=require("@medplum/core");var lr=require("react"),zo=m(require("prop-types"));var ml={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Ri=Object.defineProperty,Ni=Object.defineProperties,Hi=Object.getOwnPropertyDescriptors,$r=Object.getOwnPropertySymbols,Il=Object.prototype.hasOwnProperty,gl=Object.prototype.propertyIsEnumerable,pl=(e,o,t)=>o in e?Ri(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,xl=(e,o)=>{for(var t in o||(o={}))Il.call(o,t)&&pl(e,t,o[t]);if($r)for(var t of $r(o))gl.call(o,t)&&pl(e,t,o[t]);return e},Vi=(e,o)=>Ni(e,Hi(o)),qi=(e,o)=>{var t={};for(var r in e)Il.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&$r)for(var r of $r(e))o.indexOf(r)<0&&gl.call(e,r)&&(t[r]=e[r]);return t},x=(e,o,t)=>{let r=(0,lr.forwardRef)((a,n)=>{var f=a,{color:s="currentColor",size:l=24,stroke:i=2,children:u}=f,d=qi(f,["color","size","stroke","children"]);return(0,lr.createElement)("svg",xl(Vi(xl({ref:n},ml),{width:l,height:l,stroke:s,strokeWidth:i,className:`tabler-icon tabler-icon-${e}`}),d),[...t.map(([c,I])=>(0,lr.createElement)(c,I)),...u||[]])});return r.propTypes={color:zo.default.string,size:zo.default.oneOfType([zo.default.string,zo.default.number]),stroke:zo.default.oneOfType([zo.default.string,zo.default.number])},r.displayName=`${o}`,r};var Ya=x("adjustments-horizontal","IconAdjustmentsHorizontal",[["path",{d:"M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M4 6l8 0",key:"svg-1"}],["path",{d:"M16 6l4 0",key:"svg-2"}],["path",{d:"M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M4 12l2 0",key:"svg-4"}],["path",{d:"M10 12l10 0",key:"svg-5"}],["path",{d:"M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-6"}],["path",{d:"M4 18l11 0",key:"svg-7"}],["path",{d:"M19 18l1 0",key:"svg-8"}]]);var ft=x("alert-circle","IconAlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);var en=x("arrow-down","IconArrowDown",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M18 13l-6 6",key:"svg-1"}],["path",{d:"M6 13l6 6",key:"svg-2"}]]);var on=x("arrow-up","IconArrowUp",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M18 11l-6 -6",key:"svg-1"}],["path",{d:"M6 11l6 -6",key:"svg-2"}]]);var tn=x("bleach-off","IconBleachOff",[["path",{d:"M5 19h14m1.986 -1.977a2 2 0 0 0 -.146 -.773l-7.1 -12.25a2 2 0 0 0 -3.5 0l-.815 1.405m-1.488 2.568l-4.797 8.277a2 2 0 0 0 1.75 2.75",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]);var rn=x("bleach","IconBleach",[["path",{d:"M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75",key:"svg-0"}]]);var an=x("box-multiple","IconBoxMultiple",[["path",{d:"M7 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M17 17v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h2",key:"svg-1"}]]);var nn=x("brackets-contain","IconBracketsContain",[["path",{d:"M7 4h-4v16h4",key:"svg-0"}],["path",{d:"M17 4h4v16h-4",key:"svg-1"}],["path",{d:"M8 16h.01",key:"svg-2"}],["path",{d:"M12 16h.01",key:"svg-3"}],["path",{d:"M16 16h.01",key:"svg-4"}]]);var fn=x("bucket-off","IconBucketOff",[["path",{d:"M5.029 5.036c-.655 .58 -1.029 1.25 -1.029 1.964c0 2.033 3.033 3.712 6.96 3.967m3.788 -.21c3.064 -.559 5.252 -2.029 5.252 -3.757c0 -2.21 -3.582 -4 -8 -4c-1.605 0 -3.1 .236 -4.352 .643",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.1 -.3 .252 -.812 .457 -1.535m.862 -3.146c.262 -.975 .735 -2.76 1.418 -5.354a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]]);var ln=x("bucket","IconBucket",[["path",{d:"M12 7m-8 0a8 4 0 1 0 16 0a8 4 0 1 0 -16 0",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.333 -1 1.246 -4.345 2.737 -10.035a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}]]);var Do=x("calendar","IconCalendar",[["path",{d:"M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z",key:"svg-0"}],["path",{d:"M16 3v4",key:"svg-1"}],["path",{d:"M8 3v4",key:"svg-2"}],["path",{d:"M4 11h16",key:"svg-3"}],["path",{d:"M11 15h1",key:"svg-4"}],["path",{d:"M12 15v3",key:"svg-5"}]]);var sr=x("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]);var sn=x("checkbox","IconCheckbox",[["path",{d:"M9 11l3 3l8 -8",key:"svg-0"}],["path",{d:"M20 12v6a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h9",key:"svg-1"}]]);var un=x("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]);var Wo=x("circle-minus","IconCircleMinus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}]]);var kt=x("circle-plus","IconCirclePlus",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M9 12h6",key:"svg-1"}],["path",{d:"M12 9v6",key:"svg-2"}]]);var ir=x("cloud-upload","IconCloudUpload",[["path",{d:"M7 18a4.6 4.4 0 0 1 0 -9a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-1",key:"svg-0"}],["path",{d:"M9 15l3 -3l3 3",key:"svg-1"}],["path",{d:"M12 12l0 9",key:"svg-2"}]]);var dn=x("columns","IconColumns",[["path",{d:"M4 6l5.5 0",key:"svg-0"}],["path",{d:"M4 10l5.5 0",key:"svg-1"}],["path",{d:"M4 14l5.5 0",key:"svg-2"}],["path",{d:"M4 18l5.5 0",key:"svg-3"}],["path",{d:"M14.5 6l5.5 0",key:"svg-4"}],["path",{d:"M14.5 10l5.5 0",key:"svg-5"}],["path",{d:"M14.5 14l5.5 0",key:"svg-6"}],["path",{d:"M14.5 18l5.5 0",key:"svg-7"}]]);var cn=x("copy","IconCopy",[["path",{d:"M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2",key:"svg-1"}]]);var mn=x("currency-dollar","IconCurrencyDollar",[["path",{d:"M16.7 8a3 3 0 0 0 -2.7 -2h-4a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6h-4a3 3 0 0 1 -2.7 -2",key:"svg-0"}],["path",{d:"M12 3v3m0 12v3",key:"svg-1"}]]);var pn=x("dots","IconDots",[["path",{d:"M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var xn=x("edit","IconEdit",[["path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1",key:"svg-0"}],["path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]]);var Bt=x("equal-not","IconEqualNot",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}],["path",{d:"M5 19l14 -14",key:"svg-2"}]]);var At=x("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);var In=x("file-alert","IconFileAlert",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 17l.01 0",key:"svg-2"}],["path",{d:"M12 11l0 3",key:"svg-3"}]]);var gn=x("file-plus","IconFilePlus",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 11l0 6",key:"svg-2"}],["path",{d:"M9 14l6 0",key:"svg-3"}]]);var hn=x("filter","IconFilter",[["path",{d:"M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z",key:"svg-0"}]]);var Cn=x("list-details","IconListDetails",[["path",{d:"M13 5h8",key:"svg-0"}],["path",{d:"M13 9h5",key:"svg-1"}],["path",{d:"M13 15h8",key:"svg-2"}],["path",{d:"M13 19h5",key:"svg-3"}],["path",{d:"M3 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-4"}],["path",{d:"M3 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-5"}]]);var yn=x("logout","IconLogout",[["path",{d:"M14 8v-2a2 2 0 0 0 -2 -2h-7a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M9 12h12l-3 -3",key:"svg-1"}],["path",{d:"M18 15l3 -3",key:"svg-2"}]]);var jr=x("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]);var _r=x("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]);var vn=x("message","IconMessage",[["path",{d:"M8 9h8",key:"svg-0"}],["path",{d:"M8 13h6",key:"svg-1"}],["path",{d:"M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z",key:"svg-2"}]]);var Sn=x("pin","IconPin",[["path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4",key:"svg-0"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-1"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-2"}]]);var bn=x("pinned-off","IconPinnedOff",[["path",{d:"M3 3l18 18",key:"svg-0"}],["path",{d:"M15 4.5l-3.249 3.249m-2.57 1.433l-2.181 .818l-1.5 1.5l7 7l1.5 -1.5l.82 -2.186m1.43 -2.563l3.25 -3.251",key:"svg-1"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-2"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-3"}]]);var Pn=x("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);var Tn=x("refresh","IconRefresh",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]]);var Dn=x("search","IconSearch",[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]);var Ft=x("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]);var ur=x("sort-ascending","IconSortAscending",[["path",{d:"M4 6l7 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l9 0",key:"svg-2"}],["path",{d:"M15 9l3 -3l3 3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]);var dr=x("sort-descending","IconSortDescending",[["path",{d:"M4 6l9 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l7 0",key:"svg-2"}],["path",{d:"M15 15l3 3l3 -3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]);var kn=x("square","IconSquare",[["path",{d:"M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z",key:"svg-0"}]]);var Bn=x("switch-horizontal","IconSwitchHorizontal",[["path",{d:"M16 3l4 4l-4 4",key:"svg-0"}],["path",{d:"M10 7l10 0",key:"svg-1"}],["path",{d:"M8 13l-4 4l4 4",key:"svg-2"}],["path",{d:"M4 17l9 0",key:"svg-3"}]]);var An=x("table-export","IconTableExport",[["path",{d:"M12.5 21h-7.5a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5",key:"svg-0"}],["path",{d:"M3 10h18",key:"svg-1"}],["path",{d:"M10 3v18",key:"svg-2"}],["path",{d:"M16 19h6",key:"svg-3"}],["path",{d:"M19 16l3 3l-3 3",key:"svg-4"}]]);var cr=x("trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]);var Fn=x("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);var Zr=m(require("react")),lt=class extends Zr.default.Component{constructor(t){super(t);this.state={}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,r){console.error("Uncaught error:",t,r)}render(){return this.state.error?Zr.default.createElement(hl.Alert,{icon:Zr.default.createElement(ft,{size:16}),title:"Something went wrong",color:"red"},(0,Cl.normalizeErrorString)(this.state.error)):this.props.children}};var Yr=require("@mantine/core"),Mn=m(require("react"));function ea(){return Mn.default.createElement(Yr.Center,{style:{width:"100%",height:"100vh"}},Mn.default.createElement(Yr.Loader,null))}var $=require("@mantine/core"),pr=require("@medplum/core");var X=m(require("react"));var yl=require("@medplum/core"),wn=m(require("react"));function mr(e){let o=e.value;return o?wn.default.createElement(wn.default.Fragment,null,(0,yl.formatHumanName)(o,e.options)):null}var On=require("@mantine/core"),aa=require("@medplum/core"),ra=m(require("react"));var Sl=require("@mantine/core"),ta=require("@medplum/core"),bl=m(require("react"));function Q(e){e.preventDefault(),e.stopPropagation()}function oa(e){if(vl(e))return!0;if(e instanceof HTMLTableCellElement){let o=e.children;if(o.length===1&&vl(o[0]))return!0}return!1}function vl(e){return e instanceof HTMLInputElement&&e.type==="checkbox"}function ke(e){let o=To(),{to:t,suffix:r,label:a,onClick:n,children:f,...s}=e,l=Gi(t);return r&&(l+="/"+r),bl.default.createElement(Sl.Anchor,{href:l,"aria-label":a,onClick:i=>{Q(i),n?n(i):t&&o(l)},...s},f)}function Gi(e){if(e){if(typeof e=="string")return Ui(e);if((0,ta.isResource)(e))return Qi(e);if((0,ta.isReference)(e))return zi(e)}return"#"}function Ui(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e}function Qi(e){return`/${e.resourceType}/${e.id}`}function zi(e){return`/${e.reference}`}var ko=require("@medplum/core"),st=require("react");function te(e,o){let t=T(),[r,a]=(0,st.useState)(Pl(t,e)),n=(0,st.useCallback)(f=>{(0,ko.deepEquals)(f,r)||a(f)},[r,a]);return(0,st.useEffect)(()=>{n(Pl(t,e))},[t,e,n]),(0,st.useEffect)(()=>{let f=!0;return(0,ko.isReference)(e)&&t.readReference(e).then(s=>{f&&n(s)}).catch(s=>{f&&(n(void 0),o&&o((0,ko.normalizeOperationOutcome)(s)))}),()=>f=!1},[t,r,e,n,o]),r}function Pl(e,o){if(o){if((0,ko.isResource)(o))return o;if((0,ko.isReference)(o))return e.getCachedReference(o)}}function Le(e){let o=te(e.value),t=o?(0,aa.getDisplayString)(o):e.alt??"",r=(o&&(0,aa.getImageSrc)(o))??e.src,a=e.radius??"xl",n={...e};return delete n.value,delete n.link,e.link?ra.default.createElement(ke,{to:o},ra.default.createElement(On.Avatar,{src:r,alt:t,radius:a,...n})):ra.default.createElement(On.Avatar,{src:r,alt:t,radius:a,...n})}var ut=require("@mantine/core"),Bo=require("@medplum/core");var Ge=m(require("react"));var na=require("@mantine/core"),Tl=require("@mantine/notifications"),Dl=require("@medplum/core"),fe=m(require("react"));function it(e){let{defaultValue:o,toKey:t,toOption:r,loadOptions:a,onChange:n,onCreate:f,creatable:s,...l}=e,i=Wi(o),u=(0,fe.useRef)(null),[d,c]=(0,fe.useState)(),[I,P]=(0,fe.useState)(),[B,k]=(0,fe.useState)(),[A,M]=(0,fe.useState)(),[g,R]=(0,fe.useState)(i.map(r)),[C,L]=(0,fe.useState)([]),ge=(0,fe.useRef)();ge.current=d;let Te=(0,fe.useRef)();Te.current=I;let bo=(0,fe.useRef)();bo.current=B;let nt=(0,fe.useRef)();nt.current=A;let v=(0,fe.useRef)();v.current=C;let U=(0,fe.useCallback)(()=>{P(void 0);let De=u.current?.value.trim()||"";if(De===ge.current)return;c(De);let Se=new AbortController;k(Se),a(De,Se.signal).then(eo=>{Se.signal.aborted||(L(eo.map(r)),k(void 0),nt.current&&(eo.length>0&&n(eo.slice(0,1)),M(!1)))}).catch(eo=>{Se.signal.aborted||eo.message.includes("aborted")||(0,Tl.showNotification)({color:"red",message:(0,Dl.normalizeErrorString)(eo)})})},[a,n,r]),fo=(0,fe.useCallback)(()=>{bo.current&&(bo.current.abort(),k(void 0)),Te.current!==void 0&&window.clearTimeout(Te.current);let De=window.setTimeout(()=>U(),100);P(De)},[U]),Ye=(0,fe.useCallback)(De=>{let Se=[],eo=[];for(let fl of De){let Wr=v.current?.find(Bi=>Bi.value===fl),nr=Wr?.resource;!nr&&s!==!1&&f&&(nr=f(fl),Wr=r(nr)),nr&&Se.push(nr),Wr&&eo.push(Wr)}n(Se),R(eo)},[s,n,f,r]),D=(0,fe.useCallback)(De=>{De.key==="Enter"&&(!Te.current&&!bo.current?(Q(De),v.current&&v.current.length>0&&(L(v.current.slice(0,1)),Ye([v.current[0].value]))):M(!0))},[Ye]),ee=(0,fe.useCallback)(De=>{let Se=r(f(De));return L([...v.current,Se]),Se},[f,L,r]),Po=(0,fe.useCallback)((De,Se)=>!Se,[]);return(0,fe.useEffect)(()=>()=>{bo.current&&bo.current.abort()},[]),fe.default.createElement(na.MultiSelect,{...l,ref:u,defaultValue:i.map(t),searchable:!0,onKeyDown:D,onSearchChange:fo,data:[...g,...C],onFocus:U,onChange:Ye,onCreate:ee,rightSectionWidth:40,rightSection:B?fe.default.createElement(na.Loader,{size:16}):null,filter:Po,creatable:!0})}function Wi(e){return e?Array.isArray(e)?e:[e]:[]}var Xi=(0,ut.createStyles)(()=>({searchInput:{input:{width:220,transition:"width 0.2s"},"input:focus":{width:400},"@media (max-width: 800px)":{input:{width:150},"input:focus":{width:150}}}}));function Ji(e){return e.id}function Ki(e){return{value:e.id,label:(0,Bo.getDisplayString)(e),resource:e}}function Al(e){let{classes:o}=Xi(),t=To(),r=T(),a=(0,Ge.useCallback)(async(f,s)=>{let l=ji(f),i={signal:s},u=await r.graphql(l,void 0,void 0,i);return _i(u,f)},[r]),n=(0,Ge.useCallback)(f=>{f.length>0&&t(`/${(0,Bo.getReferenceString)(f[0])}`)},[t]);return Ge.default.createElement(it,{key:`${e.pathname}?${e.searchParams}`,size:"sm",radius:"md",className:o.searchInput,icon:Ge.default.createElement(Dn,{size:16}),placeholder:"Search",itemComponent:$i,toKey:Ji,toOption:Ki,onChange:n,loadOptions:a,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var $i=(0,Ge.forwardRef)(({resource:e,...o},t)=>{let r;return e.resourceType==="Patient"?r=e.birthDate:e.resourceType==="ServiceRequest"&&(r=e.subject?.display),Ge.default.createElement("div",{ref:t,...o},Ge.default.createElement(ut.Group,{noWrap:!0},Ge.default.createElement(Le,{value:e}),Ge.default.createElement("div",null,Ge.default.createElement(ut.Text,null,(0,Bo.getDisplayString)(e)),Ge.default.createElement(ut.Text,{size:"xs",color:"dimmed"},r))))});function ji(e){let o=JSON.stringify(e);return(0,Bo.isUUID)(e)?`{
2
2
  Patients1: PatientList(_id: ${o}, _count: 1) {
3
3
  resourceType
4
4
  id
@@ -61,8 +61,8 @@
61
61
  display
62
62
  }
63
63
  }
64
- }`.replace(/\s+/g," ")}function zi(e,o){let t=[];return e.data.Patients1&&t.push(...e.data.Patients1),e.data.Patients2&&t.push(...e.data.Patients2),e.data.ServiceRequestList&&t.push(...e.data.ServiceRequestList),Xi(Wi(t),o).slice(0,5)}function Wi(e){let o=new Set,t=[];for(let r of e)o.has(r.id)||(o.add(r.id),t.push(r));return t}function Xi(e,o){return e.sort((t,r)=>vl(r,o)-vl(t,o))}function vl(e,o){let t=0;if(e.identifier)for(let r of e.identifier)t=Math.max(t,Sl(r.value,o));if(e.resourceType==="Patient"&&e.name)for(let r of e.name)t=Math.max(t,Sl((0,Bo.formatHumanName)(r),o));return t}function Sl(e,o){if(!e)return 0;let t=e.toLowerCase().indexOf(o.toLowerCase());return t<0?0:100-t}var Ji=(0,K.createStyles)(e=>({logoButton:{padding:`${e.spacing.xs} ${e.spacing.sm}`,borderRadius:e.radius.sm,transition:"background-color 100ms ease","&:hover":{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}},user:{padding:`${e.spacing.xs} ${e.spacing.sm}`,borderRadius:e.radius.sm,transition:"background-color 100ms ease","&:hover":{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}},userName:{fontWeight:500,lineHeight:1,marginRight:3,[e.fn.smallerThan("xs")]:{display:"none"}},userActive:{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}}));function Mn(e){let o=Dt(),{medplum:t,profile:r,navigate:a}=o,n=t.getLogins(),{classes:f,cx:s}=Ji(),[l,i]=(0,X.useState)(!1);return X.default.createElement(K.Header,{height:60,p:8,style:{zIndex:101}},X.default.createElement(K.Group,{position:"apart"},X.default.createElement(K.Group,{spacing:"xs"},X.default.createElement(K.UnstyledButton,{className:f.logoButton,onClick:e.navbarToggle},e.logo),!e.headerSearchDisabled&&X.default.createElement(bl,{pathname:e.pathname,searchParams:e.searchParams})),X.default.createElement(K.Menu,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:l,onClose:()=>i(!1)},X.default.createElement(K.Menu.Target,null,X.default.createElement(K.UnstyledButton,{className:s(f.user,{[f.userActive]:l}),onClick:()=>i(u=>!u)},X.default.createElement(K.Group,{spacing:7},X.default.createElement(Re,{value:r,radius:"xl",size:24}),X.default.createElement(K.Text,{size:"sm",className:f.userName},(0,xr.formatHumanName)(r?.name?.[0])),X.default.createElement(nn,{size:12,stroke:1.5})))),X.default.createElement(K.Menu.Dropdown,null,X.default.createElement(K.Stack,{align:"center",p:"xl"},X.default.createElement(Re,{size:"xl",radius:100,value:o.profile}),X.default.createElement(pr,{value:o.profile?.name?.[0]}),X.default.createElement(K.Text,{color:"dimmed",size:"xs"},t.getActiveLogin()?.project.display)),n.length>1&&X.default.createElement(K.Menu.Divider,null),n.map(u=>u.profile.reference!==(0,xr.getReferenceString)(o.profile)&&X.default.createElement(K.Menu.Item,{key:u.profile.reference,onClick:()=>{t.setActiveLogin(u).then(()=>window.location.reload()).catch(console.log)}},X.default.createElement(K.Group,null,X.default.createElement(K.Avatar,{radius:"xl"}),X.default.createElement("div",{style:{flex:1}},X.default.createElement(K.Text,{size:"sm",weight:500},u.profile.display),X.default.createElement(K.Text,{color:"dimmed",size:"xs"},u.project.display))))),X.default.createElement(K.Menu.Divider,null),X.default.createElement(K.Menu.Item,{icon:X.default.createElement(Pn,{size:14,stroke:1.5}),onClick:()=>a("/signin")},"Add another account"),X.default.createElement(K.Menu.Item,{icon:X.default.createElement(Mt,{size:14,stroke:1.5}),onClick:()=>a(`/${(0,xr.getReferenceString)(r)}`)},"Account settings"),X.default.createElement(K.Menu.Item,{icon:X.default.createElement(In,{size:14,stroke:1.5}),onClick:async()=>{await t.signOut(),a("/signin")}},"Sign out"),X.default.createElement(K.Text,{size:"xs",color:"dimmed",align:"center"},e.version)))))}var ze=require("@mantine/core");var Ce=m(require("react"));var ro=require("@mantine/core"),wn=require("@mantine/notifications"),ra=require("@medplum/core"),Ao=m(require("react"));var Pl=m(require("react"));function Fn(e){let o={};for(let t of Array.from(e.elements))t instanceof HTMLInputElement?$i(o,t):t instanceof HTMLTextAreaElement?o[t.name]=t.value:t instanceof HTMLSelectElement&&Ki(o,t);return o}function $i(e,o){o.disabled||(o.type==="checkbox"||o.type==="radio")&&!o.checked||(e[o.name]=o.value)}function Ki(e,o){e[o.name]=o.value}function le(e){return Pl.default.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:o=>{o.preventDefault();let t=Fn(o.target);e.onSubmit&&e.onSubmit(t)}},e.children)}function Dl(e){let o=T(),t=o.getUserConfiguration();function r(a){let{menuname:n,bookmarkname:f}=a,s=`${e.pathname}?${e.searchParams.toString()}`,l=(0,ra.deepClone)(t);l.menu?.find(({title:u})=>u===n)?.link?.push({name:f,target:s}),o.updateResource(l).then(u=>{t.menu=u.menu,o.dispatchEvent({type:"change"}),(0,wn.showNotification)({color:"green",message:"Success"}),e.onOk()}).catch(u=>{(0,wn.showNotification)({color:"red",message:(0,ra.normalizeErrorString)(u)})})}return Ao.default.createElement(ro.Modal,{title:"Add Bookmark",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},Ao.default.createElement(le,{onSubmit:r},Ao.default.createElement(ro.Stack,null,Ao.default.createElement(ji,{config:t}),Ao.default.createElement(ro.TextInput,{label:"Bookmark Name",type:"text",name:"bookmarkname",placeholder:"Bookmark Name",withAsterisk:!0}),Ao.default.createElement(ro.Group,{position:"right"},Ao.default.createElement(ro.Button,{mt:"sm",type:"submit"},"OK")))))}function ji(e){function o(r){return r?.menu?.map(a=>a.title)}let t=o(e.config);return Ao.default.createElement(ro.NativeSelect,{name:"menuname",defaultValue:t[0],label:"Select Menu Option",placeholder:"Menu",data:t,withAsterisk:!0})}var Ft=m(require("react"));var na=m(require("react"));var aa=m(require("react"));function On(e){return typeof e.code=="string"?e.code:JSON.stringify(e)}function _i(e){return typeof e.display=="string"?e.display:On(e)}function Zi(e){return{value:On(e),label:_i(e),resource:e}}function Yi(e){return{code:e,display:e}}function Wo(e){let o=T(),{binding:t,creatable:r,clearable:a,...n}=e,f=(0,aa.useCallback)(async(s,l)=>{if(!t)return[];let u=(await o.searchValueSet(t,s,{signal:l})).expansion?.contains,d=[];for(let c of u)c.code&&!d.some(h=>h.code===c.code)&&d.push(c);return d},[o,t]);return aa.default.createElement(ut,{...n,creatable:r??!0,clearable:a??!0,toKey:On,toOption:Zi,loadOptions:f,onCreate:Yi,getCreateLabel:r===!1?void 0:s=>`+ Create ${s}`})}function Ir(e){let[o,t]=(0,na.useState)(e.defaultValue);function r(a){let n=a[0],f=ou(n);t(f),e.onChange&&e.onChange(f)}return na.default.createElement(Wo,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:eu(o),onChange:r,creatable:e.creatable,maxSelectedValues:e.maxSelectedValues??1,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable})}function eu(e){return e?{code:e}:void 0}function ou(e){return e?.code}function wt(e){let[o,t]=(0,Ft.useState)(e.defaultValue),r=e.onChange,a=(0,Ft.useCallback)(n=>{t(n),r&&r(n)},[r]);return Ft.default.createElement(Ir,{"data-autofocus":e.autoFocus,"data-testid":e.testId,defaultValue:o,onChange:a,name:e.name,placeholder:e.placeholder,binding:"https://medplum.com/fhir/ValueSet/resource-types",creatable:!1,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var Tl=(0,ze.createStyles)(e=>({menuTitle:{margin:"20px 0 4px 6px",fontSize:"9px",fontWeight:"normal",textTransform:"uppercase",letterSpacing:"2px"},link:{...e.fn.focusStyles(),display:"flex",alignItems:"center",textDecoration:"none",fontSize:e.fontSizes.sm,color:e.colorScheme==="dark"?e.colors.dark[1]:e.colors.gray[7],padding:"8px 12px",borderRadius:e.radius.sm,fontWeight:500,"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[6]:e.colors.gray[0],color:e.colorScheme==="dark"?e.white:e.black,textDecoration:"none","& svg":{color:e.colorScheme==="dark"?e.white:e.black}},"& svg":{color:e.colorScheme==="dark"?e.colors.dark[2]:e.colors.gray[6],marginRight:e.spacing.sm,strokeWidth:1.5,width:18,height:18}},linkActive:{"&, &:hover":{backgroundColor:e.fn.variant({variant:"light",color:e.primaryColor}).background,color:e.fn.variant({variant:"light",color:e.primaryColor}).color,"& svg":{color:e.fn.variant({variant:"light",color:e.primaryColor}).color}}}}));function En(e){let{classes:o}=Tl(),t=Do(),r=au(e.pathname,e.searchParams,e.menus),[a,n]=(0,Ce.useState)(!1);function f(l,i){l.stopPropagation(),l.preventDefault(),t(i),window.innerWidth<768&&e.closeNavbar()}function s(l){l&&t(`/${l}`)}return Ce.default.createElement(Ce.default.Fragment,null,Ce.default.createElement(ze.Navbar,{width:{sm:250},p:"xs"},Ce.default.createElement(ze.ScrollArea,null,!e.resourceTypeSearchDisabled&&Ce.default.createElement(ze.Navbar.Section,{mb:"sm"},Ce.default.createElement(wt,{key:window.location.pathname,name:"resourceType",placeholder:"Resource Type",onChange:l=>s(l)})),Ce.default.createElement(ze.Navbar.Section,{grow:!0},e.menus?.map(l=>Ce.default.createElement(Ce.default.Fragment,{key:`menu-${l.title}`},Ce.default.createElement(ze.Text,{className:o.menuTitle},l.title),l.links?.map(i=>Ce.default.createElement(tu,{key:i.href,to:i.href,active:i.href===r?.href,onClick:u=>f(u,i.href)},Ce.default.createElement(ru,{to:i.href,icon:i.icon}),Ce.default.createElement("span",null,i.label))))),e.displayAddBookmark&&Ce.default.createElement(ze.Button,{variant:"subtle",size:"xs",mt:"xl",leftIcon:Ce.default.createElement(yn,{size:"0.75rem"}),onClick:()=>n(!0)},"Add Bookmark")))),e.pathname&&e.searchParams&&Ce.default.createElement(Dl,{pathname:e.pathname,searchParams:e.searchParams,visible:a,onOk:()=>n(!1),onCancel:()=>n(!1)}))}function tu(e){let{classes:o,cx:t}=Tl();return Ce.default.createElement(Te,{onClick:e.onClick,to:e.to,className:t(o.link,{[o.linkActive]:e.active})},e.children)}function ru(e){return e.icon?e.icon:Ce.default.createElement(ze.Space,{w:30})}function au(e,o,t){if(!e||!o||!t)return;let r,a=0;for(let n of t)if(n.links)for(let f of n.links){let s=nu(e,o,f.href);s>a&&(a=s,r=f)}return r}function nu(e,o,t){let r=new URL(t,"https://example.com");if(e!==r.pathname)return 0;let a=["_count","_offset"];for(let[f,s]of r.searchParams.entries())if(!a.includes(f)&&o.get(f)!==s)return 0;let n=1;for(let[f,s]of o.entries())a.includes(f)||r.searchParams.get(f)===s&&n++;return n}function fu(e){let o=(0,fa.useMantineTheme)(),[t,r]=(0,ao.useState)(localStorage.navbarOpen==="true"),a=T(),n=lr();function f(i){localStorage.navbarOpen=i.toString(),r(i)}function s(){f(!1)}function l(){f(!t)}return a.isLoading()?ao.default.createElement(_r,null):ao.default.createElement(fa.AppShell,{styles:{main:{background:o.colorScheme==="dark"?o.colors.dark[8]:o.colors.gray[0]}},padding:0,fixed:!0,header:n&&ao.default.createElement(Mn,{pathname:e.pathname,searchParams:e.searchParams,headerSearchDisabled:e.headerSearchDisabled,logo:e.logo,version:e.version,navbarToggle:l}),navbar:n&&t?ao.default.createElement(En,{pathname:e.pathname,searchParams:e.searchParams,menus:e.menus,closeNavbar:s,displayAddBookmark:e.displayAddBookmark,resourceTypeSearchDisabled:e.resourceTypeSearchDisabled}):void 0},ao.default.createElement(st,{key:`${e.pathname}?${e.searchParams?.toString()}`},ao.default.createElement(ao.Suspense,{fallback:ao.default.createElement(_r,null)},e.children)))}var la=m(require("react"));var kl=require("@mantine/core"),Mo=m(require("react"));function uo(e){let o=e.value,{contentType:t,url:r,title:a}=o??{};return r?Mo.default.createElement("div",{"data-testid":"attachment-display"},t?.startsWith("image/")&&Mo.default.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:r,alt:o?.title}),t?.startsWith("video/")&&Mo.default.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},Mo.default.createElement("source",{type:t,src:r})),t==="application/pdf"&&!a?.endsWith(".pdf")&&Mo.default.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},Mo.default.createElement("iframe",{width:"100%",height:"400",src:r+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),Mo.default.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},Mo.default.createElement(kl.Anchor,{href:o?.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},o?.title||"Download"))):null}function Ln(e){return la.default.createElement("div",null,e.values?.map((o,t)=>la.default.createElement("div",{key:"attatchment-"+t},la.default.createElement(uo,{value:o,maxWidth:e.maxWidth}))))}var Rn=require("@mantine/core");var pe=m(require("react"));var Ot=m(require("react"));function ct(e){let o=T(),t=(0,Ot.useRef)(null);function r(f){Q(f),t.current?.click()}function a(f){Q(f);let s=f.target.files;s&&Array.from(s).forEach(n)}function n(f){if(!f||!f.name)return;e.onUploadStart&&e.onUploadStart();let l=f.name,i=f.type||"application/octet-stream";o.createBinary(f,l,i,e.onUploadProgress).then(u=>{e.onUpload({contentType:u.contentType,url:u.url,title:l})}).catch(u=>{alert(u.issue?.[0]?.details?.text)})}return Ot.default.createElement(Ot.default.Fragment,null,Ot.default.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:t,onChange:f=>a(f)}),e.children({onClick:r}))}function Nn(e){let[o,t]=(0,pe.useState)(e.defaultValue??[]),r=(0,pe.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return pe.default.createElement("table",{style:{width:"100%"}},pe.default.createElement("colgroup",null,pe.default.createElement("col",{width:"97%"}),pe.default.createElement("col",{width:"3%"})),pe.default.createElement("tbody",null,o.map((n,f)=>pe.default.createElement("tr",{key:`${f}-${o.length}`},pe.default.createElement("td",null,pe.default.createElement(uo,{value:n,maxWidth:200})),pe.default.createElement("td",null,pe.default.createElement(Rn.ActionIcon,{title:"Remove",size:"sm",onClick:s=>{Q(s);let l=o.slice();l.splice(f,1),a(l)}},pe.default.createElement(zo,null))))),pe.default.createElement("tr",null,pe.default.createElement("td",null),pe.default.createElement("td",null,pe.default.createElement(ct,{onUpload:n=>{a([...r.current,n])}},n=>pe.default.createElement(Rn.ActionIcon,{...n,title:"Add",size:"sm",color:"green"},pe.default.createElement(ur,{size:16})))))))}var Hn=require("@mantine/core"),Fo=m(require("react"));function gr(e){let[o,t]=(0,Fo.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return o?Fo.default.createElement(Fo.default.Fragment,null,Fo.default.createElement(uo,{value:o,maxWidth:200}),Fo.default.createElement(Hn.Button,{onClick:a=>{Q(a),r(void 0)}},"Remove")):Fo.default.createElement(ct,{onUpload:r},a=>Fo.default.createElement(Hn.Button,{...a},"Upload..."))}var da=require("@medplum/core"),Nt=m(require("react"));var sa=["meta","implicitRules","language","text","contained","extension","modifierExtension"];var Bl=require("@mantine/core"),Et=m(require("react")),lu=(0,Bl.createStyles)(e=>({root:{display:"grid",gridTemplateColumns:"30% 70%",margin:0,"& > dt, & > dd":{padding:`${e.spacing.sm} ${e.spacing.sm}`,borderTop:`0.1px solid ${e.colors.gray[3]}`,margin:0}},compact:{gridTemplateColumns:"20% 80%","& > dt, & > dd":{padding:`0 ${e.spacing.xs} ${e.spacing.xs} 0`,border:0}}}));function Vn(e){let{children:o,compact:t}=e,{classes:r,cx:a}=lu();return Et.default.createElement("dl",{className:a(r.root,{[r.compact]:t})},o)}function qn(e){return Et.default.createElement(Et.default.Fragment,null,Et.default.createElement("dt",null,e.term),Et.default.createElement("dd",null,e.children))}var Jo=require("@mantine/core"),H=require("@medplum/core");var q=m(require("react"));var Al=require("@medplum/core"),Gn=m(require("react"));function mt(e){return Gn.default.createElement(Gn.default.Fragment,null,(0,Al.formatCodeableConcept)(e.value))}var Ml=require("@medplum/core"),Un=m(require("react"));function Qn(e){return Un.default.createElement(Un.default.Fragment,null,(0,Ml.formatCoding)(e.value))}var ia=m(require("react"));var zn=m(require("react"));function hr(e){let o=e.value;if(!o)return null;let t=[];return o.value&&t.push(o.value),(o.use||o.system)&&(t.push(" ["),o.use&&t.push(o.use),o.use&&o.system&&t.push(" "),o.system&&t.push(o.system),t.push("]")),zn.default.createElement(zn.default.Fragment,null,t.join("").trim())}function Wn(e){let o=e.value;return o?ia.default.createElement(ia.default.Fragment,null,o.name,o.name&&": ",o.telecom?.map(t=>ia.default.createElement(hr,{key:`telecom-${o.name}-${t.value}`,value:t}))):null}var Fl=m(require("react"));function Xn(e){return Fl.default.createElement("div",null,e.value?.system,": ",e.value?.value)}var wl=require("@medplum/core"),Jn=m(require("react"));function $n(e){return Jn.default.createElement(Jn.default.Fragment,null,(0,wl.formatMoney)(e.value))}var Ol=require("@medplum/core"),Kn=m(require("react"));function Lt(e){return Kn.default.createElement(Kn.default.Fragment,null,(0,Ol.formatQuantity)(e.value))}var El=require("@medplum/core"),jn=m(require("react"));function Cr(e){return jn.default.createElement(jn.default.Fragment,null,(0,El.formatRange)(e.value))}var yr=m(require("react"));function Ll(e){let o=e.value;return o?yr.default.createElement(yr.default.Fragment,null,yr.default.createElement(Lt,{value:o.numerator}),"\xA0/\xA0",yr.default.createElement(Lt,{value:o.denominator})):null}var Rl=require("@medplum/core"),ua=m(require("react"));function Xo(e){if(!e.value)return null;let o=e.value.display||e.value.reference||(0,Rl.stringify)(e.value);return e.link!==!1&&e.value.reference?ua.default.createElement(Te,{to:e.value},o):ua.default.createElement(ua.default.Fragment,null,o)}var pt=m(require("react"));function _n(e){let{property:o,values:t}=e,r=o.type[0].code;return e.values?pt.default.createElement(pt.default.Fragment,null,t.map((a,n)=>pt.default.createElement("div",{key:`${n}-${t.length}`},pt.default.createElement(Fe,{arrayElement:!0,property:o,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link})))):pt.default.createElement(pt.default.Fragment,null)}function Fe(e){let{property:o,propertyType:t,value:r}=e;if(o?.path?.endsWith(".id"))return q.default.createElement(Jo.Box,{component:"div",sx:{display:"flex",gap:3,alignItems:"center"}},r,q.default.createElement(Jo.CopyButton,{value:r,timeout:2e3},({copied:n,copy:f})=>q.default.createElement(Jo.Tooltip,{label:n?"Copied":"Copy",withArrow:!0,position:"right"},q.default.createElement(Jo.ActionIcon,{color:n?"teal":"gray",onClick:f},n?q.default.createElement(ir,{size:"1rem"}):q.default.createElement(ln,{size:"1rem"})))));if(o?.max&&o.max>1&&!e.arrayElement)return t===H.PropertyType.Attachment?q.default.createElement(Ln,{values:r,maxWidth:e.maxWidth}):q.default.createElement(_n,{property:o,values:r,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(t){case H.PropertyType.boolean:return q.default.createElement(q.default.Fragment,null,r===void 0?"":(!!r).toString());case H.PropertyType.SystemString:case H.PropertyType.string:return q.default.createElement("div",{style:{whiteSpace:"pre-wrap"}},r);case H.PropertyType.code:case H.PropertyType.date:case H.PropertyType.decimal:case H.PropertyType.integer:case H.PropertyType.positiveInt:case H.PropertyType.unsignedInt:case H.PropertyType.uri:case H.PropertyType.url:return q.default.createElement(q.default.Fragment,null,r);case H.PropertyType.canonical:return q.default.createElement(Xo,{value:{reference:r},link:e.link});case H.PropertyType.dateTime:case H.PropertyType.instant:return q.default.createElement(q.default.Fragment,null,(0,H.formatDateTime)(r));case H.PropertyType.markdown:return q.default.createElement("pre",null,r);case H.PropertyType.Address:return q.default.createElement(Xa,{value:r});case H.PropertyType.Annotation:return q.default.createElement(q.default.Fragment,null,r?.text);case H.PropertyType.Attachment:return q.default.createElement(uo,{value:r,maxWidth:e.maxWidth});case H.PropertyType.CodeableConcept:return q.default.createElement(mt,{value:r});case H.PropertyType.Coding:return q.default.createElement(Qn,{value:r});case H.PropertyType.ContactDetail:return q.default.createElement(Wn,{value:r});case H.PropertyType.ContactPoint:return q.default.createElement(hr,{value:r});case H.PropertyType.HumanName:return q.default.createElement(pr,{value:r});case H.PropertyType.Identifier:return q.default.createElement(Xn,{value:r});case H.PropertyType.Money:return q.default.createElement($n,{value:r});case H.PropertyType.Period:return q.default.createElement(q.default.Fragment,null,(0,H.formatPeriod)(r));case H.PropertyType.Quantity:case H.PropertyType.Duration:return q.default.createElement(Lt,{value:r});case H.PropertyType.Range:return q.default.createElement(Cr,{value:r});case H.PropertyType.Ratio:return q.default.createElement(Ll,{value:r});case H.PropertyType.Reference:return q.default.createElement(Xo,{value:r,link:e.link});case H.PropertyType.Timing:return q.default.createElement(q.default.Fragment,null,(0,H.formatTiming)(r));case H.PropertyType.Dosage:case H.PropertyType.UsageContext:return q.default.createElement(Rt,{value:{type:t,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues});default:if(!o)throw Error(`Displaying property of type ${e.propertyType} requires element schema`);return q.default.createElement(Rt,{value:{type:o.type[0].code,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}function We(e,o){let t=(0,H.getTypedPropertyValue)(e,o);return t?Array.isArray(t)?[t.map(r=>r.value),t[0].type]:[t.value,t.type]:[void 0,"undefined"]}function Rt(e){let o=e.value,t=o.value;if(!t)return null;let r=o.type,a=(0,da.tryGetDataType)(r);return a?typeof t=="object"&&"name"in t&&Object.keys(t).length===1&&typeof t.name=="string"?Nt.default.createElement("div",null,t.name):Nt.default.createElement(Vn,{compact:e.compact},Object.entries(a.elements).map(n=>{let[f,s]=n;if(sa.includes(f))return null;let[l,i]=We(o,f);return e.ignoreMissingValues&&(!l||Array.isArray(l)&&l.length===0)?null:Nt.default.createElement(qn,{key:f,term:(0,da.getPropertyDisplayName)(f)},Nt.default.createElement(Fe,{property:s,propertyType:i,value:l,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))})):Nt.default.createElement("div",null,r,"\xA0not implemented")}var rs=require("@mantine/core"),Ar=require("@medplum/core"),Eo=m(require("react"));var ca=require("@mantine/core"),vr=m(require("react"));function Sr(e){return vr.default.createElement(ca.Group,{noWrap:!0},vr.default.createElement("div",null,e.children),vr.default.createElement("div",null,vr.default.createElement(ca.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk},(()=>null)())))}var Hl=require("@mantine/core"),Vl=m(require("react"));function we(e,o){return e?.issue?.filter(t=>Nl(t.expression?.[0],o))?.map(t=>t.details?.text)?.join(`
65
- `)}function br(e,o){return e?.issue?.filter(t=>Nl(t.expression?.[0],o))}function Nl(e,o){if(e===o)return!0;if(!e||!o)return!1;let t=e.indexOf(".");if(t>=0&&e.substring(t+1)===o)return!0;let r=o.indexOf(".");return r>=0&&o.substring(r+1)===e}function Xe(e){return Vl.default.createElement(Hl.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk,error:we(e.outcome,e.htmlFor)},e.children)}var Io=require("@mantine/core"),ma=require("@medplum/core"),Oe=m(require("react"));function su(e){let o=T(),t=re(e.defaultValue),[r,a]=(0,Oe.useState)(!1),[n,f]=(0,Oe.useState)();return(0,Oe.useEffect)(()=>{t&&(f((0,ma.deepClone)(t)),o.requestSchema(t.resourceType).then(()=>a(!0)).catch(console.log))},[o,t]),!r||!n?Oe.default.createElement("div",null,"Loading..."):Oe.default.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:s=>{s.preventDefault(),e.onSubmit&&e.onSubmit(n)}},Oe.default.createElement(Io.Stack,{mb:"xl"},Oe.default.createElement(Xe,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},Oe.default.createElement(Io.TextInput,{name:"resourceType",defaultValue:n.resourceType,disabled:!0})),Oe.default.createElement(Xe,{title:"ID",htmlFor:"id",outcome:e.outcome},Oe.default.createElement(Io.TextInput,{name:"id",defaultValue:n.id,disabled:!0}))),Oe.default.createElement(Vt,{typeName:n.resourceType,defaultValue:n,outcome:e.outcome,onChange:f}),Oe.default.createElement(Io.Group,{position:"right",mt:"xl"},Oe.default.createElement(Io.Button,{type:"submit"},"OK"),e.onDelete&&Oe.default.createElement(Io.Button,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(n)}},"Delete")))}function Ht(e,o,t,r,a){let n=r.type;if(n.length>1)for(let f of n){let s=o.replace("[x]",(0,ma.capitalize)(f.code));s in e&&delete e[s]}return e[t]=a,e}var fo=require("@mantine/core"),V=require("@medplum/core"),z=m(require("react"));var pa=m(require("react"));function Zn(e){let[o,t]=(0,pa.useState)(e.defaultValue);function r(a){let n=uu(a);t(n),e.onChange&&e.onChange(n)}return pa.default.createElement(Wo,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&iu(o),maxSelectedValues:1,onChange:r})}function iu(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function uu(e){if(e.length!==0)return{coding:e.map(o=>({system:o.system,code:o.code,display:o.display}))}}var xa=m(require("react"));function Yn(e){let[o,t]=(0,xa.useState)(e.defaultValue);function r(a){let n=a[0],f=n&&cu(n);t(f),e.onChange&&e.onChange(f)}return xa.default.createElement(Wo,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&du(o),maxSelectedValues:1,onChange:r})}function du(e){return{system:e.system,code:e.code,display:e.display}}function cu(e){return{system:e.system,code:e.code,display:e.display}}var Ia=require("@mantine/core"),$o=m(require("react"));var xt=require("@mantine/core"),wo=m(require("react"));function Pr(e){let[o,t]=(0,wo.useState)(e.defaultValue),r=(0,wo.useRef)();r.current=o;function a(l){l&&Object.keys(l).length===0&&(l=void 0),t(l),e.onChange&&e.onChange(l)}function n(l){let i={...r.current,system:l};l||delete i.system,a(i)}function f(l){let i={...r.current,use:l};l||delete i.use,a(i)}function s(l){let i={...r.current,value:l};l||delete i.value,a(i)}return wo.default.createElement(xt.Group,{spacing:"xs",grow:!0,noWrap:!0},wo.default.createElement(xt.NativeSelect,{"data-testid":"system",defaultValue:o?.system,onChange:l=>n(l.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),wo.default.createElement(xt.NativeSelect,{"data-testid":"use",defaultValue:o?.use,onChange:l=>f(l.currentTarget.value),data:["","home","work","temp","old","mobile"]}),wo.default.createElement(xt.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:l=>s(l.currentTarget.value)}))}function ef(e){let[o,t]=(0,$o.useState)(e.defaultValue),r=(0,$o.useRef)();r.current=o;function a(s){t(s),e.onChange&&e.onChange(s)}function n(s){let l={...r.current,name:s};s||delete l.name,a(l)}function f(s){let l={...r.current,telecom:s&&[s]};s||delete l.telecom,a(l)}return $o.default.createElement(Ia.Group,{spacing:"xs",grow:!0,noWrap:!0},$o.default.createElement(Ia.TextInput,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:o?.name,onChange:s=>n(s.currentTarget.value)}),$o.default.createElement(Pr,{name:e.name+"-telecom",defaultValue:o?.telecom?.[0],onChange:f}))}var ql=require("@mantine/core"),of=require("@medplum/core"),Gl=m(require("react"));function no(e){return Gl.default.createElement(ql.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:mu(),defaultValue:Ul(e.defaultValue),autoFocus:e.autoFocus,error:we(e.outcome,e.name),onChange:o=>{if(e.onChange){let t=o.currentTarget.value;e.onChange(Ql(t))}}})}function Ul(e){if(!e)return"";let o=new Date(e);return(0,of.isValidDate)(o)?o.toLocaleDateString("sv")+"T"+o.toLocaleTimeString("sv"):""}function Ql(e){if(!e)return"";let o=new Date(e);return(0,of.isValidDate)(o)?o.toISOString():""}function mu(){return"datetime-local"}var zl=require("@mantine/core"),Wl=require("@medplum/core"),Xl=m(require("react"));function Jl(e){return Xl.default.createElement(zl.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:(0,Wl.stringify)(e.defaultValue),deserialize:JSON.parse,onChange:o=>{e.onChange&&e.onChange(JSON.parse(o))}})}var Oo=require("@mantine/core"),co=m(require("react"));function tf(e){let[o,t]=(0,co.useState)(e.defaultValue),r=(0,co.useRef)();r.current=o;function a(u){t(u),e.onChange&&e.onChange(u)}function n(u){a({...r.current,use:u||void 0})}function f(u){a({...r.current,prefix:u?u.split(" "):void 0})}function s(u){a({...r.current,given:u?u.split(" "):void 0})}function l(u){a({...r.current,family:u||void 0})}function i(u){a({...r.current,suffix:u?u.split(" "):void 0})}return co.default.createElement(Oo.Group,{spacing:"xs",grow:!0,noWrap:!0},co.default.createElement(Oo.NativeSelect,{defaultValue:o?.use,name:e.name+"-use","data-testid":"use",onChange:u=>n(u.currentTarget.value),data:["","temp","old","usual","official","nickname","anonymous","maiden"]}),co.default.createElement(Oo.TextInput,{placeholder:"Prefix",name:e.name+"-prefix",defaultValue:o?.prefix?.join(" "),onChange:u=>f(u.currentTarget.value)}),co.default.createElement(Oo.TextInput,{placeholder:"Given",name:e.name+"-given",defaultValue:o?.given?.join(" "),onChange:u=>s(u.currentTarget.value)}),co.default.createElement(Oo.TextInput,{name:e.name+"-family",placeholder:"Family",defaultValue:o?.family,onChange:u=>l(u.currentTarget.value)}),co.default.createElement(Oo.TextInput,{placeholder:"Suffix",name:e.name+"-suffix",defaultValue:o?.suffix?.join(" "),onChange:u=>i(u.currentTarget.value)}))}var Dr=require("@mantine/core"),qt=m(require("react"));function rf(e){let[o,t]=(0,qt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return qt.default.createElement(Dr.Group,{spacing:"xs",grow:!0,noWrap:!0},qt.default.createElement(Dr.TextInput,{placeholder:"System",defaultValue:o?.system,onChange:a=>r({...o,system:a.currentTarget.value})}),qt.default.createElement(Dr.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:a=>r({...o,value:a.currentTarget.value})}))}var ga=require("@mantine/core");var go=m(require("react")),pu=["USD","EUR","CAD","GBP","AUD"];function af(e){let{onChange:o}=e,[t,r]=(0,go.useState)(e.defaultValue),a=(0,go.useCallback)(l=>{r(l),o&&o(l)},[o]),n=(0,go.useCallback)(l=>{a({...t,currency:l.currentTarget.value})},[t,a]),f=(0,go.useCallback)(l=>{a({...t,value:l.currentTarget.valueAsNumber})},[t,a]),s=go.default.createElement(ga.NativeSelect,{defaultValue:t?.currency,data:pu,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:n});return go.default.createElement(ga.TextInput,{type:"number",label:e.label,placeholder:e.placeholder??"Value",defaultValue:t?.value?.toString()??"USD",icon:go.default.createElement(sn,{size:14}),rightSection:s,rightSectionWidth:92,onChange:f})}var $l=require("@mantine/core"),Gt=m(require("react"));function Kl(e){let[o,t]=(0,Gt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Gt.default.createElement($l.Group,{spacing:"xs",grow:!0,noWrap:!0},Gt.default.createElement(no,{name:e.name+".start",placeholder:"Start",defaultValue:o?.start,onChange:a=>r({...o,start:a})}),Gt.default.createElement(no,{name:e.name+".end",placeholder:"End",defaultValue:o?.end,onChange:a=>r({...o,end:a})}))}var gt=require("@mantine/core"),It=m(require("react"));function Ze(e){let[o,t]=(0,It.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return It.default.createElement(gt.Group,{spacing:"xs",grow:!0,noWrap:!0},It.default.createElement(gt.NativeSelect,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:o?.comparator,data:["","<","<=",">=",">"],onChange:a=>r({...o,comparator:a.currentTarget.value})}),It.default.createElement(gt.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name+"-value",type:"number",placeholder:"Value",defaultValue:o?.value,autoFocus:e.autoFocus,step:"any",onWheel:a=>{e.disableWheel&&a.currentTarget.blur()},onChange:a=>{r({...o,value:xu(a.currentTarget.value)})}}),It.default.createElement(gt.TextInput,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:o?.unit,onChange:a=>r({...o,unit:a.currentTarget.value})}))}function xu(e){if(e)return parseFloat(e)}var jl=require("@mantine/core"),Ut=m(require("react"));function Qt(e){let[o,t]=(0,Ut.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Ut.default.createElement(jl.Group,{spacing:"xs",grow:!0,noWrap:!0},Ut.default.createElement(Ze,{name:e.name+"-low",defaultValue:o?.low,onChange:a=>r({...o,low:a})}),Ut.default.createElement(Ze,{name:e.name+"-high",defaultValue:o?.high,onChange:a=>r({...o,high:a})}))}var _l=require("@mantine/core"),zt=m(require("react"));function Zl(e){let[o,t]=(0,zt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return zt.default.createElement(_l.Group,{spacing:"xs",grow:!0,noWrap:!0},zt.default.createElement(Ze,{name:e.name+"-numerator",defaultValue:o?.numerator,onChange:a=>r({...o,numerator:a})}),zt.default.createElement(Ze,{name:e.name+"-denominator",defaultValue:o?.denominator,onChange:a=>r({...o,denominator:a})}))}var ha=require("@mantine/core"),Yl=require("@medplum/core"),Ko=m(require("react"));var Tr=require("@mantine/core"),kr=require("@medplum/core"),He=m(require("react"));var Iu={Observation:"code",User:"email:contains"},gu=["AccessPolicy","Account","ActivityDefinition","Bot","CapabilityStatement","ClientApplication","CodeSystem","CompartmentDefinition","ConceptMap","EffectEvidenceSynthesis","Endpoint","EventDefinition","Evidence","EvidenceVariable","ExampleScenario","GraphDefinition","HealthcareService","ImplementationGuide","InsurancePlan","Library","Location","Measure","MedicinalProduct","MessageDefinition","NamingSystem","OperationDefinition","Organization","Patient","Person","PlanDefinition","Practitioner","Project","Questionnaire","RelatedPerson","ResearchDefinition","ResearchElementDefinition","RiskEvidenceSynthesis","SearchParameter","StructureDefinition","StructureMap","TerminologyCapabilities","TestScript","UserConfiguration","ValueSet"];function hu(e){return{value:(0,kr.getReferenceString)(e),label:(0,kr.getDisplayString)(e),resource:e}}function Br(e){let o=T(),t=e.resourceType,[r,a]=(0,He.useState)(),n=re(e.defaultValue,a),f=e.onChange,s=(0,He.useCallback)(async(i,u)=>{let d=yu(t),c=new URLSearchParams({[d]:i,_count:"10"});return await o.searchResources(t,c,{signal:u})},[o,t]),l=(0,He.useCallback)(i=>{f&&f(i[0])},[f]);return e.defaultValue&&!r&&!n?null:He.default.createElement(ut,{name:e.name,itemComponent:Cu,defaultValue:n,placeholder:e.placeholder,maxSelectedValues:1,toKey:kr.getReferenceString,toOption:hu,loadOptions:s,onChange:l,clearable:!0})}var Cu=(0,He.forwardRef)(({label:e,resource:o,...t},r)=>He.default.createElement("div",{ref:r,...t},He.default.createElement(Tr.Group,{noWrap:!0},He.default.createElement(Re,{value:o}),He.default.createElement("div",null,He.default.createElement(Tr.Text,null,e),He.default.createElement(Tr.Text,{size:"xs",color:"dimmed"},o.birthDate)))));function yu(e){return Iu[e]??(gu.includes(e)?"name":"_id")}function ht(e){let o=vu(e.targetTypes),t=Su(e.defaultValue,o),[r,a]=(0,Ko.useState)(e.defaultValue),[n,f]=(0,Ko.useState)(t);function s(l){a(l),e.onChange&&e.onChange(l)}return Ko.default.createElement(ha.Group,{spacing:"xs",grow:!0,noWrap:!0},o&&o.length>1&&Ko.default.createElement(ha.NativeSelect,{"data-autofocus":e.autoFocus,"data-testid":"reference-input-resource-type-select",defaultValue:n,autoFocus:e.autoFocus,onChange:l=>f(l.currentTarget.value),data:o}),!o&&Ko.default.createElement(wt,{autoFocus:e.autoFocus,testId:"reference-input-resource-type-input",defaultValue:n,onChange:f,name:e.name+"-resourceType",placeholder:"Resource Type"}),Ko.default.createElement(Br,{resourceType:n,name:e.name+"-id",placeholder:e.placeholder,defaultValue:r,onChange:l=>{s(l?(0,Yl.createReference)(l):void 0)}}))}function vu(e){if(!(!e||e.length===0||e.length===1&&e[0]==="Resource"))return e}function Su(e,o){let t=e?.reference?.split("/")[0];if(t)return t;if(o&&o.length>0)return o[0]}var nf=require("@mantine/core");var ye=m(require("react"));function ff(e){let[o,t]=(0,ye.useState)(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),r=(0,ye.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return ye.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},ye.default.createElement("colgroup",null,ye.default.createElement("col",{width:"97%"}),ye.default.createElement("col",{width:"3%"})),ye.default.createElement("tbody",null,o.map((n,f)=>ye.default.createElement("tr",{key:`${f}-${o.length}`},ye.default.createElement("td",null,ye.default.createElement(ho,{arrayElement:!0,property:e.property,name:e.name+"."+f,defaultValue:n,onChange:s=>{let l=[...r.current];l[f]=s,a(l)}})),ye.default.createElement("td",{style:{textAlign:"right"}},ye.default.createElement(nf.ActionIcon,{title:"Remove",size:"sm",onClick:s=>{Q(s);let l=[...r.current];l.splice(f,1),a(l)}},ye.default.createElement(zo,null))))),ye.default.createElement("tr",null,ye.default.createElement("td",null),ye.default.createElement("td",{style:{textAlign:"right"}},ye.default.createElement(nf.ActionIcon,{title:"Add",size:"sm",color:"green",onClick:n=>{Q(n);let f=[...r.current];f.push(void 0),a(f)}},ye.default.createElement(kt,null))))))}var ve=require("@mantine/core"),os=require("@medplum/core"),Z=m(require("react"));var bu=["sun","mon","tue","wed","thu","fri","sat"];function lf(e){let[o,t]=(0,Z.useState)(e.defaultValue),[r,a]=(0,Z.useState)(!1),n=(0,Z.useRef)();return n.current=o,Z.default.createElement(Z.default.Fragment,null,Z.default.createElement(ve.Group,{spacing:"xs",grow:!0,noWrap:!0},Z.default.createElement("span",null,(0,os.formatTiming)(n.current)||"No repeat"),Z.default.createElement(ve.Button,{onClick:()=>a(!0)},"Edit")),Z.default.createElement(Pu,{visible:r,defaultValue:n.current,onOk:f=>{e.onChange&&e.onChange(f),t(f),a(!1)},onCancel:()=>a(!1)}))}var es={repeat:{period:1,periodUnit:"d"}};function Pu(e){let[o,t]=(0,Z.useState)(e.defaultValue||es),r=(0,Z.useRef)();r.current=o;function a(i){t({...r.current,event:[i]})}function n(i){t({...r.current,repeat:i})}function f(i){n({...r.current?.repeat,period:i})}function s(i){n({...r.current?.repeat,periodUnit:i})}function l(i){n({...r.current?.repeat,dayOfWeek:i})}return Z.default.createElement(ve.Modal,{title:"Timing",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>e.onCancel()},Z.default.createElement(ve.Stack,null,Z.default.createElement(Xe,{title:"Starts on",htmlFor:"timing-dialog-start"},Z.default.createElement(no,{name:"timing-dialog-start",onChange:i=>a(i)})),Z.default.createElement(ve.Switch,{label:"Repeat",checked:!!o.repeat,onChange:i=>n(i.currentTarget.checked?es.repeat:void 0)}),o.repeat&&Z.default.createElement(Z.default.Fragment,null,Z.default.createElement(Xe,{title:"Repeat every",htmlFor:"timing-dialog-period"},Z.default.createElement(ve.Group,{spacing:"xs",grow:!0,noWrap:!0},Z.default.createElement(ve.TextInput,{type:"number",step:1,id:"timing-dialog-period",name:"timing-dialog-period",defaultValue:o.repeat.period||1,onChange:i=>f(parseInt(i.currentTarget.value,10)||1)}),Z.default.createElement(ve.NativeSelect,{id:"timing-dialog-periodUnit",name:"timing-dialog-periodUnit",defaultValue:o.repeat.periodUnit,onChange:i=>s(i.currentTarget.value),data:[{label:"second",value:"s"},{label:"minute",value:"min"},{label:"hour",value:"h"},{label:"day",value:"d"},{label:"week",value:"wk"},{label:"month",value:"mo"},{label:"year",value:"a"}]}))),o.repeat.periodUnit==="wk"&&Z.default.createElement(Xe,{title:"Repeat on"},Z.default.createElement(ve.Chip.Group,{multiple:!0,onChange:l},Z.default.createElement(ve.Group,{position:"apart",mt:"md",spacing:"xs"},bu.map(i=>Z.default.createElement(ve.Chip,{key:i,value:i,size:"xs",radius:"xl"},i.charAt(0).toUpperCase())))))),Z.default.createElement(ve.Group,{position:"right"},Z.default.createElement(ve.Button,{onClick:()=>e.onOk(o)},"OK"))))}function ho(e){let o=e.property,t=e.defaultPropertyType??o.type[0].code,r=e.name,a=e.defaultValue;if(o.max>1&&!e.arrayElement)return t===V.PropertyType.Attachment?z.default.createElement(Nn,{name:r,defaultValue:a,onChange:e.onChange}):z.default.createElement(ff,{property:o,name:r,defaultValue:a,onChange:e.onChange});let n=o.type;return n.length>1?z.default.createElement(ts,{elementDefinitionTypes:n,...e}):z.default.createElement(sf,{elementDefinitionType:n[0],...e})}function ts(e){let o=e.elementDefinitionTypes,t;e.defaultPropertyType&&(t=o.find(n=>n.code===e.defaultPropertyType)),t||(t=o[0]);let[r,a]=(0,z.useState)(t);return z.default.createElement(fo.Group,{spacing:"xs",grow:!0,noWrap:!0},z.default.createElement(fo.NativeSelect,{style:{width:"200px"},defaultValue:r.code,onChange:n=>{a(o.find(f=>f.code===n.currentTarget.value))},data:o.map(n=>({value:n.code,label:n.code}))}),z.default.createElement(sf,{...e,elementDefinitionType:r,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",(0,V.capitalize)(r.code)))}}))}function sf(e){let o=e.property,t=e.elementDefinitionType.code,r=e.name,a=e.defaultValue,n=o.min!==void 0&&o.min>0;switch(t){case V.PropertyType.SystemString:case V.PropertyType.canonical:case V.PropertyType.string:case V.PropertyType.time:case V.PropertyType.uri:case V.PropertyType.url:return z.default.createElement(fo.TextInput,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)},error:we(e.outcome,r)});case V.PropertyType.date:return z.default.createElement(fo.TextInput,{type:"date",id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)},error:we(e.outcome,r)});case V.PropertyType.dateTime:case V.PropertyType.instant:return z.default.createElement(no,{name:r,defaultValue:a,onChange:e.onChange,outcome:e.outcome});case V.PropertyType.decimal:case V.PropertyType.integer:case V.PropertyType.positiveInt:case V.PropertyType.unsignedInt:return z.default.createElement(fo.TextInput,{type:"number",step:t===V.PropertyType.decimal?"any":"1",id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.valueAsNumber)}});case V.PropertyType.code:return z.default.createElement(Ir,{binding:o.binding?.valueSet,name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.boolean:return z.default.createElement(fo.Checkbox,{id:r,name:r,"data-testid":r,defaultChecked:!!a,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.checked)}});case V.PropertyType.markdown:return z.default.createElement(fo.Textarea,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)}});case V.PropertyType.Address:return z.default.createElement(Ja,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Annotation:return z.default.createElement($a,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Attachment:return z.default.createElement(gr,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.CodeableConcept:return z.default.createElement(Zn,{binding:o.binding?.valueSet,name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Coding:return z.default.createElement(Yn,{binding:o.binding?.valueSet,name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.ContactDetail:return z.default.createElement(ef,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.ContactPoint:return z.default.createElement(Pr,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Extension:return z.default.createElement(Jl,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.HumanName:return z.default.createElement(tf,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Identifier:return z.default.createElement(rf,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Money:return z.default.createElement(af,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Period:return z.default.createElement(Kl,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Duration:case V.PropertyType.Quantity:return z.default.createElement(Ze,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Range:return z.default.createElement(Qt,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Ratio:return z.default.createElement(Zl,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Reference:return z.default.createElement(ht,{name:r,defaultValue:a,targetTypes:Du(o),onChange:e.onChange});case V.PropertyType.Timing:return z.default.createElement(lf,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Dosage:case V.PropertyType.UsageContext:return z.default.createElement(Vt,{typeName:t,defaultValue:a,onChange:e.onChange,outcome:e.outcome});default:return z.default.createElement(Vt,{typeName:o.type[0].code,defaultValue:a,onChange:e.onChange,outcome:e.outcome})}}function Du(e){return e?.type?.[0]?.targetProfile?.map(o=>o.split("/").pop())}function Vt(e){let[o,t]=(0,Eo.useState)(e.defaultValue??{});function r(s){t(s),e.onChange&&e.onChange(s)}let a=e.typeName,n=(0,Ar.tryGetDataType)(a);if(!n)return Eo.default.createElement("div",null,a,"\xA0not implemented");let f={type:a,value:o};return Eo.default.createElement(rs.Stack,null,Object.entries(n.elements).map(([s,l])=>{if(s==="id"||sa.includes(s)||!l.type)return null;let[i,u]=We(f,s),d=l.min!==void 0&&l.min>0;return l.type.length===1&&l.type[0].code==="boolean"?Eo.default.createElement(Sr,{key:s,title:(0,Ar.getPropertyDisplayName)(s),description:l.description,htmlFor:s},Eo.default.createElement(ho,{property:l,name:s,defaultValue:i,defaultPropertyType:u,outcome:e.outcome,onChange:(c,h)=>{r(Ht(o,s,h??s,l,c))}})):Eo.default.createElement(Xe,{key:s,title:(0,Ar.getPropertyDisplayName)(s),description:l.description,withAsterisk:d,htmlFor:s,outcome:e.outcome},Eo.default.createElement(ho,{property:l,name:s,defaultValue:i,defaultPropertyType:u,onChange:(c,h)=>{r(Ht(o,s,h??s,l,c))}}))}))}var Lo=require("@mantine/core"),se=m(require("react")),Tu=(0,Lo.createStyles)(e=>({table:{width:350,"& th":{fontWeight:"normal",fontSize:11,padding:8,textAlign:"center"},"& td":{padding:"2px 4px"},"& td button":{width:44,height:44,color:e.colors[e.primaryColor][5],fontSize:16,fontWeight:500,textAlign:"center",padding:0,backgroundColor:e.colors[e.primaryColor][0],border:0,borderRadius:"50%",cursor:"pointer"},"& td button:hover":{backgroundColor:e.colors[e.primaryColor][1]},"& td button:disabled":{backgroundColor:"transparent",cursor:"default",color:e.colors.gray[4],fontWeight:"normal"}}}));function as(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function uf(e){let{classes:o}=Tu(),{onChangeMonth:t,onClick:r}=e,[a,n]=(0,se.useState)(Ca);function f(l){n(i=>{let u=new Date(i.getTime());return u.setMonth(i.getMonth()+l),t(u),u})}let s=(0,se.useMemo)(()=>ku(a,e.slots),[a,e.slots]);return se.default.createElement("div",null,se.default.createElement(Lo.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},se.default.createElement("p",{style:{flex:1}},as(a)),se.default.createElement(Lo.Group,{position:"right",spacing:"xs"},se.default.createElement(Lo.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>f(-1)},"<"),se.default.createElement(Lo.Button,{variant:"outline","aria-label":"Next month",onClick:()=>f(1)},">"))),se.default.createElement("table",{className:o.table},se.default.createElement("thead",null,se.default.createElement("tr",null,se.default.createElement("th",null,"SUN"),se.default.createElement("th",null,"MON"),se.default.createElement("th",null,"TUE"),se.default.createElement("th",null,"WED"),se.default.createElement("th",null,"THU"),se.default.createElement("th",null,"FRI"),se.default.createElement("th",null,"SAT"))),se.default.createElement("tbody",null,s.map((l,i)=>se.default.createElement("tr",{key:"week-"+i},l.map((u,d)=>se.default.createElement("td",{key:"day-"+d},u&&se.default.createElement(Lo.Button,{disabled:!u.available,onClick:()=>r(u.date)},u.date.getDate()))))))))}function Ca(){let e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}function ku(e,o){let t=new Date(e.getFullYear(),e.getMonth()),r=[],a=[];for(let n=0;n<t.getDay();n++)a.push(void 0);for(;t.getMonth()===e.getMonth();)a.push({date:new Date(t.getTime()),available:Bu(t,o)}),t.getDay()===6&&(r.push(a),a=[]),t.setDate(t.getDate()+1);if(t.getDay()!==0){for(let n=t.getDay();n<7;n++)a.push(void 0);r.push(a)}return r}function Bu(e,o){for(let t of o){let r=new Date(t.start);if(r.getFullYear()===e.getFullYear()&&r.getMonth()===e.getMonth()&&r.getDate()===e.getDate())return!0}return!1}var ya=require("@mantine/core"),ns=m(require("react")),Au=(0,ya.createStyles)(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function Ro(e){let{children:o,...t}=e,{classes:r}=Au();return ns.default.createElement(ya.Container,{className:r.root,...t},o)}var ys=m(require("react"));var ie=require("@mantine/core"),Kt=require("@mantine/notifications"),jo=require("@medplum/core");var v=m(require("react"));var te=require("@mantine/core"),lo=require("@medplum/core"),g=m(require("react"));var Wt=require("@mantine/core"),df=m(require("react")),Mu=(0,Wt.createStyles)(e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));function cf({value:e}){let{classes:o}=Mu();return e?df.default.createElement(Wt.Stack,{justify:"flex-start",spacing:"xs"},e.map(t=>t.text&&df.default.createElement(Wt.Blockquote,{key:`note-${t.text}`,classNames:{cite:o.noteCite,body:o.noteBody,root:o.noteRoot},cite:t.authorReference?.display||t.authorString,icon:null},t.text))):null}var ls=require("@mantine/core"),va=m(require("react"));var fs=require("@mantine/core"),Xt=require("@medplum/core"),Mr=m(require("react"));function mo(e){let{value:o,link:t,...r}=e,[a,n]=(0,Mr.useState)(),f=re(o,n),s;if(a&&!(0,Xt.isOk)(a))s=`[${(0,Xt.normalizeErrorString)(a)}]`;else if(f)s=(0,Xt.getDisplayString)(f);else return null;return t?Mr.default.createElement(Te,{to:o,...r},s):Mr.default.createElement(fs.Text,{component:"span",...r},s)}function No(e){return va.default.createElement(ls.Group,{spacing:"xs"},va.default.createElement(Re,{size:24,radius:12,value:e.value,link:e.link}),va.default.createElement(mo,{value:e.value,link:e.link}))}var ss=require("@mantine/core"),is=m(require("react")),Fu={draft:"blue",active:"blue","on-hold":"yellow",revoked:"red",completed:"green","entered-in-error":"red",unknown:"gray",retired:"gray",registered:"blue",preliminary:"blue",final:"green",amended:"yellow",corrected:"yellow",cancelled:"red",requested:"blue",received:"blue",accepted:"blue",rejected:"red",ready:"blue","in-progress":"blue",failed:"red",proposed:"blue",pending:"blue",booked:"blue",arrived:"blue",fulfilled:"green",noshow:"red","checked-in":"blue",waitlist:"gray",routine:"gray",urgent:"red",asap:"red",stat:"red"};function Fr(e){return is.default.createElement(ss.Badge,{color:Fu[e.status]},e.status)}var us=(0,te.createStyles)(e=>({table:{border:`0.1px solid ${e.colors.gray[5]}`,borderCollapse:"collapse","& td, & th":{border:`0.1px solid ${e.colors.gray[5]}`,padding:4}},criticalRow:{background:e.colorScheme==="dark"?e.colors.red[7]:e.colors.red[1],border:`0.1px solid ${e.colors.red[5]}`,color:e.colors.red[5],fontWeight:500,"& td":{border:`0.1px solid ${e.colors.red[5]}`}},noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));Sa.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};function Sa(e){let o=T(),t=re(e.value),[r,a]=(0,g.useState)();if((0,g.useEffect)(()=>{t?.specimen&&Promise.allSettled(t.specimen.map(f=>o.readReference(f))).then(f=>f.filter(s=>s.status==="fulfilled").map(s=>s.value)).then(a).catch(console.error)},[o,t]),!t)return null;let n=r?.flatMap(f=>f.note||[])||[];if(t.presentedForm&&t.presentedForm.length>0){let f=t.presentedForm[0];f.contentType?.startsWith("text/plain")&&f.data&&n.push({text:window.atob(f.data)})}return g.default.createElement(te.Stack,null,g.default.createElement(te.Title,null,"Diagnostic Report"),g.default.createElement(wu,{value:t}),r&&!e.hideSpecimenInfo&&Ou(r),t.result&&g.default.createElement(ds,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&g.default.createElement(cf,{value:n}))}function wu({value:e}){return g.default.createElement(te.Group,{mt:"md",spacing:30},e.subject&&g.default.createElement("div",null,g.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),g.default.createElement(te.Text,null,g.default.createElement(No,{value:e.subject,link:!0}))),e.resultsInterpreter?.map(o=>g.default.createElement("div",{key:o.reference},g.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),g.default.createElement(te.Text,null,g.default.createElement(No,{value:o,link:!0})))),e.performer?.map(o=>g.default.createElement("div",{key:o.reference},g.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Performer"),g.default.createElement(te.Text,null,g.default.createElement(No,{value:o,link:!0})))),e.issued&&g.default.createElement("div",null,g.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),g.default.createElement(te.Text,null,(0,lo.formatDateTime)(e.issued))),e.status&&g.default.createElement("div",null,g.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),g.default.createElement(te.Text,null,(0,lo.capitalize)(e.status))))}function Ou(e){return g.default.createElement(te.Stack,{spacing:"xs"},g.default.createElement(te.Title,{order:2,size:"h6"},"Specimens"),g.default.createElement(te.List,{type:"ordered"},e?.map(o=>g.default.createElement(te.List.Item,{ml:"sm",key:`specimen-${o.id}`},g.default.createElement(te.Group,{spacing:20},g.default.createElement(te.Group,{spacing:5},g.default.createElement(te.Text,{fw:500},"Collected:")," ",(0,lo.formatDateTime)(o.collection?.collectedDateTime)),g.default.createElement(te.Group,{spacing:5},g.default.createElement(te.Text,{fw:500},"Received:")," ",(0,lo.formatDateTime)(o.receivedTime)))))))}function ds(e){let{classes:o}=us();return g.default.createElement("table",{className:o.table},g.default.createElement("thead",null,g.default.createElement("tr",null,g.default.createElement("th",null,"Test"),g.default.createElement("th",null,"Value"),g.default.createElement("th",null,"Reference Range"),g.default.createElement("th",null,"Interpretation"),g.default.createElement("th",null,"Category"),g.default.createElement("th",null,"Performer"),g.default.createElement("th",null,"Status"))),g.default.createElement("tbody",null,g.default.createElement(cs,{value:e.value,hideObservationNotes:e.hideObservationNotes})))}function cs(e){return g.default.createElement(g.default.Fragment,null,e.value?.map(o=>g.default.createElement(Eu,{key:`obs-${(0,lo.isReference)(o)?o.reference:o.id}`,hideObservationNotes:e.hideObservationNotes,value:o})))}function Eu(e){let{classes:o,cx:t}=us(),r=re(e.value);if(!r)return null;let a=!e.hideObservationNotes&&r.note,n=Nu(r);return g.default.createElement(g.default.Fragment,null,g.default.createElement("tr",{className:t({[o.criticalRow]:n})},g.default.createElement("td",{rowSpan:a?2:1},g.default.createElement(Te,{to:r},g.default.createElement(mt,{value:r.code}))),g.default.createElement("td",null,g.default.createElement(Lu,{value:r})),g.default.createElement("td",null,g.default.createElement(Ru,{value:r.referenceRange})),g.default.createElement("td",null,r.interpretation&&r.interpretation.length>0&&g.default.createElement(mt,{value:r.interpretation[0]})),g.default.createElement("td",null,r.category&&r.category.length>0&&g.default.createElement(g.default.Fragment,null,r.category.map(f=>g.default.createElement("div",{key:`category-${(0,lo.formatCodeableConcept)(f)}`},g.default.createElement(mt,{value:f}))))),g.default.createElement("td",null,r.performer?.map(f=>g.default.createElement(Xo,{key:f.reference,value:f}))),g.default.createElement("td",null,r.status&&g.default.createElement(Fr,{status:r.status}))),r.hasMember&&g.default.createElement(cs,{value:r.hasMember,hideObservationNotes:e.hideObservationNotes}),a&&g.default.createElement("tr",null,g.default.createElement("td",{colSpan:6},g.default.createElement(cf,{value:r.note}))))}function Lu(e){let o=e.value;return g.default.createElement(g.default.Fragment,null,(0,lo.formatObservationValue)(o))}function Ru(e){let o=e.value&&e.value.length>0&&e.value[0];return o?o.text?g.default.createElement(g.default.Fragment,null,o.text):g.default.createElement(Cr,{value:o}):null}function Nu(e){let o=e.interpretation?.[0]?.coding?.[0]?.code;return o==="AA"||o==="LL"||o==="HH"||o==="A"}var Jt=require("@mantine/core"),ms=m(require("react")),Hu=(0,Jt.createStyles)((e,{width:o,fill:t})=>({paper:{maxWidth:o,margin:`${e.spacing.xl} auto`,padding:t?0:e.spacing.md,"@media (max-width: 800px)":{padding:t?0:8},"& img":{width:"100%",maxWidth:"100%"},"& video":{width:"100%",maxWidth:"100%"}}})),Vu={shadow:"xs",radius:"md",withBorder:!0};function Ct(e){let{className:o,children:t,width:r,fill:a,unstyled:n,...f}=(0,Jt.useComponentDefaultProps)("Panel",Vu,e),{classes:s,cx:l}=Hu({width:r,fill:a},{name:"Panel",unstyled:n});return ms.default.createElement(Jt.Paper,{className:l(s.paper,o),...f},t)}var xs=require("@mantine/core"),Co=require("@medplum/core"),xe=m(require("react"));var qu=(0,xs.createStyles)(e=>({root:{borderCollapse:"collapse",width:"100%","& tr":{borderTop:`0.1px solid ${e.colors.gray[3]}`},"& th, & td":{padding:`${e.spacing.sm} ${e.spacing.sm}`,verticalAlign:"top"}},removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function Is(e){let{classes:o}=qu(),t=T(),[r,a]=(0,xe.useState)(!1);if((0,xe.useEffect)(()=>{t.requestSchema(e.original.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.original.resourceType]),!r)return null;let n=(0,Co.getDataType)(e.original.resourceType);return xe.default.createElement("table",{className:o.root},xe.default.createElement("colgroup",null,xe.default.createElement("col",{style:{width:"30%"}}),xe.default.createElement("col",{style:{width:"35%"}}),xe.default.createElement("col",{style:{width:"35%"}})),xe.default.createElement("thead",null,xe.default.createElement("tr",null,xe.default.createElement("th",null,"Property"),xe.default.createElement("th",null,"Before"),xe.default.createElement("th",null,"After"))),xe.default.createElement("tbody",null,Object.entries(n.elements).map(([f,s])=>{if(f==="id"||f==="meta")return null;let[l,i]=We((0,Co.toTypedValue)(e.original),f),[u,d]=We((0,Co.toTypedValue)(e.revised),f);return ps(l)&&ps(u)||(0,Co.stringify)(l)===(0,Co.stringify)(u)?null:xe.default.createElement("tr",{key:f},xe.default.createElement("td",null,(0,Co.getPropertyDisplayName)(f)),xe.default.createElement("td",{className:o.removed},xe.default.createElement(Fe,{property:s,propertyType:i,value:l,ignoreMissingValues:!0})),xe.default.createElement("td",{className:o.added},xe.default.createElement(Fe,{property:s,propertyType:d,value:u,ignoreMissingValues:!0})))})))}function ps(e){return!e||Array.isArray(e)&&e.length===0||typeof e=="object"&&Object.keys(e).length===0}var $t=m(require("react"));function ba(e){let o=T(),t=re(e.value),[r,a]=(0,$t.useState)(!1);return(0,$t.useEffect)(()=>{t&&o.requestSchema(t.resourceType).then(()=>a(!0)).catch(console.log)},[o,t]),!r||!t?null:$t.default.createElement(Rt,{value:{type:t.resourceType,value:e.forceUseInput?e.value:t},ignoreMissingValues:e.ignoreMissingValues})}var po=require("@mantine/core"),Pa=require("@medplum/core");var Se=m(require("react"));function mf(e){return Se.default.createElement(Ro,null,e.children)}function Ho(e){let{resource:o,profile:t,padding:r,popupMenuItems:a,...n}=e,f=t??o.meta?.author,s=e.dateTime??o.meta?.lastUpdated;return Se.default.createElement(Ct,{"data-testid":"timeline-item",fill:!0,...n},Se.default.createElement(po.Group,{position:"apart",spacing:8,mx:"xs",my:"sm"},Se.default.createElement(Re,{value:f,link:!0,size:"md"}),Se.default.createElement("div",{style:{flex:1}},Se.default.createElement(po.Text,{size:"sm"},Se.default.createElement(mo,{color:"dark",weight:500,value:f,link:!0})),Se.default.createElement(po.Text,{size:"xs"},Se.default.createElement(Te,{color:"dimmed",to:e.resource},(0,Pa.formatDateTime)(s)),Se.default.createElement(po.Text,{component:"span",color:"dimmed",mx:8},"\xB7"),Se.default.createElement(Te,{color:"dimmed",to:e.resource},e.resource.resourceType))),a&&Se.default.createElement(po.Menu,{position:"bottom-end",shadow:"md",width:200},Se.default.createElement(po.Menu.Target,null,Se.default.createElement(po.ActionIcon,{radius:"xl","aria-label":`Actions for ${(0,Pa.getReferenceString)(e.resource)}`},Se.default.createElement(un,null))),a)),Se.default.createElement(st,null,r&&Se.default.createElement("div",{style:{padding:"0 16px 16px 16px"}},e.children),!r&&Se.default.createElement(Se.default.Fragment,null,e.children)))}function pf(e,o){e.sort((t,r)=>{let a=gs(t,o),n=gs(r,o);return a>n?1:a<n?-1:hs(t,o)-hs(r,o)})}function gs(e,o){if(!Cs(e,o)){let t=e.priority;if(typeof t=="string")return{stat:4,asap:3,urgent:2}[t]??0}return 0}function hs(e,o){if(!Cs(e,o)){if(e.resourceType==="Communication"&&e.sent)return new Date(e.sent).getTime();if((e.resourceType==="DiagnosticReport"||e.resourceType==="Media"||e.resourceType==="Observation")&&e.issued)return new Date(e.issued).getTime();if(e.resourceType==="DocumentReference"&&e.date)return new Date(e.date).getTime()}let t=e.meta?.lastUpdated;return t?new Date(t).getTime():0}function Cs(e,o){return!!o&&e.resourceType===o.resourceType&&e.id===o.id}var Gu=(0,ie.createStyles)(e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}}));function Vo(e){let o=T(),t=Do(),r=o.getProfile(),a=(0,v.useRef)(null),n=re(e.value),[f,s]=(0,v.useState)(),[l,i]=(0,v.useState)([]),u=e.loadTimelineResources,d=(0,v.useRef)(l);d.current=l;let c=(0,v.useCallback)(b=>{pf(b,n),b.reverse(),i(b)},[n]),h=(0,v.useCallback)(b=>{let U=[];for(let so of b){if(so.status!=="fulfilled")continue;let Ne=so.value;if(Ne.type==="history"&&s(Ne),Ne.entry)for(let ft of Ne.entry)U.push(ft.resource)}c(U)},[c]),P=(0,v.useCallback)(b=>c([...d.current,b]),[c]),M=(0,v.useCallback)(()=>{let b,U;"resourceType"in e.value?(b=e.value.resourceType,U=e.value.id):[b,U]=e.value.reference?.split("/"),u(o,b,U).then(h).catch(console.log)},[o,e.value,u,h]);(0,v.useEffect)(()=>M(),[M]);function D(b){!n||!e.createCommunication||o.createResource(e.createCommunication(n,r,b)).then(U=>P(U)).catch(console.log)}function k(b){!n||!e.createMedia||o.createResource(e.createMedia(n,r,b)).then(U=>P(U)).then(()=>(0,Kt.updateNotification)({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:v.default.createElement(ir,{size:16}),autoClose:2e3})).catch(U=>(0,Kt.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,jo.normalizeErrorString)(U),icon:v.default.createElement(cn,{size:16}),autoClose:2e3}))}function A(b,U){return o.updateResource({...b,priority:U})}function I(b){A(b,"stat").then(M).catch(console.log)}function N(b){A(b,"routine").then(M).catch(console.log)}function C(b){t(`/${b.resourceType}/${b.id}`)}function R(b){t(`/${b.resourceType}/${b.id}/edit`)}function me(b){t(`/${b.resourceType}/${b.id}/delete`)}function to(b){t(`/${b.resourceType}/${b.id}/_history/${b.meta?.versionId}`)}function Ae(){(0,Kt.showNotification)({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})}function ar(b){(0,Kt.updateNotification)({id:"upload-notification",loading:!0,title:"Uploading...",message:$u(b),autoClose:!1,withCloseButton:!1})}return n?v.default.createElement(mf,null,e.createCommunication&&v.default.createElement(Ct,null,v.default.createElement(le,{testid:"timeline-form",onSubmit:b=>{D(b.text);let U=a.current;U&&(U.value="",U.focus())}},v.default.createElement(ie.Group,{spacing:"xs",noWrap:!0,style:{width:"100%"}},v.default.createElement(Re,{value:r}),v.default.createElement(ie.TextInput,{name:"text",ref:a,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),v.default.createElement(ie.ActionIcon,{type:"submit",radius:"xl",color:"blue",variant:"filled"},v.default.createElement(gn,{size:16})),v.default.createElement(ct,{onUpload:k,onUploadStart:Ae,onUploadProgress:ar},b=>v.default.createElement(ie.ActionIcon,{...b,radius:"xl",color:"blue",variant:"filled"},v.default.createElement(ur,{size:16})))))),l.map(b=>{if(!b)return null;let U=`${b.resourceType}/${b.id}/${b.meta?.versionId}`;if(b.resourceType===n.resourceType&&b.id===n.id)return v.default.createElement(Uu,{key:U,history:f,resource:b,onDetails:to});switch(b.resourceType){case"AuditEvent":return v.default.createElement(Xu,{key:U,resource:b,onDetails:C});case"Communication":return v.default.createElement(zu,{key:U,resource:b,onPin:b.priority!=="stat"?I:void 0,onUnpin:b.priority==="stat"?N:void 0,onDetails:C,onEdit:R,onDelete:me});case"DiagnosticReport":return v.default.createElement(Ju,{key:U,resource:b,onDetails:C,onEdit:R,onDelete:me});case"Media":return v.default.createElement(Wu,{key:U,resource:b,onDetails:C,onEdit:R,onDelete:me});default:return v.default.createElement(Ho,{key:U,resource:b,padding:!0},v.default.createElement(ba,{value:b,ignoreMissingValues:!0}))}})):v.default.createElement(ie.Center,{style:{width:"100%",height:"100%"}},v.default.createElement(ie.Loader,null))}function jt(e){return v.default.createElement(ie.Menu.Dropdown,null,v.default.createElement(ie.Menu.Label,null,"Resource"),e.onPin&&v.default.createElement(ie.Menu.Item,{icon:v.default.createElement(hn,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${(0,jo.getReferenceString)(e.resource)}`},"Pin"),e.onUnpin&&v.default.createElement(ie.Menu.Item,{icon:v.default.createElement(Cn,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${(0,jo.getReferenceString)(e.resource)}`},"Unpin"),e.onDetails&&v.default.createElement(ie.Menu.Item,{icon:v.default.createElement(xn,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${(0,jo.getReferenceString)(e.resource)}`},"Details"),e.onEdit&&v.default.createElement(ie.Menu.Item,{icon:v.default.createElement(dn,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${(0,jo.getReferenceString)(e.resource)}`},"Edit"),e.onDelete&&v.default.createElement(v.default.Fragment,null,v.default.createElement(ie.Menu.Divider,null),v.default.createElement(ie.Menu.Label,null,"Danger zone"),v.default.createElement(ie.Menu.Item,{color:"red",icon:v.default.createElement(mr,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${(0,jo.getReferenceString)(e.resource)}`},"Delete")))}function Uu(e){let o=Qu(e.history,e.resource);return o?v.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:v.default.createElement(jt,{...e})},v.default.createElement(Is,{original:o,revised:e.resource})):v.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:v.default.createElement(jt,{...e})},v.default.createElement("h3",null,"Created"),v.default.createElement(ba,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0}))}function Qu(e,o){let t=e.entry,r=t.findIndex(a=>a.resource?.meta?.versionId===o.meta?.versionId);if(!(r>=t.length-1))return t[r+1].resource}function zu(e){let{classes:o}=Gu(),r=!e.resource.priority||e.resource.priority==="routine"?void 0:o.pinnedComment;return v.default.createElement(Ho,{resource:e.resource,profile:e.resource.sender,dateTime:e.resource.sent,padding:!0,className:r,popupMenuItems:v.default.createElement(jt,{...e})},v.default.createElement("p",null,e.resource.payload?.[0]?.contentString))}function Wu(e){let o=e.resource.content?.contentType,t=o&&!o.startsWith("image/")&&!o.startsWith("video/")&&o!=="application/pdf";return v.default.createElement(Ho,{resource:e.resource,padding:!!t,popupMenuItems:v.default.createElement(jt,{...e})},v.default.createElement(uo,{value:e.resource.content}))}function Xu(e){return v.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:v.default.createElement(jt,{...e})},v.default.createElement(ie.ScrollArea,null,v.default.createElement("pre",null,e.resource.outcomeDesc)))}function Ju(e){return v.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:v.default.createElement(jt,{...e})},v.default.createElement(Sa,{value:e.resource}))}function $u(e){if(e.lengthComputable){let o=100*e.loaded/e.total;return`Uploaded: ${xf(e.loaded)} / ${xf(e.total)} ${o.toFixed(2)}%`}return`Uploaded: ${xf(e.loaded)}`}function xf(e){if(e===0)return"0.00 B";let o=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,o)).toFixed(2)+" "+" KMGTP".charAt(o)+"B"}function Ku(e){return ys.default.createElement(Vo,{value:e.resource,loadTimelineResources:async(o,t,r)=>{let a=`${t}/${r}`,n=100;return Promise.allSettled([o.readHistory(t,r),o.search("Task",{_filter:`based-on eq ${a} or focus eq ${a} or subject eq ${a}`,_count:n})])}})}var If=m(require("react"));function wr(e){let{children:o,...t}=e;return If.default.createElement(Ro,null,If.default.createElement(Ct,{...t},o))}var Or=require("@medplum/core"),vs=m(require("react"));function ju(e){return vs.default.createElement(Vo,{value:e.encounter,loadTimelineResources:async(o,t,r)=>Promise.allSettled([o.readHistory("Encounter",r),o.search("Communication","encounter=Encounter/"+r),o.search("Media","encounter=Encounter/"+r)]),createCommunication:(o,t,r)=>({resourceType:"Communication",status:"completed",encounter:(0,Or.createReference)(o),subject:o.subject,sender:(0,Or.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",encounter:(0,Or.createReference)(o),subject:o.subject,operator:(0,Or.createReference)(t),issued:new Date().toISOString(),content:r})})}var tr=require("@mantine/core"),Es=require("@medplum/core"),Y=m(require("react"));var Ss=require("@medplum/core"),bs=m(require("react"));function Ps(e){let o;try{o=(0,Ss.evalFhirPath)(e.path,e.resource)}catch(t){return console.warn("FhirPathDisplay:",t),null}if(o.length>1)throw new Error(`Component "path" for "FhirPathDisplay" must resolve to a single element. Received ${o.length} elements [${JSON.stringify(o,null,2)}]`);return bs.default.createElement(Fe,{value:o[0]||"",propertyType:e.propertyType})}var W=require("@mantine/core"),rt=require("@medplum/core");var y=m(require("react"));var _o=require("@mantine/core"),yt=m(require("react"));function Ts(e){return yt.default.createElement(_o.Modal,{title:"Export",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},yt.default.createElement(_o.Box,{display:"flex",sx:{justifyContent:"space-between"}},e.exportCsv&&yt.default.createElement(Ds,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&yt.default.createElement(Ds,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})),yt.default.createElement(_o.Text,{sx:{marginTop:"10px",marginLeft:"2px"}},"Limited to 1000 records"))}function Ds(e){return yt.default.createElement(_o.Button,{onClick:()=>{e.exportLogic(),e.onCancel()}},`Export as ${e.text}`)}var Zo=require("@mantine/core"),Yt=require("@medplum/core"),$=m(require("react"));var F=require("@medplum/core"),Er=m(require("react"));var _u={string:[F.Operator.EQUALS,F.Operator.NOT,F.Operator.CONTAINS,F.Operator.EXACT],fulltext:[F.Operator.EQUALS,F.Operator.NOT,F.Operator.CONTAINS,F.Operator.EXACT],token:[F.Operator.EQUALS,F.Operator.NOT],reference:[F.Operator.EQUALS,F.Operator.NOT],numeric:[F.Operator.EQUALS,F.Operator.NOT_EQUALS,F.Operator.GREATER_THAN,F.Operator.LESS_THAN,F.Operator.GREATER_THAN_OR_EQUALS,F.Operator.LESS_THAN_OR_EQUALS],quantity:[F.Operator.EQUALS,F.Operator.NOT_EQUALS,F.Operator.GREATER_THAN,F.Operator.LESS_THAN,F.Operator.GREATER_THAN_OR_EQUALS,F.Operator.LESS_THAN_OR_EQUALS],date:[F.Operator.EQUALS,F.Operator.NOT_EQUALS,F.Operator.GREATER_THAN,F.Operator.LESS_THAN,F.Operator.GREATER_THAN_OR_EQUALS,F.Operator.LESS_THAN_OR_EQUALS,F.Operator.STARTS_AFTER,F.Operator.ENDS_BEFORE,F.Operator.APPROXIMATELY],datetime:[F.Operator.EQUALS,F.Operator.NOT_EQUALS,F.Operator.GREATER_THAN,F.Operator.LESS_THAN,F.Operator.GREATER_THAN_OR_EQUALS,F.Operator.LESS_THAN_OR_EQUALS,F.Operator.STARTS_AFTER,F.Operator.ENDS_BEFORE,F.Operator.APPROXIMATELY]},Zu={eq:"equals",ne:"not equals",gt:"greater than",lt:"less than",ge:"greater than or equals",le:"less than or equals",sa:"starts after",eb:"ends before",ap:"approximately",contains:"contains",exact:"exact",text:"text",not:"not",above:"above",below:"below",in:"in","not-in":"not in","of-type":"of type",missing:"missing",identifier:"identifier",iterate:"iterate"};function _t(e,o){return{...e,filters:o,offset:0,name:void 0}}function Yu(e){return _t(e,[])}function Lr(e,o){return _t(e,(e.filters??[]).filter(t=>t.code!==o))}function vt(e,o,t,r,a){a&&(e=Lr(e,o));let n=[];return e.filters&&n.push(...e.filters),n.push({code:o,operator:t,value:r??""}),_t(e,n)}function ed(e,o){if(e.fields?.includes(o))return e;let t=[];return e.fields&&t.push(...e.fields),t.push(o),{...e,fields:t,name:void 0}}function gf(e,o){if(!e.filters)return e;let t=[...e.filters];return t.splice(o,1),{...e,filters:t,name:void 0}}function hf(e,o){return vf(e,o,-1)}function Cf(e,o){return vf(e,o,0)}function yf(e,o){return vf(e,o,1)}function vf(e,o,t){let r=new Date;r.setDate(r.getDate()+t),r.setHours(0,0,0,0);let a=new Date(r.getTime());return a.setDate(a.getDate()+1),a.setTime(a.getTime()-1),Da(e,o,r,a)}function Sf(e,o){return Df(e,o,-1)}function bf(e,o){return Df(e,o,0)}function Pf(e,o){return Df(e,o,1)}function Df(e,o,t){let r=new Date;r.setMonth(r.getMonth()+t),r.setDate(1),r.setHours(0,0,0,0);let a=new Date(r.getTime());return a.setMonth(a.getMonth()+1),a.setDate(1),a.setHours(0,0,0,0),a.setTime(a.getTime()-1),Da(e,o,r,a)}function Tf(e,o){let t=new Date;return t.setMonth(0),t.setDate(1),t.setHours(0,0,0,0),Da(e,o,t,new Date)}function Da(e,o,t,r){return e=Lr(e,o),e=ks(e,o,F.Operator.GREATER_THAN_OR_EQUALS,t),e=ks(e,o,F.Operator.LESS_THAN_OR_EQUALS,r),e}function ks(e,o,t,r){return vt(e,o,t,r.toISOString())}function Ta(e,o,t=!0){return vt(e,o,F.Operator.MISSING,t.toString())}function Bs(e,o){return e.offset===o?e:{...e,offset:o,name:void 0}}function kf(e,o){let t=e.count??F.DEFAULT_SEARCH_COUNT,r=(o-1)*t;return Bs(e,r)}function ka(e,o,t){return o===Bf(e)&&t!==void 0&&t===Af(e)?e:{...e,sortRules:[{code:o,descending:!!t}],name:void 0}}function od(e,o){let t=!1;return Bf(e)===o&&(t=!Af(e)),ka(e,o,t)}function Bf(e){let o=e.sortRules;if(!o||o.length===0)return;let t=o[0].code;return t.startsWith("-")?t.substr(1):t}function Af(e){let o=e.sortRules;return!o||o.length===0?!1:!!o[0].descending}function Mf(e){return _u[e.type]}function Zt(e){return Zu[e]??""}function Ve(e){let o=e;return o.includes(".")&&(o=o.split(".").pop()),o==="id"||o==="Id"?"ID":o==="versionId"?"Version ID":(o=o.replace("[x]",""),o=o.replace(/([A-Z])/g," $1"),o=o.replace(/[-_]/g," "),o=o.replace(/\s+/g," "),o=o.trim(),o.split(/\s/).map(F.capitalize).join(" "))}function Ff(e,o){let t=o.name;return t==="id"?e.id:t==="meta.versionId"?e.meta?.versionId:t==="_lastUpdated"?(0,F.formatDateTime)(e.meta?.lastUpdated):o.elementDefinition&&`${e.resourceType}.${o.name}`===o.elementDefinition.path?td(e,o.elementDefinition):o.searchParams&&o.searchParams.length===1&&o.name===o.searchParams[0].code?rd(e,o.searchParams[0]):null}function td(e,o){let t=o.path?.split(".")?.pop()?.replaceAll("[x]","")??"",[r,a]=We({type:e.resourceType,value:e},t);return r?Er.default.createElement(Fe,{property:o,propertyType:a,value:r,maxWidth:200,ignoreMissingValues:!0,link:!1}):null}function rd(e,o){let t=(0,F.evalFhirPathTyped)(o.expression,[{type:e.resourceType,value:e}]);return!t||t.length===0?null:Er.default.createElement(Er.default.Fragment,null,t.map((r,a)=>Er.default.createElement(Fe,{key:`${a}-${t.length}`,propertyType:r.type,value:r.value,maxWidth:200,ignoreMissingValues:!0,link:!1})))}function wf(e){let[o,t]=(0,$.useState)({search:JSON.parse((0,Yt.stringify)(e.search))}),r=(0,$.useRef)(null),a=(0,$.useRef)(null);(0,$.useEffect)(()=>{t({search:e.search})},[e.search]);function n(I){I.key==="Enter"&&i()}function f(){i()}function s(I){I.key==="Enter"&&u()}function l(){u()}function i(){let I=o.search.fields??[],N=r.current?.value;if(N){let C=[...I,N];t({search:{...o.search,fields:C}})}}function u(){let I=o.search.fields??[],N=a.current?.value;if(N){let C=[...I];C.splice(C.indexOf(N),1),t({search:{...o.search,fields:C}})}}function d(){let I=o.search.fields??[],N=a.current?.value;if(!N)return;let C=[...I],R=C.indexOf(N);R<=0||(h(C,R,R-1),t({search:{...o.search,fields:C}}))}function c(){let I=o.search.fields??[],N=a.current?.value;if(!N)return;let C=[...I],R=C.indexOf(N);R>=C.length-1||(h(C,R,R+1),t({search:{...o.search,fields:C}}))}function h(I,N,C){let R=I[N];I[N]=I[C],I[C]=R}if(!e.visible)return null;let P=e.search.resourceType,M=(0,Yt.getDataType)(P),D=(0,Yt.getSearchParameters)(P),k=o.search.fields??[],A=ad(M,D).filter(I=>!k.includes(I)).sort((I,N)=>I.localeCompare(N));return $.default.createElement(Zo.Modal,{title:"Fields",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},$.default.createElement("div",null,$.default.createElement("table",{style:{margin:"auto"}},$.default.createElement("thead",null,$.default.createElement("tr",null,$.default.createElement("th",{colSpan:2,align:"center"},"Available"),$.default.createElement("th",{colSpan:2,align:"center"},"Selected"))),$.default.createElement("tbody",null,$.default.createElement("tr",null,$.default.createElement("td",{colSpan:2,align:"center"},$.default.createElement("select",{ref:r,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:I=>n(I),onDoubleClick:()=>f(),"data-testid":"available"},A.map(I=>$.default.createElement("option",{key:I,value:I},Ve(I))))),$.default.createElement("td",{colSpan:2,align:"center"},$.default.createElement("select",{ref:a,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:I=>s(I),onDoubleClick:()=>l(),"data-testid":"selected"},k.map(I=>$.default.createElement("option",{key:I,value:I},Ve(I))))))),$.default.createElement("tfoot",null,$.default.createElement("tr",null,$.default.createElement("td",{align:"center"},$.default.createElement(Zo.Button,{compact:!0,variant:"outline",onClick:i},"Add")),$.default.createElement("td",{align:"center"},$.default.createElement(Zo.Button,{compact:!0,variant:"outline",onClick:u},"Remove")),$.default.createElement("td",{align:"center"},$.default.createElement(Zo.Button,{compact:!0,variant:"outline",onClick:d},"Up")),$.default.createElement("td",{align:"center"},$.default.createElement(Zo.Button,{compact:!0,variant:"outline",onClick:c},"Down")))))),$.default.createElement(Zo.Button,{onClick:()=>e.onOk(o.search)},"OK"))}function ad(e,o){let t=[],r=new Set,a=new Set;for(let n of Object.keys(e.elements))t.push(n),r.add(n.toLowerCase()),a.add(Ve(n));if(o)for(let n of Object.keys(o)){let f=Ve(n);!r.has(n)&&!a.has(f)&&(t.push(n),r.add(n),a.add(Ve(n)))}return t}var Ye=require("@mantine/core"),Rr=require("@medplum/core"),E=m(require("react"));var xo=require("@medplum/core"),er=m(require("react"));function Ba(e){let{resourceType:o,filter:t}=e,r=xo.globalSchema.types[o].searchParams?.[t.code];if(r){if(r.type==="reference"&&(t.operator===xo.Operator.EQUALS||t.operator===xo.Operator.NOT_EQUALS))return er.default.createElement(mo,{value:{reference:t.value}});let a=(0,xo.getSearchParameterDetails)(o,r);if(t.code==="_lastUpdated"||a.type===xo.SearchParameterType.DATETIME)return er.default.createElement(er.default.Fragment,null,(0,xo.formatDateTime)(t.value))}return er.default.createElement(er.default.Fragment,null,t.value)}var or=require("@mantine/core"),qo=require("@medplum/core"),Yo=m(require("react"));function Aa(e){let o=(0,qo.getSearchParameterDetails)(e.resourceType,e.searchParam),t="filter-value";switch(o.type){case qo.SearchParameterType.REFERENCE:return Yo.default.createElement(ht,{name:t,defaultValue:e.defaultValue?{reference:e.defaultValue}:void 0,targetTypes:e.searchParam.target,autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(r.reference):e.onChange("")}});case qo.SearchParameterType.BOOLEAN:return Yo.default.createElement(or.Checkbox,{name:t,"data-autofocus":e.autoFocus,"data-testid":t,defaultChecked:e.defaultValue==="true",autoFocus:e.autoFocus,onChange:r=>e.onChange(r.currentTarget.checked.toString())});case qo.SearchParameterType.DATE:return Yo.default.createElement(or.TextInput,{type:"date",name:t,"data-autofocus":e.autoFocus,"data-testid":t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:r=>e.onChange(r.currentTarget.value)});case qo.SearchParameterType.DATETIME:return Yo.default.createElement(no,{name:t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:e.onChange});case qo.SearchParameterType.NUMBER:return Yo.default.createElement(or.TextInput,{type:"number",name:t,"data-autofocus":e.autoFocus,"data-testid":t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:r=>e.onChange(r.currentTarget.value)});case qo.SearchParameterType.QUANTITY:return Yo.default.createElement(Ze,{name:t,defaultValue:nd(e.defaultValue),autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(`${r.value}`):e.onChange("")}});default:return Yo.default.createElement(or.TextInput,{name:t,"data-autofocus":e.autoFocus,"data-testid":t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:r=>e.onChange(r.currentTarget.value),placeholder:"Search value"})}}function nd(e){if(e){let[o,t,r]=e.split("|");if(o)return{value:parseFloat(o),system:t,unit:r}}}function Of(e){let[o,t]=(0,E.useState)(JSON.parse((0,Rr.stringify)(e.search))),[r,a]=(0,E.useState)(-1),n=(0,E.useRef)(o);n.current=o,(0,E.useEffect)(()=>{t(JSON.parse((0,Rr.stringify)(e.search)))},[e.search]);function f(u){t(vt(n.current,u.code,u.operator,u.value))}if(!e.visible)return null;let s=e.search.resourceType,l=Rr.globalSchema.types[s].searchParams??{},i=o.filters||[];return E.default.createElement(Ye.Modal,{title:"Filters",closeButtonProps:{"aria-label":"Close"},size:900,opened:e.visible,onClose:e.onCancel},E.default.createElement("div",null,E.default.createElement("table",null,E.default.createElement("colgroup",null,E.default.createElement("col",{style:{width:200}}),E.default.createElement("col",{style:{width:200}}),E.default.createElement("col",{style:{width:380}}),E.default.createElement("col",{style:{width:120}})),E.default.createElement("thead",null,E.default.createElement("tr",null,E.default.createElement("th",null,"Field"),E.default.createElement("th",null,"Operation"),E.default.createElement("th",null,"Value"),E.default.createElement("th",null,"Actions"))),E.default.createElement("tbody",null,i.map((u,d)=>d===r?E.default.createElement(As,{key:`filter-${u.code}-${u.operator}-${u.value}-input`,resourceType:s,searchParams:l,defaultValue:u,okText:"Save",onOk:c=>{let h=[...i];h[d]=c,t(_t(n.current,h)),a(-1)},onCancel:()=>a(-1)}):E.default.createElement(fd,{key:`filter-${u.code}-${u.operator}-${u.value}-display`,resourceType:s,searchParams:l,filter:u,onEdit:()=>a(d),onDelete:()=>t(gf(n.current,d))})),E.default.createElement(As,{resourceType:s,searchParams:l,okText:"Add",onOk:f})))),E.default.createElement(Ye.Group,{position:"right",mt:"xl"},E.default.createElement(Ye.Button,{onClick:()=>e.onOk(n.current)},"OK")))}function fd(e){let{filter:o}=e;return E.default.createElement("tr",null,E.default.createElement("td",null,Ve(o.code)),E.default.createElement("td",null,Zt(o.operator)),E.default.createElement("td",null,E.default.createElement(Ba,{resourceType:e.resourceType,filter:o})),E.default.createElement("td",null,E.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),E.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function As(e){let[o,t]=(0,E.useState)(e.defaultValue??{}),r=(0,E.useRef)(o);r.current=o;function a(i){t({...r.current,code:i})}function n(i){t({...r.current,operator:i})}function f(i){t({...r.current,value:i})}let s=e.searchParams[o.code],l=s&&Mf(s);return E.default.createElement("tr",null,E.default.createElement("td",null,E.default.createElement(Ye.NativeSelect,{"data-testid":"filter-field",defaultValue:r.current.code,onChange:i=>a(i.currentTarget.value),data:["",...Object.keys(e.searchParams).map(i=>({value:i,label:Ve(i)}))]})),E.default.createElement("td",null,l&&E.default.createElement(Ye.NativeSelect,{"data-testid":"filter-operation",defaultValue:o.operator,onChange:i=>n(i.currentTarget.value),data:["",...l.map(i=>({value:i,label:Zt(i)}))]})),E.default.createElement("td",null,s&&o.operator&&E.default.createElement(Aa,{resourceType:e.resourceType,searchParam:s,defaultValue:o.value,onChange:f})),E.default.createElement("td",null,o.code&&o.operator&&o.value&&E.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:()=>{e.onOk(r.current),t({})}},e.okText),e.onCancel&&E.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}var et=require("@mantine/core"),yo=m(require("react"));function Ms(e){let[o,t]=(0,yo.useState)(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function r(){e.onOk({...e.filter,value:o})}return yo.default.createElement(et.Modal,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},yo.default.createElement(le,{onSubmit:r},yo.default.createElement(et.Grid,null,yo.default.createElement(et.Grid.Col,{span:10},yo.default.createElement(Aa,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:o,autoFocus:!0,onChange:t})),yo.default.createElement(et.Grid.Col,{span:2},yo.default.createElement(et.Button,{onClick:r,fullWidth:!0},"OK")))))}var O=require("@mantine/core"),ke=require("@medplum/core");var p=m(require("react"));function Fs(e){if(!e.searchParams)return null;function o(n,f){a(ka(e.search,n.code,f))}function t(n){a(Lr(e.search,n.code))}function r(n,f){e.onPrompt(n,{code:n.code,operator:f,value:""})}function a(n){e.onChange(n)}return e.searchParams.length===1?p.default.createElement(ld,{search:e.search,searchParam:e.searchParams[0],onSort:o,onPrompt:r,onChange:a,onClear:t}):p.default.createElement(O.Menu.Dropdown,null,e.searchParams.map(n=>p.default.createElement(O.Menu.Item,{key:n.code},Ve(n.code))))}function ld(e){switch(e.searchParam.type){case"date":return p.default.createElement(sd,{...e});case"number":case"quantity":return p.default.createElement(id,{...e});case"reference":return p.default.createElement(ud,{...e});case"string":case"token":case"uri":return p.default.createElement(dd,{...e});default:return p.default.createElement(p.default.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function sd(e){let{searchParam:o}=e,t=o.code;return p.default.createElement(O.Menu.Dropdown,null,p.default.createElement(O.Menu.Item,{icon:p.default.createElement(dr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Oldest to Newest"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(cr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Newest to Oldest"),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(At,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.NOT_EQUALS)},"Does not equal..."),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement($r,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.ENDS_BEFORE)},"Before..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Jr,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.STARTS_AFTER)},"After..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(on,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Between..."),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(To,{size:14}),onClick:()=>e.onChange(yf(e.search,t))},"Tomorrow"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(To,{size:14}),onClick:()=>e.onChange(Cf(e.search,t))},"Today"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(To,{size:14}),onClick:()=>e.onChange(hf(e.search,t))},"Yesterday"),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(To,{size:14}),onClick:()=>e.onChange(Pf(e.search,t))},"Next Month"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(To,{size:14}),onClick:()=>e.onChange(bf(e.search,t))},"This Month"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(To,{size:14}),onClick:()=>e.onChange(Sf(e.search,t))},"Last Month"),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(To,{size:14}),onClick:()=>e.onChange(Tf(e.search,t))},"Year to date"),p.default.createElement(Ma,{...e}))}function id(e){let{searchParam:o}=e;return p.default.createElement(O.Menu.Dropdown,null,p.default.createElement(O.Menu.Item,{icon:p.default.createElement(dr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Smallest to Largest"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(cr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Largest to Smallest"),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(At,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.NOT_EQUALS)},"Does not equal..."),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Jr,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.GREATER_THAN)},"Greater than..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Mt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement($r,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.LESS_THAN)},"Less than..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Mt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),p.default.createElement(Ma,{...e}))}function ud(e){let{searchParam:o}=e;return p.default.createElement(O.Menu.Dropdown,null,p.default.createElement(O.Menu.Item,{icon:p.default.createElement(At,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.NOT)},"Does not equal..."),p.default.createElement(Ma,{...e}))}function dd(e){let{searchParam:o}=e;return p.default.createElement(O.Menu.Dropdown,null,p.default.createElement(O.Menu.Item,{icon:p.default.createElement(dr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort A to Z"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(cr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Z to A"),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(At,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.NOT)},"Does not equal..."),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(rn,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.CONTAINS)},"Contains..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(tn,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Does not contain..."),p.default.createElement(Ma,{...e}))}function Ma(e){let{searchParam:o}=e,t=o.code;return p.default.createElement(p.default.Fragment,null,p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Ya,{size:14}),onClick:()=>e.onChange(Ta(e.search,t))},"Missing"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Za,{size:14}),onClick:()=>e.onChange(Ta(e.search,t,!1))},"Not missing"),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Tn,{size:14}),onClick:()=>e.onClear(o)},"Clear filters"))}var ot=require("@medplum/core");function ws(e){let o=e.resourceType,t=[];for(let r of e.fields||["id","_lastUpdated"])t.push(cd(o,r));return t}function cd(e,o){if(o==="_lastUpdated")return{name:"_lastUpdated",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_lastUpdated",name:"_lastUpdated",type:"date",expression:"Resource.meta.lastUpdated"}]};if(o==="meta.versionId")return{name:"meta.versionId",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_versionId",name:"_versionId",type:"token",expression:"Resource.meta.versionId"}]};let t=(0,ot.getElementDefinition)(e,o),r=(0,ot.getSearchParameter)(e,o.toLowerCase());if(t&&r)return{name:o,elementDefinition:t,searchParams:[r]};if(t){let a=(0,ot.getSearchParameters)(e),n;if(a){let f=`${e}.${o.replaceAll("[x]","")}`;n=Object.values(a).filter(s=>s.expression?.includes(f)),n.length===0&&(n=void 0)}return{name:o,elementDefinition:t,searchParams:n}}if(r){let a=(0,ot.getSearchParameterDetails)(e,r);return{name:o,elementDefinition:a.elementDefinitions?.[0],searchParams:[r]}}return{name:o}}var Fa=class extends Event{constructor(t){super("change");this.definition=t}},wa=class extends Event{constructor(t){super("load");this.response=t}},tt=class extends Event{constructor(t,r){super("click");this.resource=t,this.browserEvent=r}},md=(0,W.createStyles)(e=>({root:{maxWidth:"100%",overflow:"auto",textAlign:"left",marginBottom:"20px"},table:{cursor:"pointer"},tr:{"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[7]:e.colors.gray[0]}},th:{padding:"0 !important"},control:{width:"100%",padding:`${e.spacing.xs} ${e.spacing.md}`,"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[6]:e.colors.gray[0]}},icon:{width:21,height:21,borderRadius:21}}));function Os(e){let{classes:o}=md(),t=T(),[r,a]=(0,y.useState)(!1),[n,f]=(0,y.useState)(),{search:s,onLoad:l}=e,[i,u]=(0,y.useState)({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,exportDialogVisible:!1,filterDialogVisible:!1}),d=(0,y.useRef)(i);d.current=i;let c=s.total??"accurate",h=(0,y.useCallback)(B=>{f(void 0),t.search(s.resourceType,(0,rt.formatSearchQuery)({...s,total:c,fields:void 0}),B).then(oe=>{u({...d.current,searchResponse:oe}),l&&l(new wa(oe))}).catch(oe=>{u({...d.current,searchResponse:void 0}),f(oe)})},[t,s,c,l]),P=(0,y.useCallback)(()=>{u({...d.current,searchResponse:void 0}),h({cache:"reload"})},[h]);(0,y.useEffect)(()=>{h()},[h]);function M(B,oe){B.stopPropagation();let Me=B.target.checked,Le={...d.current.selected};Me?Le[oe]=!0:delete Le[oe],u({...d.current,selected:Le})}function D(B){B.stopPropagation();let he=B.target.checked,Me={},Le=d.current.searchResponse;he&&Le?.entry&&Le.entry.forEach(nr=>{nr.resource?.id&&(Me[nr.resource.id]=!0)}),u({...d.current,selected:Me})}function k(){let B=d.current;if(!B.searchResponse?.entry||B.searchResponse.entry.length===0)return!1;for(let oe of B.searchResponse.entry)if(oe.resource?.id&&!B.selected[oe.resource.id])return!1;return!0}function A(B){e.onChange&&e.onChange(new Fa(B))}function I(B,oe){if(Zr(B.target)||B.button===2)return;Q(B);let he=B.button===1||B.ctrlKey||B.metaKey;!he&&e.onClick&&e.onClick(new tt(oe,B)),he&&e.onAuxClick&&e.onAuxClick(new tt(oe,B))}function N(){return!!(e.onExport??e.onExportCsv??e.onExportTransactionBundle)}if((0,y.useEffect)(()=>{a(!1),t.requestSchema(e.search.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.search.resourceType]),!(r&&rt.globalSchema.types[e.search.resourceType]))return y.default.createElement(W.Center,{style:{width:"100%",height:"100%"}},y.default.createElement(W.Loader,null));let R=e.checkboxesEnabled,me=ws(s),to=s.resourceType,Ae=i.searchResponse,b=Ae?.entry?.map(B=>B.resource),U="subtle",so="gray",Ne=16,ft=window.innerWidth<768;return y.default.createElement("div",{className:o.root,"data-testid":"search-control"},!e.hideToolbar&&y.default.createElement(W.Group,{position:"apart",mb:"xl"},y.default.createElement(W.Group,{spacing:2},y.default.createElement(W.Button,{compact:!0,variant:U,color:so,leftIcon:y.default.createElement(fn,{size:Ne}),onClick:()=>u({...d.current,fieldEditorVisible:!0})},"Fields"),y.default.createElement(W.Button,{compact:!0,variant:U,color:so,leftIcon:y.default.createElement(pn,{size:Ne}),onClick:()=>u({...d.current,filterEditorVisible:!0})},"Filters"),e.onNew&&y.default.createElement(W.Button,{compact:!0,variant:U,color:so,leftIcon:y.default.createElement(mn,{size:Ne}),onClick:e.onNew},"New..."),!ft&&N()&&y.default.createElement(W.Button,{compact:!0,variant:U,color:so,leftIcon:y.default.createElement(Dn,{size:Ne}),onClick:e.onExport?e.onExport:()=>u({...d.current,exportDialogVisible:!0})},"Export..."),!ft&&e.onDelete&&y.default.createElement(W.Button,{compact:!0,variant:U,color:so,leftIcon:y.default.createElement(mr,{size:Ne}),onClick:()=>e.onDelete(Object.keys(i.selected))},"Delete..."),!ft&&e.onBulk&&y.default.createElement(W.Button,{compact:!0,variant:U,color:so,leftIcon:y.default.createElement(en,{size:Ne}),onClick:()=>e.onBulk(Object.keys(i.selected))},"Bulk...")),y.default.createElement(W.Group,{spacing:2},Ae&&y.default.createElement(W.Text,{size:"xs",color:"dimmed"},hd(s,Ae.total),"-",Cd(s,Ae.total)," of"," ",`${c==="estimate"?"~":""}${Ae.total?.toLocaleString()}`),y.default.createElement(W.ActionIcon,{title:"Refresh",onClick:P},y.default.createElement(vn,{size:"1.125rem"})))),y.default.createElement(W.Table,{className:o.table},y.default.createElement("thead",null,y.default.createElement("tr",null,R&&y.default.createElement("th",null,y.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:k(),onChange:B=>D(B)})),me.map(B=>y.default.createElement("th",{key:B.name},y.default.createElement(W.Menu,{shadow:"md",width:240,position:"bottom-end"},y.default.createElement(W.Menu.Target,null,y.default.createElement(W.UnstyledButton,{className:o.control},y.default.createElement(W.Group,{position:"apart",noWrap:!0},y.default.createElement(W.Text,{weight:500,size:"sm"},Ve(B.name)),y.default.createElement(W.Center,{className:o.icon},y.default.createElement(Ka,{size:14,stroke:1.5}))))),y.default.createElement(Fs,{search:e.search,searchParams:B.searchParams,onPrompt:(oe,he)=>{u({...d.current,filterDialogVisible:!0,filterDialogSearchParam:oe,filterDialogFilter:he})},onChange:oe=>{A(oe)}}))))),!e.hideFilters&&y.default.createElement("tr",null,R&&y.default.createElement("th",null),me.map(B=>y.default.createElement("th",{key:B.name},B.searchParams&&y.default.createElement(xd,{resourceType:to,searchParams:B.searchParams,filters:e.search.filters}))))),y.default.createElement("tbody",null,b?.map(B=>B&&y.default.createElement("tr",{key:B.id,className:o.tr,"data-testid":"search-control-row",onClick:oe=>I(oe,B),onAuxClick:oe=>I(oe,B)},R&&y.default.createElement("td",null,y.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${B.id}`,checked:!!i.selected[B.id],onChange:oe=>M(oe,B.id)})),me.map(oe=>y.default.createElement("td",{key:oe.name},Ff(B,oe))))))),b?.length===0&&y.default.createElement(Ro,null,y.default.createElement(W.Center,{style:{height:150}},y.default.createElement(W.Text,{size:"xl",color:"dimmed"},"No results"))),Ae?.total!==void 0&&Ae.total>0&&y.default.createElement(W.Center,{m:"md",p:"md"},y.default.createElement(W.Pagination,{value:Id(s),total:gd(s,Ae.total),onChange:B=>A(kf(s,B)),getControlProps:B=>{switch(B){case"previous":return{"aria-label":"Previous page"};case"next":return{"aria-label":"Next page"};default:return{}}}})),n&&y.default.createElement("div",{"data-testid":"search-error"},y.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(n,void 0,2))),y.default.createElement(wf,{search:e.search,visible:d.current.fieldEditorVisible,onOk:B=>{A(B),u({...d.current,fieldEditorVisible:!1})},onCancel:()=>{u({...d.current,fieldEditorVisible:!1})}}),y.default.createElement(Of,{search:e.search,visible:d.current.filterEditorVisible,onOk:B=>{A(B),u({...d.current,filterEditorVisible:!1})},onCancel:()=>{u({...d.current,filterEditorVisible:!1})}}),y.default.createElement(Ts,{visible:d.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{u({...d.current,exportDialogVisible:!1})}}),y.default.createElement(Ms,{key:i.filterDialogSearchParam?.code,visible:d.current.filterDialogVisible,title:i.filterDialogSearchParam?.code?Ve(i.filterDialogSearchParam.code):"",resourceType:to,searchParam:i.filterDialogSearchParam,filter:i.filterDialogFilter,defaultValue:"",onOk:B=>{A(vt(e.search,B.code,B.operator,B.value)),u({...d.current,filterDialogVisible:!1})},onCancel:()=>{u({...d.current,filterDialogVisible:!1})}}))}var pd=y.default.memo(Os);function xd(e){let o=(e.filters??[]).filter(t=>e.searchParams.find(r=>r.code===t.code));return o.length===0?y.default.createElement("span",null,"no filters"):y.default.createElement(y.default.Fragment,null,o.map(t=>y.default.createElement("div",{key:`filter-${t.code}-${t.operator}-${t.value}`},Zt(t.operator),"\xA0",y.default.createElement(Ba,{resourceType:e.resourceType,filter:t}))))}function Id(e){return Math.floor((e.offset??0)/(e.count??rt.DEFAULT_SEARCH_COUNT))+1}function gd(e,o){let t=e.count??rt.DEFAULT_SEARCH_COUNT;return Math.ceil(o/t)}function hd(e,o){return Math.min(o,(e.offset??0)+1)}function Cd(e,o){return Math.min(o,((e.offset??0)+1)*(e.count??rt.DEFAULT_SEARCH_COUNT))}function Ls(e){let o=T(),[t,r]=(0,Y.useState)(!1),[a,n]=(0,Y.useState)(),{query:f,fields:s}=e,[l,i]=(0,Y.useState)(),[u,d]=(0,Y.useState)({}),c=(0,Y.useRef)();c.current=l;let h=(0,Y.useRef)({});h.current=u,(0,Y.useEffect)(()=>{n(void 0),o.graphql(f).then(i).catch(I=>n((0,Es.normalizeOperationOutcome)(I)))},[o,f]);function P(I,N){I.stopPropagation();let R=I.target.checked,me={...h.current};R?me[N]=!0:delete me[N],d(me)}function M(I){I.stopPropagation();let C=I.target.checked,R={},me=c.current?.data.ResourceList;C&&me&&me.forEach(to=>{to.id&&(R[to.id]=!0)}),d(R)}function D(){let I=c.current?.data.ResourceList;if(!I||I.length===0)return!1;for(let N of I)if(N.id&&!h.current[N.id])return!1;return!0}function k(I,N){Zr(I.target)||(Q(I),I.button!==1&&e.onClick&&e.onClick(new tt(N,I)),I.button===1&&e.onAuxClick&&e.onAuxClick(new tt(N,I)))}if((0,Y.useEffect)(()=>{o.requestSchema(e.resourceType).then(()=>r(!0)).catch(console.log)},[o,e.resourceType]),!t)return Y.default.createElement(tr.Loader,null);let A=e.checkboxesEnabled;return Y.default.createElement("div",{onContextMenu:I=>Q(I),"data-testid":"search-control"},Y.default.createElement(tr.Table,null,Y.default.createElement("thead",null,Y.default.createElement("tr",null,A&&Y.default.createElement("th",null,Y.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:D(),onChange:I=>M(I)})),s.map(I=>Y.default.createElement("th",{key:I.name},I.name)))),Y.default.createElement("tbody",null,l?.data.ResourceList.map(I=>I&&Y.default.createElement("tr",{key:I.id,"data-testid":"search-control-row",onClick:N=>k(N,I),onAuxClick:N=>k(N,I)},A&&Y.default.createElement("td",null,Y.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${I.id}`,checked:!!u[I.id],onChange:N=>P(N,I.id)})),s.map(N=>Y.default.createElement("td",{key:N.name},Y.default.createElement(Ps,{propertyType:N.propertyType,path:N.fhirPath,resource:I}))))))),l?.data.ResourceList.length===0&&Y.default.createElement("div",{"data-testid":"empty-search"},"No results"),a&&Y.default.createElement("div",{"data-testid":"search-error"},Y.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(a,void 0,2))),e.onBulk&&Y.default.createElement(tr.Button,{onClick:()=>e.onBulk(Object.keys(h.current))},"Bulk..."))}var yd=Y.default.memo(Ls);var at=m(require("react"));function Go(e){return at.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},at.default.createElement("title",null,"Medplum Logo"),at.default.createElement("path",{fill:e.fill??"#ad7136",d:"M282 67c6-16 16-29 29-40L289 0c-22 17-37 41-43 68l17 23 19-24z"}),at.default.createElement("path",{fill:e.fill??"#946af9",d:"M311 63c-17 0-33 4-48 11-16-7-32-11-49-11-87 0-158 96-158 214s71 214 158 214c17 0 33-4 49-11 15 7 31 11 48 11 87 0 158-96 158-214S398 63 311 63z"}),at.default.createElement("path",{fill:e.fill??"#7857c5",d:"M231 489l-17 2c-87 0-158-96-158-214S127 63 214 63l17 1c-39 12-70 102-70 213s31 201 70 212z"}),at.default.createElement("path",{fill:e.fill??"#40bc26",d:"M207 220a176 176 0 01-177 43A176 176 0 01251 43l1 5c17 59 2 125-45 172z"}),at.default.createElement("path",{fill:e.fill??"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}var Rs=require("@mantine/core");var Oa=m(require("react"));function St(e){let o=e.outcome?.issue||e.issues;return!o||o.length===0?null:Oa.default.createElement(Rs.Alert,{icon:Oa.default.createElement(lt,{size:16}),color:"red"},o.map(t=>Oa.default.createElement("div",{"data-testid":"text-field-error",key:t.details?.text},t.details?.text)))}var Nr=require("@medplum/core"),Ea=m(require("react"));function vd(e){let o=(0,Ea.useCallback)((t,r,a)=>{let n=`${r}/${a}`,f=100;return Promise.allSettled([t.readHistory("Patient",a),t.search("Communication",{subject:n,_count:f}),t.search("Device",{patient:n,_count:f}),t.search("DeviceRequest",{patient:n,_count:f}),t.search("DiagnosticReport",{subject:n,_count:f}),t.search("Media",{subject:n,_count:f}),t.search("ServiceRequest",{subject:n,_count:f}),t.search("Task",{subject:n,_count:f})])},[]);return Ea.default.createElement(Vo,{value:e.patient,loadTimelineResources:o,createCommunication:(t,r,a)=>({resourceType:"Communication",status:"completed",subject:(0,Nr.createReference)(t),sender:(0,Nr.createReference)(r),sent:new Date().toISOString(),payload:[{contentString:a}]}),createMedia:(t,r,a)=>({resourceType:"Media",status:"completed",subject:(0,Nr.createReference)(t),operator:(0,Nr.createReference)(r),issued:new Date().toISOString(),content:a})})}var qe=require("@mantine/core"),Ns=require("@medplum/core"),L=m(require("react"));var Hs=(0,qe.createStyles)(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}}}));function Sd(e){let o=T(),t=re(e.value),[r,a]=(0,L.useState)(!1),[n,f]=(0,L.useState)(),[s,l]=(0,L.useState)(),[i,u]=(0,L.useState)();function d(){l(void 0)}function c(){f(void 0)}let h=(0,L.useRef)();if(h.current=i,(0,L.useEffect)(()=>{o.requestSchema("PlanDefinition").then(()=>a(!0)).catch(console.log)},[o]),(0,L.useEffect)(()=>(u(Bd(t??{resourceType:"PlanDefinition"})),document.addEventListener("mouseover",d),document.addEventListener("click",c),()=>{document.removeEventListener("mouseover",d),document.removeEventListener("click",c)}),[t]),!r||!i)return null;function P(M,D){u({...h.current,[M]:D})}return L.default.createElement("div",null,L.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(i)},L.default.createElement(qe.TextInput,{label:"Plan Title",defaultValue:i.title,onChange:M=>P("title",M.currentTarget.value)}),L.default.createElement(Vs,{actions:i.action||[],selectedKey:n,setSelectedKey:f,hoverKey:s,setHoverKey:l,onChange:M=>P("action",M)}),L.default.createElement(qe.Button,{type:"submit"},"Save")))}function Vs(e){let{classes:o}=Hs(),t=(0,L.useRef)();t.current=e.actions;function r(f){e.onChange(t.current.map(s=>s.id===f.id?f:s))}function a(f){e.onChange([...t.current,f]),e.setSelectedKey(f.id)}function n(f){e.onChange(t.current.filter(s=>s!==f))}return L.default.createElement("div",{className:o.section},e.actions.map(f=>L.default.createElement("div",{key:f.id},L.default.createElement(bd,{action:f,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:r,onRemove:()=>n(f)}))),L.default.createElement("div",{className:o.bottomActions},L.default.createElement(qe.Anchor,{href:"#",onClick:f=>{Q(f),a({id:Gs()})}},"Add action")))}function bd(e){let{classes:o,cx:t}=Hs(),{action:r}=e,a=kd(r),n=e.selectedKey===e.action.id,f=e.hoverKey===e.action.id;function s(u){u.stopPropagation(),e.setSelectedKey(e.action.id)}function l(u){Q(u),e.setHoverKey(e.action.id)}let i=t(o.section,{[o.editing]:n,[o.hovering]:f&&!n});return L.default.createElement("div",{"data-testid":r.id,className:i,onClick:s,onMouseOver:l},n?L.default.createElement(Dd,{action:r,actionType:a,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):L.default.createElement(Pd,{action:r,actionType:a}),L.default.createElement("div",{className:o.bottomActions},L.default.createElement(qe.Anchor,{href:"#",onClick:u=>{u.preventDefault(),e.onRemove()}},"Remove")))}var Lf={path:"PlanDefinition.action.timing[x]",min:0,max:1,description:"",isArray:!1,constraints:[],type:["dateTime","Period","Range","Timing"].map(e=>({code:e}))};function Pd(e){let{action:o,actionType:t}=e,[r,a]=qs(o);return L.default.createElement("div",null,L.default.createElement("div",null,o.title||"Untitled"," ",t&&`(${t})`),o.definitionCanonical&&L.default.createElement("div",null,L.default.createElement(Xo,{value:{reference:o.definitionCanonical}})),r&&L.default.createElement("div",null,L.default.createElement(Fe,{property:Lf,propertyType:a,value:r})))}function Dd(e){let{action:o}=e,[t,r]=(0,L.useState)(e.actionType);function a(n,f){e.onChange({...o,[n]:f})}return L.default.createElement(qe.Stack,{spacing:"xl"},L.default.createElement(qe.TextInput,{name:`actionTitle-${o.id}`,label:"Title",defaultValue:o.title,onChange:n=>a("title",n.currentTarget.value)}),L.default.createElement(qe.TextInput,{name:`actionDescription-${o.id}`,label:"Description",defaultValue:o.description,onChange:n=>a("description",n.currentTarget.value)}),L.default.createElement(qe.NativeSelect,{label:"Type of Action",description:"The type of the action to be performed.",name:`actionType-${o.id}`,defaultValue:t,onChange:n=>r(n.currentTarget.value),data:["","appointment","lab","questionnaire","task"]}),o.action&&o.action.length>0&&L.default.createElement(Vs,{actions:o.action,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:n=>a("action",n)}),(()=>{switch(t){case"appointment":return L.default.createElement(La,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:o,onChange:e.onChange});case"lab":return L.default.createElement(La,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});case"questionnaire":return L.default.createElement(La,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:o,onChange:e.onChange});case"task":return L.default.createElement(La,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});default:return null}})(),L.default.createElement(Xe,{title:"Timing",description:"When the action should take place."},L.default.createElement(Td,{name:"timing-"+o.id,action:o,onChange:e.onChange})))}function La(e){let{id:o,definitionCanonical:t}=e.action,r=t?.startsWith(e.resourceType+"/")?{reference:t}:void 0;return L.default.createElement(Br,{name:o,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:a=>{a?e.onChange({...e.action,definitionCanonical:(0,Ns.getReferenceString)(a)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function Td(e){let o=e.action,t="timing",[r,a]=qs(o);return L.default.createElement(ho,{property:Lf,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(n,f)=>{e.onChange(Ht(o,t,f??t,Lf,n))}})}function kd(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task"}function qs(e){return We({type:"PlanDefinitionAction",value:e},"timing")}var Ef=1;function Gs(e){if(e){if(e.startsWith("id-")){let o=parseInt(e.substring(3),10);isNaN(o)||(Ef=Math.max(Ef,o+1))}return e}return"id-"+Ef++}function Bd(e){return{...e,action:Us(e.action)}}function Us(e){if(e)return e.map(o=>({...o,id:Gs(o.id),action:Us(o.action)}))}var J=require("@mantine/core"),Na=require("@medplum/core");var S=m(require("react"));var Pe=require("@mantine/core"),ue=require("@medplum/core"),de=m(require("react"));var eo=require("@medplum/core"),Hr=(k=>(k.group="group",k.display="display",k.question="question",k.boolean="boolean",k.decimal="decimal",k.integer="integer",k.date="date",k.dateTime="dateTime",k.time="time",k.string="string",k.text="text",k.url="url",k.choice="choice",k.openChoice="open-choice",k.attachment="attachment",k.reference="reference",k.quantity="quantity",k))(Hr||{});function Rf(e){return e.type==="choice"||e.type==="open-choice"}function Nf(e,o){if(!e.enableWhen)return!0;let t=e.enableBehavior??"any";for(let r of e.enableWhen){let a=Qs(o,r.question);if(r.operator==="exists"&&!r.answerBoolean&&!a?.length){if(t==="any")return!0;continue}let{anyMatch:n,allMatch:f}=Md(r,a,t);if(t==="any"&&n)return!0;if(t==="all"&&!f)return!1}return t!=="any"}function Hf(e,o,t){return e.map(r=>{let a=t.answerOption?.find(f=>(0,eo.formatCoding)(f.valueCoding)===r||f[o]===r),n=(0,eo.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:a},"value");return{[o]:n?.value}})}function Qs(e,o){if(e)for(let t of e){if(t.linkId===o)return t.answer;if(t.item){let r=Qs(t.item,o);if(r)return r}}}function Ad(e,o,t){if(t==="exists")return!!e===o.value;if(e){let r=t==="="||t==="!="?t?.replace("=","~"):t,[{value:a}]=(0,eo.evalFhirPathTyped)(`%actualAnswer ${r} %expectedAnswer`,[e],{actualAnswer:e,expectedAnswer:o});return a}else return!1}function Md(e,o,t){let r=o||[],a=(0,eo.getTypedPropertyValue)({type:"QuestionnaireItemEnableWhen",value:e},"answer[x]"),n=!1,f=!0;for(let s of r){let l=(0,eo.getTypedPropertyValue)({type:"QuestionnaireResponseItemAnswer",value:s},"value[x]"),{operator:i}=e;if(Ad(l,a,i)?n=!0:f=!1,t==="any"&&n)break}return{anyMatch:n,allMatch:f}}function Vr(e){let o=(0,eo.getExtension)(e,"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource");if(o){if(o.valueCode!==void 0)return[o.valueCode];if(o.valueCodeableConcept)return o.valueCodeableConcept?.coding?.map(t=>t.code)}}function qr(e,o){let t=(0,eo.deepClone)(e),r=(0,eo.getExtension)(t,"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource");return!o||o.length===0?(r&&(t.extension=t.extension?.filter(a=>a!==r)),t):(r||(t.extension||(t.extension=[]),r={url:"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource"},t.extension.push(r)),o.length===1?(r.valueCode=o[0],delete r.valueCodeableConcept):(r.valueCodeableConcept={coding:o.map(a=>({code:a}))},delete r.valueCode),t)}function Ra(e){let o=e.item,t=e.index;function r(l,i){let u=i??0,d=e.currentResponseItems?.filter(h=>h.linkId===o.linkId)??[],c;Array.isArray(l)?c=l:c=Ed(d[0]?.answer??[],u,l),e.onChange({id:d[0].id,linkId:o.linkId,text:o.text,answer:c})}let a=o.type;if(!a)return null;let n=o.linkId;if(!n)return null;let f=o.initial&&o.initial.length>0?o.initial[0]:void 0,s=Gf(e.allResponses,o,e.index,e.groupSequence)??(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:f},"value");switch(a){case"boolean":return de.default.createElement(Sr,{key:e.item.linkId,title:e.item.text,htmlFor:e.item.linkId},de.default.createElement(Pe.Checkbox,{id:e.item.linkId,name:e.item.linkId,defaultChecked:s?.value,onChange:l=>r({valueBoolean:l.currentTarget.checked},t)}));case"decimal":return de.default.createElement(Pe.TextInput,{type:"number",step:"any",id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueDecimal:l.currentTarget.valueAsNumber},t)});case"integer":return de.default.createElement(Pe.TextInput,{type:"number",step:1,id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueInteger:l.currentTarget.valueAsNumber},t)});case"date":return de.default.createElement(Pe.TextInput,{type:"date",id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueDate:l.currentTarget.value},t)});case"dateTime":return de.default.createElement(no,{name:n,defaultValue:s?.value,onChange:l=>r({valueDateTime:l},t)});case"time":return de.default.createElement(Pe.TextInput,{type:"time",id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueTime:l.currentTarget.value},t)});case"string":case"url":return de.default.createElement(Pe.TextInput,{id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueString:l.currentTarget.value},t)});case"text":return de.default.createElement(Pe.Textarea,{id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueString:l.currentTarget.value},t)});case"attachment":return de.default.createElement(Pe.Group,{py:4},de.default.createElement(gr,{name:n,defaultValue:s?.value,onChange:l=>r({valueAttachment:l},t)}));case"reference":return de.default.createElement(ht,{name:n,targetTypes:Vr(o),defaultValue:s?.value,onChange:l=>r({valueReference:l},t)});case"quantity":return de.default.createElement(Ze,{name:n,defaultValue:s?.value,onChange:l=>r({valueQuantity:l},t),disableWheel:!0});case"choice":case"open-choice":return Ld(o)?de.default.createElement(Fd,{name:n,item:o,initial:f,allResponses:e.allResponses,index:t,groupSequence:e.groupSequence,onChangeAnswer:l=>r(l,t)}):de.default.createElement(wd,{name:n,item:o,initial:f,allResponses:e.allResponses,onChangeAnswer:l=>r(l,t)});default:return null}}function Fd(e){let{name:o,item:t,initial:r}=e,a=(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),n=[""];if(t.answerOption)for(let s of t.answerOption){let l=(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:s},"value");n.push(Vf(l))}let f=Gf(e.allResponses,t,e.index,e.groupSequence)??(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value");if(t.repeats){let{propertyName:s,data:l}=Rd(e.item),i=Nd(e.allResponses,t,e.groupSequence);return de.default.createElement(Pe.MultiSelect,{data:l,placeholder:"Select items",searchable:!0,defaultValue:i||[Vf(a)],onChange:u=>{let d=Hf(u,s,t);e.onChangeAnswer(d)}})}return de.default.createElement(Pe.NativeSelect,{id:o,name:o,onChange:s=>{let l=s.currentTarget.selectedIndex;if(l===0){e.onChangeAnswer({});return}let i=t.answerOption[l-1],u=(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:i},"value"),d="value"+(0,ue.capitalize)(u.type);e.onChangeAnswer({[d]:u.value})},defaultValue:((0,ue.formatCoding)(f?.value)||f?.value)??Vf(a),data:n})}function wd(e){let{name:o,item:t,initial:r,onChangeAnswer:a,allResponses:n}=e;return t.answerValueSet?de.default.createElement(Wo,{binding:t.answerValueSet,onChange:a}):de.default.createElement(Od,{name:o,item:t,initial:r,allResponses:n,onChangeAnswer:a})}function Od(e){let{name:o,item:t,initial:r,onChangeAnswer:a}=e,n=(0,ue.getElementDefinition)("QuestionnaireItemAnswerOption","value[x]"),f=(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),s=[],l;if(t.answerOption)for(let d=0;d<t.answerOption.length;d++){let c=t.answerOption[d],h=`${o}-option-${d}`,P=(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:c},"value");f&&(0,ue.stringify)(P)===(0,ue.stringify)(f)&&(l=h),s.push([h,P])}let i=Gf(e.allResponses,t,e.index,e.groupSequence),u=Hd(s,i);return de.default.createElement(Pe.Radio.Group,{name:o,value:u??l,onChange:d=>{let c=s.find(h=>h[0]===d);if(c){let h=c[1],P="value"+(0,ue.capitalize)(h.type);a({[P]:h.value})}}},s.map(([d,c])=>de.default.createElement(Pe.Radio,{key:d,id:d,value:d,py:4,label:de.default.createElement(Fe,{property:n,propertyType:c.type,value:c.value})})))}function Ed(e,o,t){if(o<e.length)return e[o]=t,e;for(let r=e.length;r<o;r++)e.push({});return e.push(t),e}function Ld(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function Rd(e){if(e.answerOption?.length===0)return{propertyName:"",data:[]};let o=e.answerOption[0],t=(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:o},"value"),r="value"+(0,ue.capitalize)(t.type),a=(e.answerOption??[]).map(n=>({value:zs(n,r),label:zs(n,r)}));return{propertyName:r,data:a}}function zs(e,o){return(0,ue.formatCoding)(e.valueCoding)||e[o]?.toString()}function Vf(e){if(e)return e.type==="CodeableConcept"?e.value.coding[0].display:e.type==="Coding"?e.value.display:e.value.toString()}function qf(e,o){let t=[];for(let r of e)r.linkId===o&&t.push(r),r.item&&(t=t.concat(qf(r.item,o)));return t}function Ws(e){return(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemAnswer",value:e},"value")}function Gf(e,o,t=0,r=0){let n=qf(e,o.linkId??"")[r]?.answer;return Ws(n?.[t]??{})}function Nd(e,o,t=0){let a=qf(e,o.linkId??"")[t]?.answer;return a?a.map(f=>Ws(f)).map(f=>(0,ue.formatCoding)(f?.value)||f?.value):[]}function Hd(e,o){return e.find(t=>(0,ue.deepEquals)(t[1].value,o?.value))?.[0]}var Vd=(0,J.createStyles)(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},questionBody:{maxWidth:600},topActions:{position:"absolute",right:32,top:1,padding:4,color:e.colors.gray[5],fontSize:e.fontSizes.xs},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},movementActions:{position:"absolute",right:8,top:0,paddingTop:8,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},movementIcons:{color:e.colors.gray[5]},columnAlignment:{display:"flex",flexDirection:"column"},linkIdInput:{width:100,marginBottom:4},typeSelect:{width:100}}));function qd(e){let o=T(),t=re(e.questionnaire),[r,a]=(0,S.useState)(!1),[n,f]=(0,S.useState)(),[s,l]=(0,S.useState)(),[i,u]=(0,S.useState)();function d(){u(void 0)}function c(){l(void 0)}return(0,S.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>a(!0)).catch(console.log)},[o]),(0,S.useEffect)(()=>(f(zd(t??{resourceType:"Questionnaire"})),document.addEventListener("mouseover",d),document.addEventListener("click",c),()=>{document.removeEventListener("mouseover",d),document.removeEventListener("click",c)}),[t]),!r||!n?null:S.default.createElement("div",null,S.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(n)},S.default.createElement(Xs,{item:n,selectedKey:s,setSelectedKey:l,hoverKey:i,setHoverKey:u,onChange:f}),S.default.createElement(J.Button,{type:"submit"},"Save")))}function Xs(e){let{classes:o,cx:t}=Vd(),r=e.item,a=e.item,n=(0,Na.isResource)(e.item),f=n||a.type==="group",s=a.linkId??"[untitled]",l=e.selectedKey===e.item.id,i=e.hoverKey===e.item.id,u=(0,S.useRef)();u.current=e.item;function d(C){Q(C),e.setSelectedKey(e.item.id)}function c(C){Q(C),e.setHoverKey(e.item.id)}function h(C){let R=u.current;e.onChange({...R,item:R.item?.map(me=>me.id===C.id?C:me)})}function P(C){e.onChange({...e.item,item:[...e.item.item??[],C]})}function M(C){e.onChange({...e.item,item:e.item.item?.filter(R=>R!==C)})}function D(C,R){e.onChange({...u.current,[C]:R})}function k(C){e.onChange({...e.item,...C})}function A(C){e.onChange({...e.item,item:e.item.item?.map(R=>R===C?{...R,repeats:!R.repeats}:R)})}function I(C,R){let me=Jd(e.item.item,C,R);e.onChange({...e.item,item:me})}let N=t(o.section,{[o.editing]:l,[o.hovering]:i&&!l});return S.default.createElement("div",{"data-testid":a.linkId,className:N,onClick:d,onMouseOver:c},S.default.createElement("div",{className:o.questionBody},l?S.default.createElement(S.default.Fragment,null,n&&S.default.createElement(J.TextInput,{size:"xl",defaultValue:r.title,onChange:C=>D("title",C.currentTarget.value)}),!n&&S.default.createElement(J.Textarea,{autosize:!0,minRows:2,defaultValue:a.text,onChange:C=>D("text",C.currentTarget.value)}),a.type==="reference"&&S.default.createElement(Qd,{item:a,onChange:k}),Rf(a)&&S.default.createElement(Gd,{item:a,onChange:C=>k(C)})):S.default.createElement(S.default.Fragment,null,r.title&&S.default.createElement(J.Title,null,r.title),a.text&&S.default.createElement("div",null,a.text),!f&&S.default.createElement(Ra,{item:a,index:0,allResponses:[],onChange:()=>{}}))),a.item?.map((C,R)=>S.default.createElement("div",{key:C.id},S.default.createElement(Xs,{item:C,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,isFirst:R===0,isLast:R===(e.item.item??[]).length-1,setHoverKey:e.setHoverKey,onChange:h,onRemove:()=>M(C),onRepeatable:A,onMoveUp:()=>I(R,-1),onMoveDown:()=>I(R,1)}))),!f&&S.default.createElement("div",{className:o.topActions},l?S.default.createElement(S.default.Fragment,null,S.default.createElement(J.TextInput,{size:"xs",className:o.linkIdInput,defaultValue:a.linkId,onChange:C=>D("linkId",C.currentTarget.value)}),!f&&S.default.createElement(J.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:a.type,onChange:C=>D("type",C.currentTarget.value),data:[{value:"display",label:"Display"},{value:"boolean",label:"Boolean"},{value:"decimal",label:"Decimal"},{value:"integer",label:"Integer"},{value:"date",label:"Date"},{value:"dateTime",label:"Date/Time"},{value:"time",label:"Time"},{value:"string",label:"String"},{value:"text",label:"Text"},{value:"url",label:"URL"},{value:"choice",label:"Choice"},{value:"open-choice",label:"Open Choice"},{value:"attachment",label:"Attachment"},{value:"reference",label:"Reference"},{value:"quantity",label:"Quantity"}]})):S.default.createElement("div",null,s)),!n&&S.default.createElement(J.Box,{className:o.movementActions},S.default.createElement(J.Box,{className:o.columnAlignment},!e.isFirst&&S.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),e.onMoveUp&&e.onMoveUp()}},S.default.createElement(_a,{"data-testid":"up-button",size:15,className:o.movementIcons})),!e.isLast&&S.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),e.onMoveDown&&e.onMoveDown()}},S.default.createElement(ja,{"data-testid":"down-button",size:15,className:o.movementIcons})))),S.default.createElement("div",{className:o.bottomActions},f&&S.default.createElement(S.default.Fragment,null,S.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),P({id:bt(),linkId:zf("q"),type:"string",text:"Question"})}},"Add item"),S.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),P({id:bt(),linkId:zf("g"),type:"group",text:"Group"})}},"Add group")),n&&S.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),P(Xd())}},"Add Page"),l&&!n&&S.default.createElement(S.default.Fragment,null,S.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),e.onRepeatable&&e.onRepeatable(a)}},a.repeats?"Remove Repeatable":"Make Repeatable"),S.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),e.onRemove&&e.onRemove()}},"Remove"))))}function Gd(e){let o=(0,Na.getElementDefinition)("QuestionnaireItemAnswerOption","value[x]"),t=e.item.answerOption??[];return S.default.createElement("div",null,e.item.answerValueSet!==void 0?S.default.createElement(J.TextInput,{placeholder:"Enter Value Set",defaultValue:e.item.answerValueSet,onChange:r=>e.onChange({...e.item,answerValueSet:r.target.value})}):S.default.createElement(Ud,{options:t,property:o,item:e.item,onChange:e.onChange}),S.default.createElement(J.Box,{display:"flex"},S.default.createElement(J.Anchor,{href:"#",onClick:r=>{Q(r),e.onChange({...e.item,answerValueSet:void 0,answerOption:[...t,{id:bt()}]})}},"Add choice"),S.default.createElement(J.Space,{w:"lg"}),S.default.createElement(J.Anchor,{href:"#",onClick:r=>{Q(r),e.onChange({...e.item,answerOption:[],answerValueSet:""})}},"Add value set")))}function Ud(e){return S.default.createElement("div",null,e.options.map(o=>{let[t,r]=We({type:"QuestionnaireItemAnswerOption",value:o},"value");return S.default.createElement("div",{key:o.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},S.default.createElement("div",null,S.default.createElement(ho,{key:o.id,name:"value[x]",property:e.property,defaultPropertyType:r,defaultValue:t,onChange:(a,n)=>{let f=[...e.options],s=f.findIndex(l=>l.id===o.id);f[s]={id:o.id,[n]:a},e.onChange({...e.item,answerOption:f})}})),S.default.createElement("div",null,S.default.createElement(J.Anchor,{href:"#",onClick:a=>{Q(a),e.onChange({...e.item,answerOption:e.options.filter(n=>n.id!==o.id)})}},"Remove")))}))}function Qd(e){let o=Vr(e.item)??[];return S.default.createElement(S.default.Fragment,null,o.map((t,r)=>S.default.createElement(J.Group,{key:`${t}-${r}`},S.default.createElement(wt,{name:"resourceType",placeholder:"Resource Type",defaultValue:t,onChange:a=>{e.onChange(qr(e.item,o.map(n=>n===t?a:n)))}}),S.default.createElement(J.Anchor,{href:"#",onClick:a=>{Q(a),e.onChange(qr(e.item,o.filter(n=>n!==t)))}},"Remove"))),S.default.createElement(J.Anchor,{href:"#",onClick:t=>{Q(t),e.onChange(qr(e.item,[...o,""]))}},"Add Resource Type"))}var Uf=1,Qf=1;function zf(e){return e+Uf++}function bt(){return"id-"+Qf++}function zd(e){return{...e,id:e.id||bt(),item:Js(e.item)}}function Js(e){if(e)return e.forEach(o=>{o.id?.match(/^id-\d+$/)&&(Qf=Math.max(Qf,parseInt(o.id.substring(3),10)+1)),o.linkId?.match(/^q\d+$/)&&(Uf=Math.max(Uf,parseInt(o.linkId.substring(1),10)+1))}),e.map(o=>({...o,id:o.id||bt(),item:Js(o.item),answerOption:Wd(o.answerOption)}))}function Wd(e){if(e)return e.map(o=>({...o,id:o.id||bt()}))}function Xd(){return{id:bt(),linkId:zf("s"),type:"group",text:"New Page",extension:[{url:"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl",valueCodeableConcept:{coding:[{system:"http://hl7.org/fhir/questionnaire-item-control",code:"page"}]}}]}}function Jd(e,o,t){let r=e??[],a=o+t;if(a<0||a>=r.length)return r;let n=[...r];return[n[o],n[a]]=[n[a],n[o]],n}var be=require("@mantine/core"),Pt=require("@medplum/core"),w=m(require("react"));function Wf(e){let o=T(),t=o.getProfile(),[r,a]=(0,w.useState)(!1),n=re(e.questionnaire),[f,s]=(0,w.useState)(),[l,i]=(0,w.useState)(0),u=Yd(n?.item??[]),d=()=>i(P=>P>=u?P:P+1),c=()=>i(P=>P<=0?P:P-1);(0,w.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>o.requestSchema("QuestionnaireResponse")).then(()=>a(!0)).catch(console.log)},[o]),(0,w.useEffect)(()=>{s(n?Kd(n):void 0)},[n]);function h(P){let M=f?.item??[],k={resourceType:"QuestionnaireResponse",item:_s(M,P)};s(k)}return!r||!n?null:w.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&f&&e.onSubmit({...f,questionnaire:(0,Pt.getReferenceString)(n),subject:e.subject,source:(0,Pt.createReference)(t),authored:new Date().toISOString(),status:"completed"})}},n.title&&w.default.createElement(be.Title,null,n.title),n.item&&w.default.createElement(Ks,{items:n.item??[],allResponses:f?.item??[],onChange:h,renderPages:u>1,activePage:l}),w.default.createElement(be.Group,{position:"right",mt:"xl"},w.default.createElement($d,{activePage:l,numberOfPages:u,nextStep:d,prevStep:c,submitButtonText:e.submitButtonText})))}function Ks(e){let[o,t]=(0,w.useState)(Xf(e.items));function r(n,f){let s=o.some(i=>i.id===n),l;s?l=o.map(i=>i.id===n?f:i):l=[...o,f],t(l),e.onChange(l)}let a=e.items.map((n,f)=>e.renderPages?w.default.createElement(be.Stepper.Step,{label:n.text,key:n.linkId},w.default.createElement($s,{key:`${n.linkId}-${f}`,item:n,index:f,allResponses:e.allResponses,currentResponseItems:o,groupSequence:e.groupSequence,setResponseItem:r})):w.default.createElement($s,{key:`${n.linkId}-${f}`,item:n,index:f,groupSequence:e.groupSequence,allResponses:e.allResponses,currentResponseItems:o,setResponseItem:r}));return e.renderPages?w.default.createElement(be.Stepper,{active:e.activePage??0,allowNextStepsSelect:!1,p:6},a):w.default.createElement(be.Stack,null,a)}function $s(e){return Nf(e.item,e.allResponses)?e.item.type==="display"?w.default.createElement("p",{key:e.item.linkId},e.item.text):e.item.type==="group"?w.default.createElement(Ha,{key:e.item.linkId,item:e.item,allResponses:e.allResponses,currentResponseItems:e.currentResponseItems,groupSequence:e.groupSequence,onChange:o=>e.setResponseItem(o.id,o)}):e.item.type==="boolean"?w.default.createElement(Ha,{item:e.item,allResponses:e.allResponses,currentResponseItems:e.currentResponseItems,groupSequence:e.groupSequence,onChange:o=>e.setResponseItem(o.id,o)}):w.default.createElement(Xe,{key:e.item.linkId,htmlFor:e.item.linkId,title:e.item.text},w.default.createElement(Ha,{item:e.item,allResponses:e.allResponses,currentResponseItems:e.currentResponseItems,groupSequence:e.groupSequence,onChange:o=>e.setResponseItem(o.id,o)})):null}function Ha(e){let o=e.item;function t(r,a){let n=a??0,f=e.currentResponseItems.filter(s=>s.linkId===o.linkId);e.onChange({id:tc(f,n),linkId:o.linkId,text:o.text,item:r})}return o.type==="group"?w.default.createElement(ec,{key:e.item.linkId,text:o.text??"",item:o??[],allResponses:e.allResponses,onChange:t}):w.default.createElement(oc,{item:e.item,key:e.item.linkId},({index:r})=>w.default.createElement(Ra,{...e,index:r}))}function $d(e){return e.activePage===0&&e.numberOfPages<=0?w.default.createElement(be.Button,{type:"submit"},e.submitButtonText??"OK"):e.activePage>=e.numberOfPages?w.default.createElement(w.default.Fragment,null,w.default.createElement(be.Button,{onClick:e.prevStep},"Back"),w.default.createElement(be.Button,{onClick:e.nextStep,type:"submit"},e.submitButtonText??"OK")):e.activePage===0?w.default.createElement(w.default.Fragment,null,w.default.createElement(be.Button,{onClick:e.nextStep},"Next")):w.default.createElement(w.default.Fragment,null,w.default.createElement(be.Button,{onClick:e.prevStep},"Back"),w.default.createElement(be.Button,{onClick:e.nextStep},"Next"))}function Kd(e){return{resourceType:"QuestionnaireResponse",questionnaire:(0,Pt.getReferenceString)(e),item:Xf(e.item)}}function Xf(e){return e?.map(jd)??[]}function jd(e){return{id:js(),linkId:e.linkId,text:e.text,item:Xf(e.item),answer:e.initial?.map(Zd)??[]}}var _d=1;function js(){return"id-"+_d++}function Zd(e){return{...e}}function Yd(e){return e.filter(t=>(0,Pt.getExtension)(t,"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl")?.valueCodeableConcept?.coding?.[0]?.code==="page").length>0?e.length:0}function ec(e){let[o,t]=(0,w.useState)(rc(e.item,e.allResponses)),r=e.item;return w.default.createElement(w.default.Fragment,null,[...Array(o)].map((a,n)=>w.default.createElement("div",{key:n},e.text&&w.default.createElement(be.Title,{order:3},e.text),w.default.createElement(Ks,{items:r.item??[],allResponses:e.allResponses,groupSequence:n,onChange:f=>e.onChange(f,n)}))),e.item.repeats&&w.default.createElement(be.Anchor,{onClick:()=>t(a=>a+1)},"Add Group"))}function oc(e){let[o,t]=(0,w.useState)(1),r=e.item?.repeats&&e.item.type!=="choice"&&e.item.type!=="open-choice";return w.default.createElement(w.default.Fragment,null,[...Array(o)].map((a,n)=>w.default.createElement(w.default.Fragment,{key:`${e.item.linkId}-${n}`},e.children({index:n}))),r&&w.default.createElement(be.Anchor,{onClick:()=>t(a=>a+1)},"Add Item"))}function tc(e,o){return e.length===0||e.length<o+1?js():e[o].id}function rc(e,o){let t=o.filter(r=>r.linkId===e.linkId).length;return t>0?t:1}function ac(e,o){let t=_s(e.item??[],o.item??[]);return{...o,item:t,answer:o.answer&&o.answer.length>0?o.answer:e.answer}}function nc(e,o){let t=[],r=Math.max(e.length,o.length);for(let a=0;a<r;a++)e[a]&&o[a]?t.push(ac(e[a],o[a])):o[a]&&t.push(o[a]);return t}function _s(e,o){let t=[];for(let r of new Set(o.map(a=>a.linkId))){let a=e.filter(f=>f.linkId===r),n=o.filter(f=>f.linkId===r);t=t.concat(nc(a,n))}return t}var ee=require("@mantine/core"),Gr=require("@medplum/core");var G=m(require("react"));var fc=(0,ee.createStyles)(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[3]}`,borderRadius:e.radius.sm,transition:"all 0.1s"}})),lc=["gender","age","gestationalAge","context","appliesTo","category"],sc={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function ic(e){e=Object.assign(sc,e);let o=e.definition,[t,r]=(0,G.useState)([]),[a,n]=(0,G.useState)(1),[f,s]=(0,G.useState)(1);return(0,G.useEffect)(()=>{let P=dc(o,s);r(cc(P.qualifiedInterval||[],n))},[o]),G.default.createElement(le,{testid:"reference-range-editor",onSubmit:l},G.default.createElement(ee.Stack,null,t.map(P=>G.default.createElement(Zs,{unit:pc(o.quantitativeDetails?.unit),onChange:d,onAdd:c,onRemove:h,onRemoveGroup:u,key:`group-${P.id}`,intervalGroup:P}))),G.default.createElement(ee.ActionIcon,{title:"Add Group",size:"sm",onClick:P=>{Q(P),i({id:`group-id-${a}`,filters:{},intervals:[]}),n(M=>M+1)}},G.default.createElement(kt,null)),G.default.createElement(ee.Group,{position:"right"},G.default.createElement(ee.Button,{type:"submit"},"Save")));function l(){let P=t.flatMap(M=>M.intervals).filter(M=>!xc(M));e.onSubmit({...o,qualifiedInterval:P})}function i(P){r(M=>[...M,P])}function u(P){r(M=>M.filter(D=>D.id!==P.id))}function d(P,M){r(D=>{D=[...D];let k=D.find(I=>I.id===P),A=k?.intervals.findIndex(I=>I.id===M.id);return A!==void 0&&k?.intervals[A]&&(k.intervals[A]=M),D})}function c(P,M){M.id===void 0&&(M.id=`id-${f}`,s(D=>D+1)),r(D=>{D=[...D];let k=D.findIndex(A=>A.id===P);if(k!==-1){let A={...D[k]};M={...M,...A.filters},A.intervals=[...A.intervals,M],D[k]=A}return D})}function h(P,M){r(D=>{D=[...D];let k=D.find(A=>A.id===P);return k&&(k.intervals=k.intervals.filter(A=>A.id!==M.id)),D})}}function Zs(e){let{intervalGroup:o,unit:t}=e,{classes:r}=fc();return G.default.createElement(Ro,{"data-testid":o.id,className:r.section},G.default.createElement(ee.Stack,{spacing:"lg"},G.default.createElement(ee.Group,{position:"right"},G.default.createElement(ee.ActionIcon,{title:"Remove Group","data-testid":`remove-group-button-${o.id}`,key:`remove-group-button-${o.id}`,size:"sm",onClick:a=>{Q(a),e.onRemoveGroup(o)}},G.default.createElement(zo,null))),G.default.createElement(uc,{intervalGroup:o,onChange:e.onChange}),G.default.createElement(ee.Divider,null),o.intervals.map(a=>G.default.createElement(ee.Stack,{key:`interval-${a.id}`,spacing:"xs"},G.default.createElement(ee.Group,null,G.default.createElement(ee.TextInput,{key:`condition-${a.id}`,"data-testid":`condition-${a.id}`,defaultValue:a.condition,label:"Condition: ",size:"sm",onChange:n=>{Q(n),e.onChange(o.id,{...a,condition:n.currentTarget.value.trim()})}}),G.default.createElement(ee.ActionIcon,{title:"Remove Interval",size:"sm",key:`remove-interval-${a.id}`,"data-testid":`remove-interval-${a.id}`,onClick:n=>{Q(n),e.onRemove(o.id,a)}},G.default.createElement(zo,null))),G.default.createElement(Qt,{onChange:n=>{e.onChange(o.id,{...a,range:n})},key:`range-${a.id}`,name:`range-${a.id}`,defaultValue:a.range}))),G.default.createElement(ee.ActionIcon,{title:"Add Interval",size:"sm",onClick:a=>{Q(a),e.onAdd(o.id,{range:{low:{unit:t},high:{unit:t}}})}},G.default.createElement(kt,null))))}function uc(e){let{intervalGroup:o,onChange:t}=e;o.filters.age||(o.filters.age={});for(let r of["low","high"])o.filters.age[r]?.unit||(o.filters.age[r]={...o.filters.age[r],unit:"years",system:"http://unitsofmeasure.org"});return G.default.createElement(ee.Stack,{style:{maxWidth:"50%"}},G.default.createElement(ee.Group,null,G.default.createElement(ee.NativeSelect,{data:["","male","female"],label:"Gender:",defaultValue:o.filters.gender||"",onChange:r=>{for(let a of o.intervals){let n=r.currentTarget.value;n===""&&(n=void 0),t(o.id,{...a,gender:n})}}})),G.default.createElement(ee.Group,{spacing:"xs"},G.default.createElement(ee.Text,{component:"label",htmlFor:`div-age-${o.id}`},"Age:"),G.default.createElement("div",{id:`div-age-${o.id}`},G.default.createElement(Qt,{key:`age-${o.id}`,name:`age-${o.id}`,defaultValue:o.filters.age,onChange:r=>{for(let a of o.intervals)t(o.id,{...a,age:r})}}))),G.default.createElement(ee.NativeSelect,{data:["","pre-puberty","follicular","midcycle","luteal","postmenopausal"],label:"Endocrine:",defaultValue:o.filters.context?.text||"",onChange:r=>{for(let a of o.intervals){let n=r.currentTarget.value;n===""?(n=void 0,t(o.id,{...a,context:void 0})):t(o.id,{...a,context:{text:n,coding:[{code:n,system:"http://terminology.hl7.org/CodeSystem/referencerange-meaning"}]}})}}}),G.default.createElement(ee.NativeSelect,{data:["","reference","critical","absolute"],label:"Category: ",defaultValue:o.filters.category,onChange:r=>{for(let a of o.intervals){let n=r.currentTarget.value;n===""?t(o.id,{...a,category:void 0}):t(o.id,{...a,category:n})}}}))}function dc(e,o){let t=e.qualifiedInterval||[],r=Math.max(...t.map(a=>{let n=parseInt(a.id?.substring(3)||"",10);return isNaN(n)?Number.NEGATIVE_INFINITY:n}))+1;return Number.isFinite(r)||(r=1),e={...e,qualifiedInterval:t.map(a=>({...a,id:a.id||`id-${r++}`}))},o(r),e}function cc(e,o){let t=1,r={};for(let a of e){let n=mc(a);n in r||(r[n]={id:`group-id-${t++}`,filters:Object.fromEntries(lc.map(f=>[f,a[f]])),intervals:[]}),r[n].intervals.push(a)}return o(t),Object.values(r)}function mc(e){return[`gender=${e.gender}`,`age=${(0,Gr.formatRange)(e.age)}`,`gestationalAge=${(0,Gr.formatRange)(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map(t=>t.text).join("+")}`,`category=${e.category}`].join(":")}function pc(e){return e&&((0,Gr.getCodeBySystem)(e,"http://unitsofmeasure.org")||e.text)}function xc(e){return e.range?.low?.value===void 0&&e.range?.high?.value===void 0}var vo=require("@mantine/core"),Va=require("@medplum/core");var Ie=m(require("react"));function Ic(e){let o=T(),t=re(e.value),[r,a]=(0,Ie.useState)(!1),[n,f]=(0,Ie.useState)();if((0,Ie.useEffect)(()=>{t&&!r&&(o.executeBatch(s(t)).then(f).catch(console.log),a(!0))},[o,t,r]),!t||!n)return null;return Ie.default.createElement(vo.Grid,null,t.action?.map((i,u)=>{let d=i.resource&&l(i.resource),c=d?.input?.[0]?.valueReference,h=d?.output?.[0]?.valueReference;return Ie.default.createElement(Ie.default.Fragment,{key:`action-${u}`},Ie.default.createElement(vo.Grid.Col,{span:1,p:"md"},d?.status==="completed"?Ie.default.createElement(an,null):Ie.default.createElement(bn,{color:"gray"})),Ie.default.createElement(vo.Grid.Col,{span:9,p:"xs"},Ie.default.createElement(vo.Text,{weight:500},i.title),i.description&&Ie.default.createElement("div",null,i.description),Ie.default.createElement("div",null,"Last edited by\xA0",Ie.default.createElement(mo,{value:d?.meta?.author}),"\xA0on\xA0",(0,Va.formatDateTime)(d?.meta?.lastUpdated)),Ie.default.createElement("div",null,"Status: ",Ie.default.createElement(Fr,{status:d?.status||"unknown"}))),Ie.default.createElement(vo.Grid.Col,{span:2,p:"md"},c&&!h&&Ie.default.createElement(vo.Button,{onClick:()=>e.onStart(d,c)},"Start"),c&&h&&Ie.default.createElement(vo.Button,{onClick:()=>e.onEdit(d,c,h)},"Edit")))}));function s(i){let u=[];if(i.action)for(let d of i.action)d.resource?.reference&&u.push({request:{method:"GET",url:d.resource.reference}});return{resourceType:"Bundle",type:"batch",entry:u}}function l(i){for(let u of n?.entry)if(u.resource&&i.reference===(0,Va.getReferenceString)(u.resource))return u.resource}}var oi=require("@mantine/core"),De=m(require("react"));var Ys=require("@medplum/core");function qa(e,o){let t=gc(e,o);return hc(t,e,o)}function gc(e,o){let t=e.length,r=o.length,a=t+r+1,n=1+2*a,f=n/2|0,s=new Array(n);s[f+1]={i:0,j:-1,prev:void 0,snake:!0};for(let l=0;l<a;l++){for(let i=-l;i<=l;i+=2){let u=f+i,d=u+1,c=u-1,h=s[d],P=s[c],M,D=0;i===-l||i!==l&&P.i<h.i?(D=h.i,M=h):(D=P.i+1,M=P),s[c]=void 0;let k=D-i,A={i:D,j:k,prev:Cc(M),snake:!1};for(;D<t&&k<r&&e[D]===o[k];)D++,k++;if(D>A.i&&(A={i:D,j:k,prev:A,snake:!0}),s[u]=A,D>=t&&k>=r)return s[u]}s[f+l-1]=void 0}}function hc(e,o,t){let r=[],a=e;for(a.snake&&(a=a.prev);a?.prev&&a.prev.j>=0;){let n=a.i,f=a.j;a=a.prev;let s=a.i,l=a.j,i={position:s,lines:o.slice(s,n)},u={position:l,lines:t.slice(l,f)},d;i.lines.length===0&&u.lines.length>0?d="insert":i.lines.length>0&&u.lines.length===0?d="delete":d="change",r.push({original:i,revised:u,type:d}),a.snake&&(a=a.prev)}return r}function Cc(e){return e&&!e.snake&&e.prev?e.prev:e}function ei(e){let o=e.entry.filter(r=>!!r.resource).map(r=>({meta:r.resource?.meta,lines:(0,Ys.stringify)(r.resource,!0).match(/[^\r\n]+/g)})).sort((r,a)=>r.meta.lastUpdated.localeCompare(a.meta.lastUpdated)),t=o[0].lines.map(r=>({id:o[0].meta.versionId,meta:o[0].meta,value:r,span:1}));return yc(t,o),vc(t),t}function yc(e,o){for(let t=1;t<o.length;t++){let r=qa(o[t-1].lines,o[t].lines);for(let a of r){let n=a.original.position,f=a.original.lines,s=a.revised.lines;if((a.type==="delete"||a.type==="change")&&e.splice(n,f.length),a.type==="insert"||a.type==="change")for(let l=0;l<a.revised.lines.length;l++)e.splice(n+l,0,{id:o[t].meta.versionId,meta:o[t].meta,value:s[l],span:1})}}}function vc(e){let o=0;for(;o<e.length;){let t=o;for(;t<e.length&&e[t].id===e[o].id;)e[t].span=-1,t++;e[o].span=t-o,o=t}}var Sc=(0,oi.createStyles)(e=>({container:{overflowX:"auto"},root:{border:`0.1px solid ${e.colors.gray[3]}`,borderCollapse:"collapse",borderRadius:e.radius.sm,borderSpacing:0,fontSize:e.fontSizes.xs,width:"100%","& td":{padding:"2px 4px 0 4px",verticalAlign:"top",whiteSpace:"nowrap"}},startRow:{borderTop:`0.1px solid ${e.colors.gray[3]}`},normalRow:{borderTop:0},author:{lineHeight:"10px"},dateTime:{borderRight:`0.1px solid ${e.colors.gray[3]}`,lineHeight:"20px"},lineNumber:{backgroundColor:e.colors.gray[1],border:0,color:e.colors.gray[5],fontFamily:e.fontFamilyMonospace,padding:`${e.spacing.xs} ${e.spacing.sm}`,textAlign:"right"},line:{fontFamily:e.fontFamilyMonospace,fontSize:e.fontSizes.sm,padding:`${e.spacing.xs} ${e.spacing.sm}`},pre:{margin:0}}));function bc(e){let{classes:o}=Sc(),t=T(),[r,a]=(0,De.useState)(e.history);if((0,De.useEffect)(()=>{!e.history&&e.resourceType&&e.id&&t.readHistory(e.resourceType,e.id).then(a).catch(console.log)},[t,e.history,e.resourceType,e.id]),!r)return De.default.createElement("div",null,"Loading...");let n=r.entry?.[0]?.resource;if(!n)return null;let f=ei(r);return De.default.createElement("div",{className:o.container},De.default.createElement("table",{className:o.root},De.default.createElement("tbody",null,f.map((s,l)=>De.default.createElement("tr",{key:"row-"+l,className:s.span>0?o.startRow:o.normalRow},s.span>0&&De.default.createElement(De.default.Fragment,null,De.default.createElement("td",{className:o.author,rowSpan:s.span},De.default.createElement(No,{value:s.meta.author,link:!0})),De.default.createElement("td",{className:o.dateTime,rowSpan:s.span},De.default.createElement(Te,{to:Pc(n,s.meta.versionId)},ti(s.meta.lastUpdated)))),De.default.createElement("td",{className:o.lineNumber},l+1),De.default.createElement("td",{className:o.line},De.default.createElement("pre",{className:o.pre},s.value)))))))}function Pc(e,o){return`/${e.resourceType}/${e.id}/_history/${o}`}function ti(e){let o=Math.floor((Date.now()-Date.parse(e))/1e3),t=Math.floor(o/31536e3);if(t>0)return rr(t,"year");let r=Math.floor(o/2592e3);if(r>0)return rr(r,"month");let a=Math.floor(o/86400);if(a>0)return rr(a,"day");let n=Math.floor(o/3600);if(n>0)return rr(n,"hour");let f=Math.floor(o/60);return f>0?rr(f,"minute"):rr(o,"second")}function rr(e,o){return`${e} ${e===1?o:o+"s"} ago`}var ri=require("@mantine/core"),Jf=require("@medplum/core"),Uo=m(require("react"));var Dc=(0,ri.createStyles)(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function Tc(e){let o=e.original,t=e.revised;e.ignoreMeta&&(o={...o,meta:void 0},t={...t,meta:void 0});let r=(0,Jf.stringify)(o,!0).match(/[^\r\n]+/g),a=(0,Jf.stringify)(t,!0).match(/[^\r\n]+/g),n=qa(r,a);return Uo.default.createElement("pre",{style:{color:"gray"}},n.map((f,s)=>Uo.default.createElement(kc,{key:"delta"+s,delta:f})))}function kc(e){let{classes:o}=Dc();return Uo.default.createElement(Uo.default.Fragment,null,"...",Uo.default.createElement("br",null),e.delta.original.lines.length>0&&Uo.default.createElement("div",{className:o.removed},e.delta.original.lines.join(`
66
- `)),e.delta.revised.lines.length>0&&Uo.default.createElement("div",{className:o.added},e.delta.revised.lines.join(`
67
- `)),"...",Uo.default.createElement("br",null))}var ai=require("@mantine/core"),Ga=require("@medplum/core"),ge=m(require("react"));function Bc(e){let o=T(),[t,r]=(0,ge.useState)(e.history);return(0,ge.useEffect)(()=>{!e.history&&e.resourceType&&e.id&&o.readHistory(e.resourceType,e.id).then(r).catch(console.log)},[o,e.history,e.resourceType,e.id]),t?ge.default.createElement(ai.Table,{withBorder:!0,withColumnBorders:!0},ge.default.createElement("thead",null,ge.default.createElement("tr",null,ge.default.createElement("th",null,"Author"),ge.default.createElement("th",null,"Date"),ge.default.createElement("th",null,"Version"))),ge.default.createElement("tbody",null,t.entry?.map((a,n)=>ge.default.createElement(Ac,{key:"entry-"+n,entry:a})))):ge.default.createElement("div",null,"Loading...")}function Ac(e){let{response:o,resource:t}=e.entry;return t?ge.default.createElement("tr",null,ge.default.createElement("td",null,ge.default.createElement(No,{value:t.meta?.author,link:!0})),ge.default.createElement("td",null,(0,Ga.formatDateTime)(t.meta?.lastUpdated)),ge.default.createElement("td",null,ge.default.createElement(Te,{to:Mc(t)},t.meta?.versionId))):ge.default.createElement("tr",null,ge.default.createElement("td",{colSpan:3},(0,Ga.normalizeErrorString)(o?.outcome)))}function Mc(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}var nt=require("@mantine/core"),fi=require("@medplum/core"),j=m(require("react"));var Fc=(0,nt.createStyles)(e=>({container:{display:"flex",minHeight:400},info:{minWidth:300,padding:20,borderRight:`1px solid ${e.colors.gray[3]}`},selection:{minWidth:300,padding:20}}));function wc(e){let{classes:o}=Fc(),t=T(),r=re(e.schedule),a=re(e.questionnaire),[n,f]=(0,j.useState)(),s=(0,j.useRef)();s.current=n;let[l,i]=(0,j.useState)(Ca()),[u,d]=(0,j.useState)(),[c,h]=(0,j.useState)(),[P,M]=(0,j.useState)();if((0,j.useEffect)(()=>{r?(f([]),t.searchResources("Slot",new URLSearchParams([["_count",(30*24).toString()],["schedule",(0,fi.getReferenceString)(r)],["start","gt"+Oc(l)],["start","lt"+Ec(l)]])).then(f).catch(console.log)):f(void 0)},[t,r,l]),!r||!n||!a)return null;let D=r.actor?.[0];return j.default.createElement("div",{className:o.container,"data-testid":"scheduler"},j.default.createElement("div",{className:o.info},D&&j.default.createElement(Re,{value:D,size:"xl"}),D&&j.default.createElement(nt.Text,{size:"xl",weight:500},j.default.createElement(mo,{value:D})),j.default.createElement("p",null,"1 hour"),u&&j.default.createElement("p",null,u.toLocaleDateString()),c&&j.default.createElement("p",null,ni(new Date(c.start)))),j.default.createElement("div",{className:o.selection},!u&&j.default.createElement("div",null,j.default.createElement("h3",null,"Select date"),j.default.createElement(uf,{slots:n,onChangeMonth:i,onClick:d})),u&&!c&&j.default.createElement("div",null,j.default.createElement("h3",null,"Select time"),j.default.createElement(nt.Stack,null,n.map(k=>{let A=new Date(k.start);return A.getTime()>u.getTime()&&A.getTime()<u.getTime()+24*3600*1e3&&j.default.createElement("div",{key:k.id},j.default.createElement(nt.Button,{variant:"outline",style:{width:150},onClick:()=>h(k)},ni(A)))}))),u&&c&&!P&&j.default.createElement(Wf,{questionnaire:a,submitButtonText:"Next",onSubmit:M}),u&&c&&P&&j.default.createElement("div",null,j.default.createElement("h3",null,"You're all set!"),j.default.createElement("p",null,"Check your email for a calendar invite."))))}function Oc(e){return li(e.getTime())}function Ec(e){return li(e.getTime()+31*24*60*60*1e3)}function li(e){return new Date(Math.max(Date.now(),e)).toISOString()}function ni(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}var Ur=require("@medplum/core"),si=m(require("react"));function Lc(e){return si.default.createElement(Vo,{value:e.serviceRequest,loadTimelineResources:async(o,t,r)=>{let a=`${t}/${r}`,n=100;return Promise.allSettled([o.readHistory("ServiceRequest",r),o.search("Communication",{"based-on":a,_count:n}),o.search("DiagnosticReport",{"based-on":a,_count:n}),o.search("Media",{"based-on":a,_count:n}),o.search("DocumentReference",{related:a,_count:n}),o.search("Task",{_filter:`based-on eq ${a} or focus eq ${a} or subject eq ${a}`,_count:n})])},createCommunication:(o,t,r)=>({resourceType:"Communication",status:"completed",basedOn:[(0,Ur.createReference)(o)],subject:o.subject,sender:(0,Ur.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",basedOn:[(0,Ur.createReference)(o)],subject:o.subject,operator:(0,Ur.createReference)(t),issued:new Date().toISOString(),content:r})})}var di=require("@medplum/core"),bo=m(require("react"));var Ee=require("@mantine/core"),ii=require("@medplum/core"),Je=m(require("react"));function Ua(e){let o=T(),[t,r]=(0,Je.useState)();return Je.default.createElement(le,{style:{maxWidth:400},onSubmit:async a=>{try{e.handleAuthResponse(await o.startNewProject({login:e.login,projectName:a.projectName}))}catch(n){r((0,ii.normalizeOperationOutcome)(n))}}},Je.default.createElement(Ee.Center,{sx:{flexDirection:"column"}},Je.default.createElement(Go,{size:32}),Je.default.createElement(Ee.Title,null,"Create project")),Je.default.createElement(Ee.Stack,{spacing:"xl"},Je.default.createElement(Ee.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:we(t,"firstName")}),Je.default.createElement(Ee.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",Je.default.createElement(Ee.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",Je.default.createElement(Ee.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),".")),Je.default.createElement(Ee.Group,{position:"right",mt:"xl",noWrap:!0},Je.default.createElement(Ee.Button,{type:"submit"},"Create project")))}var ne=require("@mantine/core"),jf=require("@medplum/core"),ae=m(require("react"));var So=m(require("react"));function Qr(e,o){let t=document.getElementsByTagName("head")[0],r=document.createElement("script");r.async=!0,r.src=e,r.onload=o??null,t.appendChild(r)}function Qa(e){let o=T(),{googleClientId:t,handleGoogleCredential:r}=e,a=(0,So.useRef)(null),[n,f]=(0,So.useState)(typeof google<"u"),[s,l]=(0,So.useState)(!1),[i,u]=(0,So.useState)(!1);return(0,So.useEffect)(()=>{if(typeof google>"u"){Qr("https://accounts.google.com/gsi/client",()=>f(!0));return}s||(google.accounts.id.initialize({client_id:t,callback:r}),l(!0)),a.current&&!i&&(google.accounts.id.renderButton(a.current,{}),u(!0))},[o,t,s,n,a,i,r]),t?So.default.createElement("div",{ref:a}):null}function za(e){if(e)return e;if(typeof window<"u"){let o=window.location.protocol+"//"+window.location.host;if(("undefined"?.split(",")??[]).includes(o))return"921088377005-3j1sa10vr6hj86jgmdfh2l53v3mp7lfi.apps.googleusercontent.com"}}function $f(e){typeof grecaptcha>"u"&&Qr("https://www.google.com/recaptcha/api.js?render="+e)}function Kf(e){return new Promise((o,t)=>{grecaptcha.ready(async()=>{try{o(await grecaptcha.execute(e,{action:"submit"}))}catch(r){t(r)}})})}function ui(e){let o=za(e.googleClientId),t=e.recaptchaSiteKey,r=T(),[a,n]=(0,ae.useState)(),f=br(a,void 0);return(0,ae.useEffect)(()=>{t&&$f(t)},[t]),ae.default.createElement(le,{style:{maxWidth:400},onSubmit:async s=>{try{let l="";t&&(l=await Kf(t)),e.handleAuthResponse(await r.startNewUser({projectId:e.projectId,clientId:e.clientId,firstName:s.firstName,lastName:s.lastName,email:s.email,password:s.password,remember:s.remember==="true",recaptchaSiteKey:t,recaptchaToken:l}))}catch(l){n((0,jf.normalizeOperationOutcome)(l))}}},ae.default.createElement(ne.Center,{sx:{flexDirection:"column"}},e.children),ae.default.createElement(St,{issues:f}),o&&ae.default.createElement(ae.default.Fragment,null,ae.default.createElement(ne.Group,{position:"center",p:"xl",style:{height:70}},ae.default.createElement(Qa,{googleClientId:o,handleGoogleCredential:async s=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:s.clientId,googleCredential:s.credential,createUser:!0}))}catch(l){n((0,jf.normalizeOperationOutcome)(l))}}})),ae.default.createElement(ne.Divider,{label:"or",labelPosition:"center",my:"lg"})),ae.default.createElement(ne.Stack,{spacing:"xl"},ae.default.createElement(ne.TextInput,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:we(a,"firstName")}),ae.default.createElement(ne.TextInput,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:we(a,"lastName")}),ae.default.createElement(ne.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:we(a,"email")}),ae.default.createElement(ne.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,error:we(a,"password")}),ae.default.createElement(ne.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",ae.default.createElement(ne.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",ae.default.createElement(ne.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),"."),ae.default.createElement(ne.Text,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",ae.default.createElement(ne.Anchor,{href:"https://policies.google.com/privacy"},"Privacy\xA0Policy")," and ",ae.default.createElement(ne.Anchor,{href:"https://policies.google.com/terms"},"Terms\xA0of\xA0Service")," apply.")),ae.default.createElement(ne.Group,{position:"apart",mt:"xl",noWrap:!0},ae.default.createElement(ne.Checkbox,{name:"remember",label:"Remember me",size:"xs"}),ae.default.createElement(ne.Button,{type:"submit"},"Create account")))}function Rc(e){let{type:o,projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,onSuccess:f}=e,s=T(),[l,i]=(0,bo.useState)(),[u,d]=(0,bo.useState)();(0,bo.useEffect)(()=>{o==="patient"&&l&&s.startNewPatient({login:l,projectId:t}).then(h=>s.processCode(h.code)).then(()=>f()).catch(h=>d((0,di.normalizeOperationOutcome)(h)))},[s,o,t,l,f]);function c(h){h.code?s.processCode(h.code).then(()=>f()).catch(console.log):h.login&&i(h.login)}return bo.default.createElement(wr,{width:450},u&&bo.default.createElement("pre",null,JSON.stringify(u,null,2)),!l&&bo.default.createElement(ui,{projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,handleAuthResponse:c},e.children),l&&o==="project"&&bo.default.createElement(Ua,{login:l,handleAuthResponse:c}))}var _f=require("@mantine/notifications"),Zf=require("@medplum/core"),Be=m(require("react"));var ce=require("@mantine/core"),ci=require("@medplum/core"),_=m(require("react"));function mi(e){let[o,t]=(0,_.useState)();return o?_.default.createElement(Hc,{email:o,...e}):_.default.createElement(Nc,{setEmail:t,...e})}function Nc(e){let{setEmail:o,onRegister:t,handleAuthResponse:r,children:a,disableEmailAuth:n,...f}=e,s=T(),l=!e.disableGoogleAuth&&za(e.googleClientId),i=(0,_.useCallback)(async c=>{if(!c.authorizeUrl)return!1;let h=JSON.stringify({...await s.ensureCodeChallenge(f),domain:c.domain}),P=new URL(c.authorizeUrl);return P.searchParams.set("state",h),window.location.assign(P.toString()),!0},[s,f]),u=(0,_.useCallback)(async c=>{let h=await s.post("auth/method",{email:c.email});await i(h)||o(c.email)},[s,i,o]),d=(0,_.useCallback)(async c=>{let h=await s.startGoogleLogin({...f,googleCredential:c.credential});await i(h)||r(h)},[s,f,i,r]);return _.default.createElement(le,{style:{maxWidth:400},onSubmit:u},_.default.createElement(ce.Center,{sx:{flexDirection:"column"}},a),l&&_.default.createElement(_.default.Fragment,null,_.default.createElement(ce.Group,{position:"center",p:"xl",style:{height:70}},_.default.createElement(Qa,{googleClientId:l,handleGoogleCredential:d})),!n&&_.default.createElement(ce.Divider,{label:"or",labelPosition:"center",my:"lg"})),!n&&_.default.createElement(ce.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),_.default.createElement(ce.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},_.default.createElement("div",null,t&&_.default.createElement(ce.Anchor,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs"},"Register")),!n&&_.default.createElement(ce.Button,{type:"submit"},"Next")))}function Hc(e){let{onForgotPassword:o,handleAuthResponse:t,children:r,...a}=e,n=T(),[f,s]=(0,_.useState)(),l=br(f,void 0),i=(0,_.useCallback)(u=>{n.startLogin({...a,password:u.password,remember:u.remember==="on"}).then(t).catch(d=>s((0,ci.normalizeOperationOutcome)(d)))},[n,a,t]);return _.default.createElement(le,{style:{maxWidth:400},onSubmit:i},_.default.createElement(ce.Center,{sx:{flexDirection:"column"}},r),_.default.createElement(St,{issues:l}),_.default.createElement(ce.Stack,{spacing:"xl"},_.default.createElement(ce.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:we(f,"password")})),_.default.createElement(ce.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},o&&_.default.createElement(ce.Anchor,{component:"button",type:"button",color:"dimmed",onClick:o,size:"xs"},"Forgot password"),_.default.createElement(ce.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),_.default.createElement(ce.Button,{type:"submit"},"Sign in")))}var Ge=require("@mantine/core"),pi=require("@medplum/core"),$e=m(require("react"));function xi(e){let o=T(),[t,r]=(0,$e.useState)();return $e.default.createElement(Ge.Stack,null,$e.default.createElement(Ge.Center,{sx:{flexDirection:"column"}},$e.default.createElement(Go,{size:32}),$e.default.createElement(Ge.Title,{order:3},"Choose profile")),$e.default.createElement(St,{outcome:t}),e.memberships.map(a=>$e.default.createElement(Ge.UnstyledButton,{key:a.id,onClick:()=>{o.post("auth/profile",{login:e.login,profile:a.id}).then(e.handleAuthResponse).catch(n=>r((0,pi.normalizeOperationOutcome)(n)))}},$e.default.createElement(Ge.Group,null,$e.default.createElement(Ge.Avatar,{radius:"xl"}),$e.default.createElement("div",{style:{flex:1}},$e.default.createElement(Ge.Text,{size:"sm",weight:500},a.profile?.display),$e.default.createElement(Ge.Text,{color:"dimmed",size:"xs"},a.project?.display))))))}var oo=require("@mantine/core"),Po=m(require("react"));function Ii(e){let o=T();return Po.default.createElement(le,{style:{maxWidth:400},onSubmit:t=>{o.post("auth/scope",{login:e.login,scope:Object.keys(t).join(" ")}).then(e.handleAuthResponse).catch(console.log)}},Po.default.createElement(oo.Stack,null,Po.default.createElement(oo.Center,{sx:{flexDirection:"column"}},Po.default.createElement(Go,{size:32}),Po.default.createElement(oo.Title,null,"Choose scope")),Po.default.createElement(oo.Stack,null,(e.scope??"openid").split(" ").map(t=>Po.default.createElement(oo.Checkbox,{key:t,id:t,name:t,label:t,defaultChecked:!0}))),Po.default.createElement(oo.Group,{position:"right",mt:"xl"},Po.default.createElement(oo.Button,{type:"submit"},"Set scope"))))}var Ue=require("@mantine/core"),gi=require("@medplum/core");var Ke=m(require("react"));function hi(e){let o=T(),[t,r]=(0,Ke.useState)();return Ke.default.createElement(le,{style:{maxWidth:400},onSubmit:a=>{r(void 0),o.post("auth/mfa/verify",{login:e.login,token:a.token}).then(e.handleAuthResponse).catch(n=>r((0,gi.normalizeErrorString)(n)))}},Ke.default.createElement(Ue.Stack,null,Ke.default.createElement(Ue.Center,{sx:{flexDirection:"column"}},Ke.default.createElement(Go,{size:32}),Ke.default.createElement(Ue.Title,null,"Enter MFA code")),t&&Ke.default.createElement(Ue.Alert,{icon:Ke.default.createElement(lt,{size:16}),title:"Error",color:"red"},t),Ke.default.createElement(Ue.Stack,null,Ke.default.createElement(Ue.TextInput,{name:"token",label:"MFA code",required:!0})),Ke.default.createElement(Ue.Group,{position:"right",mt:"xl"},Ke.default.createElement(Ue.Button,{type:"submit"},"Submit code"))))}function Vc(e){let{login:o,chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:n,onCode:f,...s}=e,l=T(),[i,u]=(0,Be.useState)(),[d,c]=(0,Be.useState)(!1),[h,P]=(0,Be.useState)(),M=(0,Be.useCallback)(A=>{f?f(A):l.processCode(A).then(()=>{r&&r()}).catch(I=>(0,_f.showNotification)({color:"red",message:(0,Zf.normalizeErrorString)(I)}))},[l,f,r]),D=(0,Be.useCallback)(A=>{c(!!A.mfaRequired),A.login&&u(A.login),A.memberships&&P(A.memberships),A.code&&(t?P(void 0):M(A.code))},[t,M]),k=(0,Be.useCallback)(A=>{M(A.code)},[M]);return(0,Be.useEffect)(()=>{o&&!i&&l.get("auth/login/"+o).then(D).catch(A=>(0,_f.showNotification)({color:"red",message:(0,Zf.normalizeErrorString)(A)}))},[l,o,i,D]),Be.default.createElement(wr,{width:450},(()=>i?d?Be.default.createElement(hi,{login:i,handleAuthResponse:D}):h?Be.default.createElement(xi,{login:i,memberships:h,handleAuthResponse:D}):e.projectId==="new"?Be.default.createElement(Ua,{login:i,handleAuthResponse:D}):e.chooseScopes?Be.default.createElement(Ii,{login:i,scope:e.scope,handleAuthResponse:k}):Be.default.createElement("div",null,"Success"):Be.default.createElement(mi,{onForgotPassword:a,onRegister:n,handleAuthResponse:D,disableGoogleAuth:e.disableGoogleAuth,disableEmailAuth:e.disableEmailAuth,...s},e.children))())}
64
+ }`.replace(/\s+/g," ")}function _i(e,o){let t=[];return e.data.Patients1&&t.push(...e.data.Patients1),e.data.Patients2&&t.push(...e.data.Patients2),e.data.ServiceRequestList&&t.push(...e.data.ServiceRequestList),Yi(Zi(t),o).slice(0,5)}function Zi(e){let o=new Set,t=[];for(let r of e)o.has(r.id)||(o.add(r.id),t.push(r));return t}function Yi(e,o){return e.sort((t,r)=>kl(r,o)-kl(t,o))}function kl(e,o){let t=0;if(e.identifier)for(let r of e.identifier)t=Math.max(t,Bl(r.value,o));if(e.resourceType==="Patient"&&e.name)for(let r of e.name)t=Math.max(t,Bl((0,Bo.formatHumanName)(r),o));return t}function Bl(e,o){if(!e)return 0;let t=e.toLowerCase().indexOf(o.toLowerCase());return t<0?0:100-t}var eu=(0,$.createStyles)(e=>({logoButton:{padding:`${e.spacing.xs} ${e.spacing.sm}`,borderRadius:e.radius.sm,transition:"background-color 100ms ease","&:hover":{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}},user:{padding:`${e.spacing.xs} ${e.spacing.sm}`,borderRadius:e.radius.sm,transition:"background-color 100ms ease","&:hover":{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}},userName:{fontWeight:500,lineHeight:1,marginRight:3,[e.fn.smallerThan("xs")]:{display:"none"}},userActive:{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}}));function En(e){let o=Tt(),{medplum:t,profile:r,navigate:a}=o,n=t.getLogins(),{classes:f,cx:s}=eu(),[l,i]=(0,X.useState)(!1);return X.default.createElement($.Header,{height:60,p:8,style:{zIndex:101}},X.default.createElement($.Group,{position:"apart"},X.default.createElement($.Group,{spacing:"xs"},X.default.createElement($.UnstyledButton,{className:f.logoButton,onClick:e.navbarToggle},e.logo),!e.headerSearchDisabled&&X.default.createElement(Al,{pathname:e.pathname,searchParams:e.searchParams})),X.default.createElement($.Menu,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:l,onClose:()=>i(!1)},X.default.createElement($.Menu.Target,null,X.default.createElement($.UnstyledButton,{className:s(f.user,{[f.userActive]:l}),onClick:()=>i(u=>!u)},X.default.createElement($.Group,{spacing:7},X.default.createElement(Le,{value:r,radius:"xl",size:24}),X.default.createElement($.Text,{size:"sm",className:f.userName},(0,pr.formatHumanName)(r?.name?.[0])),X.default.createElement(un,{size:12,stroke:1.5})))),X.default.createElement($.Menu.Dropdown,null,X.default.createElement($.Stack,{align:"center",p:"xl"},X.default.createElement(Le,{size:"xl",radius:100,value:o.profile}),X.default.createElement(mr,{value:o.profile?.name?.[0]}),X.default.createElement($.Text,{color:"dimmed",size:"xs"},t.getActiveLogin()?.project.display)),n.length>1&&X.default.createElement($.Menu.Divider,null),n.map(u=>u.profile.reference!==(0,pr.getReferenceString)(o.profile)&&X.default.createElement($.Menu.Item,{key:u.profile.reference,onClick:()=>{t.setActiveLogin(u).then(()=>window.location.reload()).catch(console.log)}},X.default.createElement($.Group,null,X.default.createElement($.Avatar,{radius:"xl"}),X.default.createElement("div",{style:{flex:1}},X.default.createElement($.Text,{size:"sm",weight:500},u.profile.display),X.default.createElement($.Text,{color:"dimmed",size:"xs"},u.project.display))))),X.default.createElement($.Menu.Divider,null),X.default.createElement($.Menu.Item,{icon:X.default.createElement(Bn,{size:14,stroke:1.5}),onClick:()=>a("/signin")},"Add another account"),X.default.createElement($.Menu.Item,{icon:X.default.createElement(Ft,{size:14,stroke:1.5}),onClick:()=>a(`/${(0,pr.getReferenceString)(r)}`)},"Account settings"),X.default.createElement($.Menu.Item,{icon:X.default.createElement(yn,{size:14,stroke:1.5}),onClick:async()=>{await t.signOut(),a("/signin")}},"Sign out"),X.default.createElement($.Text,{size:"xs",color:"dimmed",align:"center"},e.version)))))}var Ue=require("@mantine/core");var he=m(require("react"));var oo=require("@mantine/core"),Rn=require("@mantine/notifications"),fa=require("@medplum/core"),Ao=m(require("react"));var Fl=m(require("react"));function Ln(e){let o={};for(let t of Array.from(e.elements))t instanceof HTMLInputElement?ou(o,t):t instanceof HTMLTextAreaElement?o[t.name]=t.value:t instanceof HTMLSelectElement&&tu(o,t);return o}function ou(e,o){o.disabled||(o.type==="checkbox"||o.type==="radio")&&!o.checked||(e[o.name]=o.value)}function tu(e,o){e[o.name]=o.value}function le(e){return Fl.default.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:o=>{o.preventDefault();let t=Ln(o.target);e.onSubmit&&e.onSubmit(t)}},e.children)}function Ml(e){let o=T(),t=o.getUserConfiguration();function r(a){let{menuname:n,bookmarkname:f}=a,s=`${e.pathname}?${e.searchParams.toString()}`,l=(0,fa.deepClone)(t);l.menu?.find(({title:u})=>u===n)?.link?.push({name:f,target:s}),o.updateResource(l).then(u=>{t.menu=u.menu,o.dispatchEvent({type:"change"}),(0,Rn.showNotification)({color:"green",message:"Success"}),e.onOk()}).catch(u=>{(0,Rn.showNotification)({color:"red",message:(0,fa.normalizeErrorString)(u)})})}return Ao.default.createElement(oo.Modal,{title:"Add Bookmark",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},Ao.default.createElement(le,{onSubmit:r},Ao.default.createElement(oo.Stack,null,Ao.default.createElement(ru,{config:t}),Ao.default.createElement(oo.TextInput,{label:"Bookmark Name",type:"text",name:"bookmarkname",placeholder:"Bookmark Name",withAsterisk:!0}),Ao.default.createElement(oo.Group,{position:"right"},Ao.default.createElement(oo.Button,{mt:"sm",type:"submit"},"OK")))))}function ru(e){function o(r){return r?.menu?.map(a=>a.title)}let t=o(e.config);return Ao.default.createElement(oo.NativeSelect,{name:"menuname",defaultValue:t[0],label:"Select Menu Option",placeholder:"Menu",data:t,withAsterisk:!0})}var wt=m(require("react"));var sa=m(require("react"));var la=m(require("react"));function Nn(e){return typeof e.code=="string"?e.code:JSON.stringify(e)}function au(e){return typeof e.display=="string"?e.display:Nn(e)}function nu(e){return{value:Nn(e),label:au(e),resource:e}}function fu(e){return{code:e,display:e}}function Mt(e){let o=T(),{binding:t,creatable:r,clearable:a,...n}=e,f=(0,la.useCallback)(async(s,l)=>{if(!t)return[];let u=(await o.searchValueSet(t,s,{signal:l})).expansion?.contains,d=[];for(let c of u)c.code&&!d.some(I=>I.code===c.code)&&d.push(c);return d},[o,t]);return la.default.createElement(it,{...n,creatable:r??!0,clearable:a??!0,toKey:Nn,toOption:nu,loadOptions:f,onCreate:fu,getCreateLabel:r===!1?void 0:s=>`+ Create ${s}`})}function xr(e){let[o,t]=(0,sa.useState)(e.defaultValue);function r(a){let n=a[0],f=su(n);t(f),e.onChange&&e.onChange(f)}return sa.default.createElement(Mt,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:lu(o),onChange:r,creatable:e.creatable,maxSelectedValues:e.maxSelectedValues??1,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable})}function lu(e){return e?{code:e}:void 0}function su(e){return e?.code}function Ot(e){let[o,t]=(0,wt.useState)(e.defaultValue),r=e.onChange,a=(0,wt.useCallback)(n=>{t(n),r&&r(n)},[r]);return wt.default.createElement(xr,{"data-autofocus":e.autoFocus,"data-testid":e.testId,defaultValue:o,onChange:a,name:e.name,placeholder:e.placeholder,binding:"https://medplum.com/fhir/ValueSet/resource-types",creatable:!1,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var wl=(0,Ue.createStyles)(e=>({menuTitle:{margin:"20px 0 4px 6px",fontSize:"9px",fontWeight:"normal",textTransform:"uppercase",letterSpacing:"2px"},link:{...e.fn.focusStyles(),display:"flex",alignItems:"center",textDecoration:"none",fontSize:e.fontSizes.sm,color:e.colorScheme==="dark"?e.colors.dark[1]:e.colors.gray[7],padding:"8px 12px",borderRadius:e.radius.sm,fontWeight:500,"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[6]:e.colors.gray[0],color:e.colorScheme==="dark"?e.white:e.black,textDecoration:"none","& svg":{color:e.colorScheme==="dark"?e.white:e.black}},"& svg":{color:e.colorScheme==="dark"?e.colors.dark[2]:e.colors.gray[6],marginRight:e.spacing.sm,strokeWidth:1.5,width:18,height:18}},linkActive:{"&, &:hover":{backgroundColor:e.fn.variant({variant:"light",color:e.primaryColor}).background,color:e.fn.variant({variant:"light",color:e.primaryColor}).color,"& svg":{color:e.fn.variant({variant:"light",color:e.primaryColor}).color}}}}));function Hn(e){let{classes:o}=wl(),t=To(),r=du(e.pathname,e.searchParams,e.menus),[a,n]=(0,he.useState)(!1);function f(l,i){l.stopPropagation(),l.preventDefault(),t(i),window.innerWidth<768&&e.closeNavbar()}function s(l){l&&t(`/${l}`)}return he.default.createElement(he.default.Fragment,null,he.default.createElement(Ue.Navbar,{width:{sm:250},p:"xs"},he.default.createElement(Ue.ScrollArea,null,!e.resourceTypeSearchDisabled&&he.default.createElement(Ue.Navbar.Section,{mb:"sm"},he.default.createElement(Ot,{key:window.location.pathname,name:"resourceType",placeholder:"Resource Type",onChange:l=>s(l)})),he.default.createElement(Ue.Navbar.Section,{grow:!0},e.menus?.map(l=>he.default.createElement(he.default.Fragment,{key:`menu-${l.title}`},he.default.createElement(Ue.Text,{className:o.menuTitle},l.title),l.links?.map(i=>he.default.createElement(iu,{key:i.href,to:i.href,active:i.href===r?.href,onClick:u=>f(u,i.href)},he.default.createElement(uu,{to:i.href,icon:i.icon}),he.default.createElement("span",null,i.label))))),e.displayAddBookmark&&he.default.createElement(Ue.Button,{variant:"subtle",size:"xs",mt:"xl",leftIcon:he.default.createElement(Pn,{size:"0.75rem"}),onClick:()=>n(!0)},"Add Bookmark")))),e.pathname&&e.searchParams&&he.default.createElement(Ml,{pathname:e.pathname,searchParams:e.searchParams,visible:a,onOk:()=>n(!1),onCancel:()=>n(!1)}))}function iu(e){let{classes:o,cx:t}=wl();return he.default.createElement(ke,{onClick:e.onClick,to:e.to,className:t(o.link,{[o.linkActive]:e.active})},e.children)}function uu(e){return e.icon?e.icon:he.default.createElement(Ue.Space,{w:30})}function du(e,o,t){if(!e||!o||!t)return;let r,a=0;for(let n of t)if(n.links)for(let f of n.links){let s=cu(e,o,f.href);s>a&&(a=s,r=f)}return r}function cu(e,o,t){let r=new URL(t,"https://example.com");if(e!==r.pathname)return 0;let a=["_count","_offset"];for(let[f,s]of r.searchParams.entries())if(!a.includes(f)&&o.get(f)!==s)return 0;let n=1;for(let[f,s]of o.entries())a.includes(f)||r.searchParams.get(f)===s&&n++;return n}function mu(e){let o=(0,ia.useMantineTheme)(),[t,r]=(0,to.useState)(localStorage.navbarOpen==="true"),a=T(),n=fr();function f(i){localStorage.navbarOpen=i.toString(),r(i)}function s(){f(!1)}function l(){f(!t)}return a.isLoading()?to.default.createElement(ea,null):to.default.createElement(ia.AppShell,{styles:{main:{background:o.colorScheme==="dark"?o.colors.dark[8]:o.colors.gray[0]}},padding:0,fixed:!0,header:n&&to.default.createElement(En,{pathname:e.pathname,searchParams:e.searchParams,headerSearchDisabled:e.headerSearchDisabled,logo:e.logo,version:e.version,navbarToggle:l}),navbar:n&&t?to.default.createElement(Hn,{pathname:e.pathname,searchParams:e.searchParams,menus:e.menus,closeNavbar:s,displayAddBookmark:e.displayAddBookmark,resourceTypeSearchDisabled:e.resourceTypeSearchDisabled}):void 0},to.default.createElement(lt,{key:`${e.pathname}?${e.searchParams?.toString()}`},to.default.createElement(to.Suspense,{fallback:to.default.createElement(ea,null)},e.children)))}var ua=m(require("react"));var Ol=require("@mantine/core"),Fo=m(require("react"));function so(e){let o=e.value,{contentType:t,url:r,title:a}=o??{};return r?Fo.default.createElement("div",{"data-testid":"attachment-display"},t?.startsWith("image/")&&Fo.default.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:r,alt:o?.title}),t?.startsWith("video/")&&Fo.default.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},Fo.default.createElement("source",{type:t,src:r})),t==="application/pdf"&&!a?.endsWith(".pdf")&&Fo.default.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},Fo.default.createElement("iframe",{width:"100%",height:"400",src:r+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),Fo.default.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},Fo.default.createElement(Ol.Anchor,{href:o?.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},o?.title||"Download"))):null}function Vn(e){return ua.default.createElement("div",null,e.values?.map((o,t)=>ua.default.createElement("div",{key:"attatchment-"+t},ua.default.createElement(so,{value:o,maxWidth:e.maxWidth}))))}var qn=require("@mantine/core");var me=m(require("react"));var Et=m(require("react"));function dt(e){let o=T(),t=(0,Et.useRef)(null);function r(f){Q(f),t.current?.click()}function a(f){Q(f);let s=f.target.files;s&&Array.from(s).forEach(n)}function n(f){if(!f||!f.name)return;e.onUploadStart&&e.onUploadStart();let l=f.name,i=f.type||"application/octet-stream";o.createBinary(f,l,i,e.onUploadProgress).then(u=>{e.onUpload({contentType:u.contentType,url:u.url,title:l})}).catch(u=>{alert(u.issue?.[0]?.details?.text)})}return Et.default.createElement(Et.default.Fragment,null,Et.default.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:t,onChange:f=>a(f)}),e.children({onClick:r}))}function Gn(e){let[o,t]=(0,me.useState)(e.defaultValue??[]),r=(0,me.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return me.default.createElement("table",{style:{width:"100%"}},me.default.createElement("colgroup",null,me.default.createElement("col",{width:"97%"}),me.default.createElement("col",{width:"3%"})),me.default.createElement("tbody",null,o.map((n,f)=>me.default.createElement("tr",{key:`${f}-${o.length}`},me.default.createElement("td",null,me.default.createElement(so,{value:n,maxWidth:200})),me.default.createElement("td",null,me.default.createElement(qn.ActionIcon,{title:"Remove",size:"sm",onClick:s=>{Q(s);let l=o.slice();l.splice(f,1),a(l)}},me.default.createElement(Wo,null))))),me.default.createElement("tr",null,me.default.createElement("td",null),me.default.createElement("td",null,me.default.createElement(dt,{onUpload:n=>{a([...r.current,n])}},n=>me.default.createElement(qn.ActionIcon,{...n,title:"Add",size:"sm",color:"green"},me.default.createElement(ir,{size:16})))))))}var Un=require("@mantine/core"),Mo=m(require("react"));function Ir(e){let[o,t]=(0,Mo.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return o?Mo.default.createElement(Mo.default.Fragment,null,Mo.default.createElement(so,{value:o,maxWidth:200}),Mo.default.createElement(Un.Button,{onClick:a=>{Q(a),r(void 0)}},"Remove")):Mo.default.createElement(dt,{onUpload:r},a=>Mo.default.createElement(Un.Button,{...a},"Upload..."))}var Gl=require("@medplum/core"),xo=m(require("react"));var Qn=m(require("react"));var da=require("@mantine/core"),El=m(require("react")),pu=(0,da.createStyles)(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function wo(e){let{children:o,...t}=e,{classes:r}=pu();return El.default.createElement(da.Container,{className:r.root,...t},o)}var Lt=require("@mantine/core"),Ll=m(require("react")),xu=(0,Lt.createStyles)((e,{width:o,fill:t})=>({paper:{maxWidth:o,margin:`${e.spacing.xl} auto`,padding:t?0:e.spacing.md,"@media (max-width: 800px)":{padding:t?0:8},"& img":{width:"100%",maxWidth:"100%"},"& video":{width:"100%",maxWidth:"100%"}}})),Iu={shadow:"xs",radius:"md",withBorder:!0};function ct(e){let{className:o,children:t,width:r,fill:a,unstyled:n,...f}=(0,Lt.useComponentDefaultProps)("Panel",Iu,e),{classes:s,cx:l}=xu({width:r,fill:a},{name:"Panel",unstyled:n});return Ll.default.createElement(Lt.Paper,{className:l(s.paper,o),...f},t)}function gr(e){let{children:o,...t}=e;return Qn.default.createElement(wo,null,Qn.default.createElement(ct,{...t},o))}var Me=require("@mantine/core"),Nl=require("@medplum/core"),Qe=m(require("react"));var Xo=m(require("react"));function Oo(e){return Xo.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},Xo.default.createElement("title",null,"Medplum Logo"),Xo.default.createElement("path",{fill:e.fill??"#ad7136",d:"M282 67c6-16 16-29 29-40L289 0c-22 17-37 41-43 68l17 23 19-24z"}),Xo.default.createElement("path",{fill:e.fill??"#946af9",d:"M311 63c-17 0-33 4-48 11-16-7-32-11-49-11-87 0-158 96-158 214s71 214 158 214c17 0 33-4 49-11 15 7 31 11 48 11 87 0 158-96 158-214S398 63 311 63z"}),Xo.default.createElement("path",{fill:e.fill??"#7857c5",d:"M231 489l-17 2c-87 0-158-96-158-214S127 63 214 63l17 1c-39 12-70 102-70 213s31 201 70 212z"}),Xo.default.createElement("path",{fill:e.fill??"#40bc26",d:"M207 220a176 176 0 01-177 43A176 176 0 01251 43l1 5c17 59 2 125-45 172z"}),Xo.default.createElement("path",{fill:e.fill??"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}function Fe(e,o){return e?.issue?.filter(t=>Rl(t.expression?.[0],o))?.map(t=>t.details?.text)?.join(`
65
+ `)}function hr(e,o){return e?.issue?.filter(t=>Rl(t.expression?.[0],o))}function Rl(e,o){if(e===o)return!0;if(!e||!o)return!1;let t=e.indexOf(".");if(t>=0&&e.substring(t+1)===o)return!0;let r=o.indexOf(".");return r>=0&&o.substring(r+1)===e}function ca(e){let o=T(),[t,r]=(0,Qe.useState)();return Qe.default.createElement(le,{style:{maxWidth:400},onSubmit:async a=>{try{e.handleAuthResponse(await o.startNewProject({login:e.login,projectName:a.projectName}))}catch(n){r((0,Nl.normalizeOperationOutcome)(n))}}},Qe.default.createElement(Me.Center,{sx:{flexDirection:"column"}},Qe.default.createElement(Oo,{size:32}),Qe.default.createElement(Me.Title,null,"Create project")),Qe.default.createElement(Me.Stack,{spacing:"xl"},Qe.default.createElement(Me.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:Fe(t,"firstName")}),Qe.default.createElement(Me.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",Qe.default.createElement(Me.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",Qe.default.createElement(Me.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),".")),Qe.default.createElement(Me.Group,{position:"right",mt:"xl",noWrap:!0},Qe.default.createElement(Me.Button,{type:"submit"},"Create project")))}var ae=require("@mantine/core"),Xn=require("@medplum/core"),re=m(require("react"));var po=m(require("react"));function Cr(e,o){let t=document.getElementsByTagName("head")[0],r=document.createElement("script");r.async=!0,r.src=e,r.onload=o??null,t.appendChild(r)}function ma(e){let o=T(),{googleClientId:t,handleGoogleCredential:r}=e,a=(0,po.useRef)(null),[n,f]=(0,po.useState)(typeof google<"u"),[s,l]=(0,po.useState)(!1),[i,u]=(0,po.useState)(!1);return(0,po.useEffect)(()=>{if(typeof google>"u"){Cr("https://accounts.google.com/gsi/client",()=>f(!0));return}s||(google.accounts.id.initialize({client_id:t,callback:r}),l(!0)),a.current&&!i&&(google.accounts.id.renderButton(a.current,{}),u(!0))},[o,t,s,n,a,i,r]),t?po.default.createElement("div",{ref:a}):null}function pa(e){if(e)return e;if(typeof window<"u"){let o=window.location.protocol+"//"+window.location.host;if(("undefined"?.split(",")??[]).includes(o))return"__GOOGLE_CLIENT_ID__"}}var Hl=require("@mantine/core"),Vl=require("@medplum/core");var xa=m(require("react"));function mt(e){let o=e.outcome?.issue||e.issues;return!o||o.length===0?null:xa.default.createElement(Hl.Alert,{icon:xa.default.createElement(ft,{size:16}),color:"red"},o.map(t=>xa.default.createElement("div",{"data-testid":"text-field-error",key:t.details?.text},(0,Vl.operationOutcomeIssueToString)(t))))}function zn(e){typeof grecaptcha>"u"&&Cr("https://www.google.com/recaptcha/api.js?render="+e)}function Wn(e){return new Promise((o,t)=>{grecaptcha.ready(async()=>{try{o(await grecaptcha.execute(e,{action:"submit"}))}catch(r){t(r)}})})}function ql(e){let o=pa(e.googleClientId),t=e.recaptchaSiteKey,r=T(),[a,n]=(0,re.useState)(),f=hr(a,void 0);return(0,re.useEffect)(()=>{t&&zn(t)},[t]),re.default.createElement(le,{style:{maxWidth:400},onSubmit:async s=>{try{let l="";t&&(l=await Wn(t)),e.handleAuthResponse(await r.startNewUser({projectId:e.projectId,clientId:e.clientId,firstName:s.firstName,lastName:s.lastName,email:s.email,password:s.password,remember:s.remember==="true",recaptchaSiteKey:t,recaptchaToken:l}))}catch(l){n((0,Xn.normalizeOperationOutcome)(l))}}},re.default.createElement(ae.Center,{sx:{flexDirection:"column"}},e.children),re.default.createElement(mt,{issues:f}),o&&re.default.createElement(re.default.Fragment,null,re.default.createElement(ae.Group,{position:"center",p:"xl",style:{height:70}},re.default.createElement(ma,{googleClientId:o,handleGoogleCredential:async s=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:s.clientId,googleCredential:s.credential,createUser:!0}))}catch(l){n((0,Xn.normalizeOperationOutcome)(l))}}})),re.default.createElement(ae.Divider,{label:"or",labelPosition:"center",my:"lg"})),re.default.createElement(ae.Stack,{spacing:"xl"},re.default.createElement(ae.TextInput,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:Fe(a,"firstName")}),re.default.createElement(ae.TextInput,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:Fe(a,"lastName")}),re.default.createElement(ae.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:Fe(a,"email")}),re.default.createElement(ae.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,error:Fe(a,"password")}),re.default.createElement(ae.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",re.default.createElement(ae.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",re.default.createElement(ae.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),"."),re.default.createElement(ae.Text,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",re.default.createElement(ae.Anchor,{href:"https://policies.google.com/privacy"},"Privacy\xA0Policy")," and ",re.default.createElement(ae.Anchor,{href:"https://policies.google.com/terms"},"Terms\xA0of\xA0Service")," apply.")),re.default.createElement(ae.Group,{position:"apart",mt:"xl",noWrap:!0},re.default.createElement(ae.Checkbox,{name:"remember",label:"Remember me",size:"xs"}),re.default.createElement(ae.Button,{type:"submit"},"Create account")))}function gu(e){let{type:o,projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,onSuccess:f}=e,s=T(),[l,i]=(0,xo.useState)(),[u,d]=(0,xo.useState)();(0,xo.useEffect)(()=>{o==="patient"&&l&&s.startNewPatient({login:l,projectId:t}).then(I=>s.processCode(I.code)).then(()=>f()).catch(I=>d((0,Gl.normalizeOperationOutcome)(I)))},[s,o,t,l,f]);function c(I){I.code?s.processCode(I.code).then(()=>f()).catch(console.log):I.login&&i(I.login)}return xo.default.createElement(gr,{width:450},u&&xo.default.createElement("pre",null,JSON.stringify(u,null,2)),!l&&xo.default.createElement(ql,{projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,handleAuthResponse:c},e.children),l&&o==="project"&&xo.default.createElement(ca,{login:l,handleAuthResponse:c}))}var Jn=require("@mantine/notifications"),Kn=require("@medplum/core"),Be=m(require("react"));var de=require("@mantine/core"),Ul=require("@medplum/core"),j=m(require("react"));function Ql(e){let[o,t]=(0,j.useState)();return o?j.default.createElement(Cu,{email:o,...e}):j.default.createElement(hu,{setEmail:t,...e})}function hu(e){let{setEmail:o,onRegister:t,handleAuthResponse:r,children:a,disableEmailAuth:n,...f}=e,s=T(),l=!e.disableGoogleAuth&&pa(e.googleClientId),i=(0,j.useCallback)(async c=>{if(!c.authorizeUrl)return!1;let I=JSON.stringify({...await s.ensureCodeChallenge(f),domain:c.domain}),P=new URL(c.authorizeUrl);return P.searchParams.set("state",I),window.location.assign(P.toString()),!0},[s,f]),u=(0,j.useCallback)(async c=>{let I=await s.post("auth/method",{email:c.email});await i(I)||o(c.email)},[s,i,o]),d=(0,j.useCallback)(async c=>{let I=await s.startGoogleLogin({...f,googleCredential:c.credential});await i(I)||r(I)},[s,f,i,r]);return j.default.createElement(le,{style:{maxWidth:400},onSubmit:u},j.default.createElement(de.Center,{sx:{flexDirection:"column"}},a),l&&j.default.createElement(j.default.Fragment,null,j.default.createElement(de.Group,{position:"center",p:"xl",style:{height:70}},j.default.createElement(ma,{googleClientId:l,handleGoogleCredential:d})),!n&&j.default.createElement(de.Divider,{label:"or",labelPosition:"center",my:"lg"})),!n&&j.default.createElement(de.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),j.default.createElement(de.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},j.default.createElement("div",null,t&&j.default.createElement(de.Anchor,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs"},"Register")),!n&&j.default.createElement(de.Button,{type:"submit"},"Next")))}function Cu(e){let{onForgotPassword:o,handleAuthResponse:t,children:r,...a}=e,n=T(),[f,s]=(0,j.useState)(),l=hr(f,void 0),i=(0,j.useCallback)(u=>{n.startLogin({...a,password:u.password,remember:u.remember==="on"}).then(t).catch(d=>s((0,Ul.normalizeOperationOutcome)(d)))},[n,a,t]);return j.default.createElement(le,{style:{maxWidth:400},onSubmit:i},j.default.createElement(de.Center,{sx:{flexDirection:"column"}},r),j.default.createElement(mt,{issues:l}),j.default.createElement(de.Stack,{spacing:"xl"},j.default.createElement(de.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:Fe(f,"password")})),j.default.createElement(de.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},o&&j.default.createElement(de.Anchor,{component:"button",type:"button",color:"dimmed",onClick:o,size:"xs"},"Forgot password"),j.default.createElement(de.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),j.default.createElement(de.Button,{type:"submit"},"Sign in")))}var Re=require("@mantine/core"),zl=require("@medplum/core"),ze=m(require("react"));function Wl(e){let o=T(),[t,r]=(0,ze.useState)();return ze.default.createElement(Re.Stack,null,ze.default.createElement(Re.Center,{sx:{flexDirection:"column"}},ze.default.createElement(Oo,{size:32}),ze.default.createElement(Re.Title,{order:3},"Choose profile")),ze.default.createElement(mt,{outcome:t}),e.memberships.map(a=>ze.default.createElement(Re.UnstyledButton,{key:a.id,onClick:()=>{o.post("auth/profile",{login:e.login,profile:a.id}).then(e.handleAuthResponse).catch(n=>r((0,zl.normalizeOperationOutcome)(n)))}},ze.default.createElement(Re.Group,null,ze.default.createElement(Re.Avatar,{radius:"xl"}),ze.default.createElement("div",{style:{flex:1}},ze.default.createElement(Re.Text,{size:"sm",weight:500},a.profile?.display),ze.default.createElement(Re.Text,{color:"dimmed",size:"xs"},a.project?.display))))))}var Ke=require("@mantine/core"),Io=m(require("react"));function Xl(e){let o=T();return Io.default.createElement(le,{style:{maxWidth:400},onSubmit:t=>{o.post("auth/scope",{login:e.login,scope:Object.keys(t).join(" ")}).then(e.handleAuthResponse).catch(console.log)}},Io.default.createElement(Ke.Stack,null,Io.default.createElement(Ke.Center,{sx:{flexDirection:"column"}},Io.default.createElement(Oo,{size:32}),Io.default.createElement(Ke.Title,null,"Choose scope")),Io.default.createElement(Ke.Stack,null,(e.scope??"openid").split(" ").map(t=>Io.default.createElement(Ke.Checkbox,{key:t,id:t,name:t,label:t,defaultChecked:!0}))),Io.default.createElement(Ke.Group,{position:"right",mt:"xl"},Io.default.createElement(Ke.Button,{type:"submit"},"Set scope"))))}var Ne=require("@mantine/core"),Jl=require("@medplum/core");var We=m(require("react"));function Kl(e){let o=T(),[t,r]=(0,We.useState)();return We.default.createElement(le,{style:{maxWidth:400},onSubmit:a=>{r(void 0),o.post("auth/mfa/verify",{login:e.login,token:a.token}).then(e.handleAuthResponse).catch(n=>r((0,Jl.normalizeErrorString)(n)))}},We.default.createElement(Ne.Stack,null,We.default.createElement(Ne.Center,{sx:{flexDirection:"column"}},We.default.createElement(Oo,{size:32}),We.default.createElement(Ne.Title,null,"Enter MFA code")),t&&We.default.createElement(Ne.Alert,{icon:We.default.createElement(ft,{size:16}),title:"Error",color:"red"},t),We.default.createElement(Ne.Stack,null,We.default.createElement(Ne.TextInput,{name:"token",label:"MFA code",required:!0})),We.default.createElement(Ne.Group,{position:"right",mt:"xl"},We.default.createElement(Ne.Button,{type:"submit"},"Submit code"))))}function yu(e){let{login:o,chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:n,onCode:f,...s}=e,l=T(),[i,u]=(0,Be.useState)(),[d,c]=(0,Be.useState)(!1),[I,P]=(0,Be.useState)(),B=(0,Be.useCallback)(M=>{f?f(M):l.processCode(M).then(()=>{r&&r()}).catch(g=>(0,Jn.showNotification)({color:"red",message:(0,Kn.normalizeErrorString)(g)}))},[l,f,r]),k=(0,Be.useCallback)(M=>{c(!!M.mfaRequired),M.login&&u(M.login),M.memberships&&P(M.memberships),M.code&&(t?P(void 0):B(M.code))},[t,B]),A=(0,Be.useCallback)(M=>{B(M.code)},[B]);return(0,Be.useEffect)(()=>{o&&!i&&l.get("auth/login/"+o).then(k).catch(M=>(0,Jn.showNotification)({color:"red",message:(0,Kn.normalizeErrorString)(M)}))},[l,o,i,k]),Be.default.createElement(gr,{width:450},(()=>i?d?Be.default.createElement(Kl,{login:i,handleAuthResponse:k}):I?Be.default.createElement(Wl,{login:i,memberships:I,handleAuthResponse:k}):e.projectId==="new"?Be.default.createElement(ca,{login:i,handleAuthResponse:k}):e.chooseScopes?Be.default.createElement(Xl,{login:i,scope:e.scope,handleAuthResponse:A}):Be.default.createElement("div",null,"Success"):Be.default.createElement(Ql,{onForgotPassword:a,onRegister:n,handleAuthResponse:k,disableGoogleAuth:e.disableGoogleAuth,disableEmailAuth:e.disableEmailAuth,...s},e.children))())}var Ca=require("@medplum/core"),Vt=m(require("react"));var Ia=["meta","implicitRules","language","text","contained","extension","modifierExtension"];var $l=require("@mantine/core"),Rt=m(require("react")),vu=(0,$l.createStyles)(e=>({root:{display:"grid",gridTemplateColumns:"30% 70%",margin:0,"& > dt, & > dd":{padding:`${e.spacing.sm} ${e.spacing.sm}`,borderTop:`0.1px solid ${e.colors.gray[3]}`,margin:0}},compact:{gridTemplateColumns:"20% 80%","& > dt, & > dd":{padding:`0 ${e.spacing.xs} ${e.spacing.xs} 0`,border:0}}}));function $n(e){let{children:o,compact:t}=e,{classes:r,cx:a}=vu();return Rt.default.createElement("dl",{className:a(r.root,{[r.compact]:t})},o)}function jn(e){return Rt.default.createElement(Rt.default.Fragment,null,Rt.default.createElement("dt",null,e.term),Rt.default.createElement("dd",null,e.children))}var Ko=require("@mantine/core"),H=require("@medplum/core");var q=m(require("react"));var jl=require("@medplum/core"),_n=m(require("react"));function pt(e){return _n.default.createElement(_n.default.Fragment,null,(0,jl.formatCodeableConcept)(e.value))}var _l=require("@medplum/core"),Zn=m(require("react"));function Yn(e){return Zn.default.createElement(Zn.default.Fragment,null,(0,_l.formatCoding)(e.value))}var ga=m(require("react"));var ef=m(require("react"));function yr(e){let o=e.value;if(!o)return null;let t=[];return o.value&&t.push(o.value),(o.use||o.system)&&(t.push(" ["),o.use&&t.push(o.use),o.use&&o.system&&t.push(" "),o.system&&t.push(o.system),t.push("]")),ef.default.createElement(ef.default.Fragment,null,t.join("").trim())}function of(e){let o=e.value;return o?ga.default.createElement(ga.default.Fragment,null,o.name,o.name&&": ",o.telecom?.map(t=>ga.default.createElement(yr,{key:`telecom-${o.name}-${t.value}`,value:t}))):null}var Zl=m(require("react"));function tf(e){return Zl.default.createElement("div",null,e.value?.system,": ",e.value?.value)}var Yl=require("@medplum/core"),rf=m(require("react"));function af(e){return rf.default.createElement(rf.default.Fragment,null,(0,Yl.formatMoney)(e.value))}var es=require("@medplum/core"),nf=m(require("react"));function Nt(e){return nf.default.createElement(nf.default.Fragment,null,(0,es.formatQuantity)(e.value))}var os=require("@medplum/core"),ff=m(require("react"));function vr(e){return ff.default.createElement(ff.default.Fragment,null,(0,os.formatRange)(e.value))}var Sr=m(require("react"));function ts(e){let o=e.value;return o?Sr.default.createElement(Sr.default.Fragment,null,Sr.default.createElement(Nt,{value:o.numerator}),"\xA0/\xA0",Sr.default.createElement(Nt,{value:o.denominator})):null}var rs=require("@medplum/core"),ha=m(require("react"));function Jo(e){if(!e.value)return null;let o=e.value.display||e.value.reference||(0,rs.stringify)(e.value);return e.link!==!1&&e.value.reference?ha.default.createElement(ke,{to:e.value},o):ha.default.createElement(ha.default.Fragment,null,o)}var xt=m(require("react"));function lf(e){let{property:o,values:t}=e,r=o.type[0].code;return e.values?xt.default.createElement(xt.default.Fragment,null,t.map((a,n)=>xt.default.createElement("div",{key:`${n}-${t.length}`},xt.default.createElement(we,{arrayElement:!0,property:o,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link})))):xt.default.createElement(xt.default.Fragment,null)}function we(e){let{property:o,propertyType:t,value:r}=e;if(o?.path?.endsWith(".id"))return q.default.createElement(Ko.Box,{component:"div",sx:{display:"flex",gap:3,alignItems:"center"}},r,q.default.createElement(Ko.CopyButton,{value:r,timeout:2e3},({copied:n,copy:f})=>q.default.createElement(Ko.Tooltip,{label:n?"Copied":"Copy",withArrow:!0,position:"right"},q.default.createElement(Ko.ActionIcon,{color:n?"teal":"gray",onClick:f},n?q.default.createElement(sr,{size:"1rem"}):q.default.createElement(cn,{size:"1rem"})))));if(o?.max&&o.max>1&&!e.arrayElement)return t===H.PropertyType.Attachment?q.default.createElement(Vn,{values:r,maxWidth:e.maxWidth}):q.default.createElement(lf,{property:o,values:r,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(t){case H.PropertyType.boolean:return q.default.createElement(q.default.Fragment,null,r===void 0?"":(!!r).toString());case H.PropertyType.SystemString:case H.PropertyType.string:return q.default.createElement("div",{style:{whiteSpace:"pre-wrap"}},r);case H.PropertyType.code:case H.PropertyType.date:case H.PropertyType.decimal:case H.PropertyType.integer:case H.PropertyType.positiveInt:case H.PropertyType.unsignedInt:case H.PropertyType.uri:case H.PropertyType.url:return q.default.createElement(q.default.Fragment,null,r);case H.PropertyType.canonical:return q.default.createElement(Jo,{value:{reference:r},link:e.link});case H.PropertyType.dateTime:case H.PropertyType.instant:return q.default.createElement(q.default.Fragment,null,(0,H.formatDateTime)(r));case H.PropertyType.markdown:return q.default.createElement("pre",null,r);case H.PropertyType.Address:return q.default.createElement(ja,{value:r});case H.PropertyType.Annotation:return q.default.createElement(q.default.Fragment,null,r?.text);case H.PropertyType.Attachment:return q.default.createElement(so,{value:r,maxWidth:e.maxWidth});case H.PropertyType.CodeableConcept:return q.default.createElement(pt,{value:r});case H.PropertyType.Coding:return q.default.createElement(Yn,{value:r});case H.PropertyType.ContactDetail:return q.default.createElement(of,{value:r});case H.PropertyType.ContactPoint:return q.default.createElement(yr,{value:r});case H.PropertyType.HumanName:return q.default.createElement(mr,{value:r});case H.PropertyType.Identifier:return q.default.createElement(tf,{value:r});case H.PropertyType.Money:return q.default.createElement(af,{value:r});case H.PropertyType.Period:return q.default.createElement(q.default.Fragment,null,(0,H.formatPeriod)(r));case H.PropertyType.Quantity:case H.PropertyType.Duration:return q.default.createElement(Nt,{value:r});case H.PropertyType.Range:return q.default.createElement(vr,{value:r});case H.PropertyType.Ratio:return q.default.createElement(ts,{value:r});case H.PropertyType.Reference:return q.default.createElement(Jo,{value:r,link:e.link});case H.PropertyType.Timing:return q.default.createElement(q.default.Fragment,null,(0,H.formatTiming)(r));case H.PropertyType.Dosage:case H.PropertyType.UsageContext:return q.default.createElement(Ht,{value:{type:t,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues});default:if(!o)throw Error(`Displaying property of type ${e.propertyType} requires element schema`);return q.default.createElement(Ht,{value:{type:o.type[0].code,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}var as=require("@medplum/core");function $e(e,o){let t=(0,as.getTypedPropertyValue)(e,o);return t?Array.isArray(t)?[t.map(r=>r.value),t[0].type]:[t.value,t.type]:[void 0,"undefined"]}function Ht(e){let o=e.value,t=o.value;if(!t)return null;let r=o.type,a=(0,Ca.tryGetDataType)(r);return a?typeof t=="object"&&"name"in t&&Object.keys(t).length===1&&typeof t.name=="string"?Vt.default.createElement("div",null,t.name):Vt.default.createElement($n,{compact:e.compact},Object.entries(a.elements).map(n=>{let[f,s]=n;if(Ia.includes(f))return null;let[l,i]=$e(o,f);return e.ignoreMissingValues&&(!l||Array.isArray(l)&&l.length===0)?null:Vt.default.createElement(jn,{key:f,term:(0,Ca.getPropertyDisplayName)(f)},Vt.default.createElement(we,{property:s,propertyType:i,value:l,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))})):Vt.default.createElement("div",null,r,"\xA0not implemented")}var bs=require("@mantine/core"),wr=require("@medplum/core"),Ro=m(require("react"));var ya=require("@mantine/core"),br=m(require("react"));function Pr(e){return br.default.createElement(ya.Group,{noWrap:!0},br.default.createElement("div",null,e.children),br.default.createElement("div",null,br.default.createElement(ya.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk},(()=>null)())))}var ns=require("@mantine/core"),fs=m(require("react"));function Xe(e){return fs.default.createElement(ns.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk,error:Fe(e.outcome,e.htmlFor)},e.children)}var ls=require("@medplum/core");function Tr(e,o,t,r,a){let n=r.type;if(n.length>1)for(let f of n){let s=o.replace("[x]",(0,ls.capitalize)(f.code));s in e&&delete e[s]}return e[t]=a,e}var ao=require("@mantine/core"),V=require("@medplum/core"),z=m(require("react"));var va=m(require("react"));function sf(e){let[o,t]=(0,va.useState)(e.defaultValue);function r(a){let n=bu(a);t(n),e.onChange&&e.onChange(n)}return va.default.createElement(Mt,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&Su(o),maxSelectedValues:1,onChange:r})}function Su(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function bu(e){if(e.length!==0)return{coding:e.map(o=>({system:o.system,code:o.code,display:o.display}))}}var Sa=m(require("react"));function Dr(e){let[o,t]=(0,Sa.useState)(e.defaultValue);function r(a){let n=a[0],f=n&&Tu(n);t(f),e.onChange&&e.onChange(f)}return Sa.default.createElement(Mt,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&Pu(o),maxSelectedValues:1,onChange:r})}function Pu(e){return{system:e.system,code:e.code,display:e.display}}function Tu(e){return{system:e.system,code:e.code,display:e.display}}var ba=require("@mantine/core"),$o=m(require("react"));var It=require("@mantine/core"),Eo=m(require("react"));function kr(e){let[o,t]=(0,Eo.useState)(e.defaultValue),r=(0,Eo.useRef)();r.current=o;function a(l){l&&Object.keys(l).length===0&&(l=void 0),t(l),e.onChange&&e.onChange(l)}function n(l){let i={...r.current,system:l};l||delete i.system,a(i)}function f(l){let i={...r.current,use:l};l||delete i.use,a(i)}function s(l){let i={...r.current,value:l};l||delete i.value,a(i)}return Eo.default.createElement(It.Group,{spacing:"xs",grow:!0,noWrap:!0},Eo.default.createElement(It.NativeSelect,{"data-testid":"system",defaultValue:o?.system,onChange:l=>n(l.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),Eo.default.createElement(It.NativeSelect,{"data-testid":"use",defaultValue:o?.use,onChange:l=>f(l.currentTarget.value),data:["","home","work","temp","old","mobile"]}),Eo.default.createElement(It.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:l=>s(l.currentTarget.value)}))}function uf(e){let[o,t]=(0,$o.useState)(e.defaultValue),r=(0,$o.useRef)();r.current=o;function a(s){t(s),e.onChange&&e.onChange(s)}function n(s){let l={...r.current,name:s};s||delete l.name,a(l)}function f(s){let l={...r.current,telecom:s&&[s]};s||delete l.telecom,a(l)}return $o.default.createElement(ba.Group,{spacing:"xs",grow:!0,noWrap:!0},$o.default.createElement(ba.TextInput,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:o?.name,onChange:s=>n(s.currentTarget.value)}),$o.default.createElement(kr,{name:e.name+"-telecom",defaultValue:o?.telecom?.[0],onChange:f}))}var ss=require("@mantine/core"),is=m(require("react"));var df=require("@medplum/core");function cf(e){if(!e)return"";let o=new Date(e);return(0,df.isValidDate)(o)?o.toLocaleDateString("sv")+"T"+o.toLocaleTimeString("sv"):""}function mf(e){if(!e)return"";let o=new Date(e);return(0,df.isValidDate)(o)?o.toISOString():""}function ro(e){return is.default.createElement(ss.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:Du(),defaultValue:cf(e.defaultValue),autoFocus:e.autoFocus,error:Fe(e.outcome,e.name),onChange:o=>{if(e.onChange){let t=o.currentTarget.value;e.onChange(mf(t))}}})}function Du(){return"datetime-local"}var us=require("@mantine/core"),ds=require("@medplum/core"),cs=m(require("react"));function ms(e){return cs.default.createElement(us.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:(0,ds.stringify)(e.defaultValue),deserialize:JSON.parse,onChange:o=>{e.onChange&&e.onChange(JSON.parse(o))}})}var Lo=require("@mantine/core"),io=m(require("react"));function pf(e){let[o,t]=(0,io.useState)(e.defaultValue),r=(0,io.useRef)();r.current=o;function a(u){t(u),e.onChange&&e.onChange(u)}function n(u){a({...r.current,use:u||void 0})}function f(u){a({...r.current,prefix:u?u.split(" "):void 0})}function s(u){a({...r.current,given:u?u.split(" "):void 0})}function l(u){a({...r.current,family:u||void 0})}function i(u){a({...r.current,suffix:u?u.split(" "):void 0})}return io.default.createElement(Lo.Group,{spacing:"xs",grow:!0,noWrap:!0},io.default.createElement(Lo.NativeSelect,{defaultValue:o?.use,name:e.name+"-use","data-testid":"use",onChange:u=>n(u.currentTarget.value),data:["","temp","old","usual","official","nickname","anonymous","maiden"]}),io.default.createElement(Lo.TextInput,{placeholder:"Prefix",name:e.name+"-prefix",defaultValue:o?.prefix?.join(" "),onChange:u=>f(u.currentTarget.value)}),io.default.createElement(Lo.TextInput,{placeholder:"Given",name:e.name+"-given",defaultValue:o?.given?.join(" "),onChange:u=>s(u.currentTarget.value)}),io.default.createElement(Lo.TextInput,{name:e.name+"-family",placeholder:"Family",defaultValue:o?.family,onChange:u=>l(u.currentTarget.value)}),io.default.createElement(Lo.TextInput,{placeholder:"Suffix",name:e.name+"-suffix",defaultValue:o?.suffix?.join(" "),onChange:u=>i(u.currentTarget.value)}))}var Br=require("@mantine/core"),qt=m(require("react"));function xf(e){let[o,t]=(0,qt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return qt.default.createElement(Br.Group,{spacing:"xs",grow:!0,noWrap:!0},qt.default.createElement(Br.TextInput,{placeholder:"System",defaultValue:o?.system,onChange:a=>r({...o,system:a.currentTarget.value})}),qt.default.createElement(Br.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:a=>r({...o,value:a.currentTarget.value})}))}var Pa=require("@mantine/core");var go=m(require("react")),ku=["USD","EUR","CAD","GBP","AUD"];function If(e){let{onChange:o}=e,[t,r]=(0,go.useState)(e.defaultValue),a=(0,go.useCallback)(l=>{r(l),o&&o(l)},[o]),n=(0,go.useCallback)(l=>{a({...t,currency:l.currentTarget.value})},[t,a]),f=(0,go.useCallback)(l=>{a({...t,value:l.currentTarget.valueAsNumber})},[t,a]),s=go.default.createElement(Pa.NativeSelect,{defaultValue:t?.currency,data:ku,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:n});return go.default.createElement(Pa.TextInput,{type:"number",label:e.label,placeholder:e.placeholder??"Value",defaultValue:t?.value?.toString()??"USD",icon:go.default.createElement(mn,{size:14}),rightSection:s,rightSectionWidth:92,onChange:f})}var ps=require("@mantine/core"),Gt=m(require("react"));function xs(e){let[o,t]=(0,Gt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Gt.default.createElement(ps.Group,{spacing:"xs",grow:!0,noWrap:!0},Gt.default.createElement(ro,{name:e.name+".start",placeholder:"Start",defaultValue:o?.start,onChange:a=>r({...o,start:a})}),Gt.default.createElement(ro,{name:e.name+".end",placeholder:"End",defaultValue:o?.end,onChange:a=>r({...o,end:a})}))}var ht=require("@mantine/core"),gt=m(require("react"));function je(e){let[o,t]=(0,gt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return gt.default.createElement(ht.Group,{spacing:"xs",grow:!0,noWrap:!0},gt.default.createElement(ht.NativeSelect,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:o?.comparator,data:["","<","<=",">=",">"],onChange:a=>r({...o,comparator:a.currentTarget.value})}),gt.default.createElement(ht.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name+"-value",type:"number",placeholder:"Value",defaultValue:o?.value,autoFocus:e.autoFocus,step:"any",onWheel:a=>{e.disableWheel&&a.currentTarget.blur()},onChange:a=>{r({...o,value:Bu(a.currentTarget.value)})}}),gt.default.createElement(ht.TextInput,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:o?.unit,onChange:a=>r({...o,unit:a.currentTarget.value})}))}function Bu(e){if(e)return parseFloat(e)}var Is=require("@mantine/core"),Ut=m(require("react"));function Qt(e){let[o,t]=(0,Ut.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Ut.default.createElement(Is.Group,{spacing:"xs",grow:!0,noWrap:!0},Ut.default.createElement(je,{name:e.name+"-low",defaultValue:o?.low,onChange:a=>r({...o,low:a})}),Ut.default.createElement(je,{name:e.name+"-high",defaultValue:o?.high,onChange:a=>r({...o,high:a})}))}var gs=require("@mantine/core"),zt=m(require("react"));function hs(e){let[o,t]=(0,zt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return zt.default.createElement(gs.Group,{spacing:"xs",grow:!0,noWrap:!0},zt.default.createElement(je,{name:e.name+"-numerator",defaultValue:o?.numerator,onChange:a=>r({...o,numerator:a})}),zt.default.createElement(je,{name:e.name+"-denominator",defaultValue:o?.denominator,onChange:a=>r({...o,denominator:a})}))}var Ta=require("@mantine/core"),Cs=require("@medplum/core"),jo=m(require("react"));var Ar=require("@mantine/core"),Fr=require("@medplum/core"),He=m(require("react"));var Au={Observation:"code",User:"email:contains"},Fu=["AccessPolicy","Account","ActivityDefinition","Bot","CapabilityStatement","ClientApplication","CodeSystem","CompartmentDefinition","ConceptMap","EffectEvidenceSynthesis","Endpoint","EventDefinition","Evidence","EvidenceVariable","ExampleScenario","GraphDefinition","HealthcareService","ImplementationGuide","InsurancePlan","Library","Location","Measure","MedicinalProduct","MessageDefinition","NamingSystem","OperationDefinition","Organization","Patient","Person","PlanDefinition","Practitioner","Project","Questionnaire","RelatedPerson","ResearchDefinition","ResearchElementDefinition","RiskEvidenceSynthesis","SearchParameter","StructureDefinition","StructureMap","TerminologyCapabilities","TestScript","UserConfiguration","ValueSet"];function Mu(e){return{value:(0,Fr.getReferenceString)(e),label:(0,Fr.getDisplayString)(e),resource:e}}function Mr(e){let o=T(),t=e.resourceType,[r,a]=(0,He.useState)(),n=te(e.defaultValue,a),f=e.onChange,s=(0,He.useCallback)(async(i,u)=>{let d=Ou(t),c=new URLSearchParams({[d]:i,_count:"10"});return await o.searchResources(t,c,{signal:u})},[o,t]),l=(0,He.useCallback)(i=>{f&&f(i[0])},[f]);return e.defaultValue&&!r&&!n?null:He.default.createElement(it,{name:e.name,itemComponent:wu,defaultValue:n,placeholder:e.placeholder,maxSelectedValues:1,toKey:Fr.getReferenceString,toOption:Mu,loadOptions:s,onChange:l,clearable:!0})}var wu=(0,He.forwardRef)(({label:e,resource:o,...t},r)=>He.default.createElement("div",{ref:r,...t},He.default.createElement(Ar.Group,{noWrap:!0},He.default.createElement(Le,{value:o}),He.default.createElement("div",null,He.default.createElement(Ar.Text,null,e),He.default.createElement(Ar.Text,{size:"xs",color:"dimmed"},o.birthDate)))));function Ou(e){return Au[e]??(Fu.includes(e)?"name":"_id")}function Ct(e){let o=Eu(e.targetTypes),t=Lu(e.defaultValue,o),[r,a]=(0,jo.useState)(e.defaultValue),[n,f]=(0,jo.useState)(t);function s(l){a(l),e.onChange&&e.onChange(l)}return jo.default.createElement(Ta.Group,{spacing:"xs",grow:!0,noWrap:!0},o&&o.length>1&&jo.default.createElement(Ta.NativeSelect,{"data-autofocus":e.autoFocus,"data-testid":"reference-input-resource-type-select",defaultValue:n,autoFocus:e.autoFocus,onChange:l=>f(l.currentTarget.value),data:o}),!o&&jo.default.createElement(Ot,{autoFocus:e.autoFocus,testId:"reference-input-resource-type-input",defaultValue:n,onChange:f,name:e.name+"-resourceType",placeholder:"Resource Type"}),jo.default.createElement(Mr,{resourceType:n,name:e.name+"-id",placeholder:e.placeholder,defaultValue:r,onChange:l=>{s(l?(0,Cs.createReference)(l):void 0)}}))}function Eu(e){if(!(!e||e.length===0||e.length===1&&e[0]==="Resource"))return e}function Lu(e,o){let t=e?.reference?.split("/")[0];if(t)return t;if(o&&o.length>0)return o[0]}var gf=require("@mantine/core");var Ce=m(require("react"));function hf(e){let[o,t]=(0,Ce.useState)(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),r=(0,Ce.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return Ce.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},Ce.default.createElement("colgroup",null,Ce.default.createElement("col",{width:"97%"}),Ce.default.createElement("col",{width:"3%"})),Ce.default.createElement("tbody",null,o.map((n,f)=>Ce.default.createElement("tr",{key:`${f}-${o.length}`},Ce.default.createElement("td",null,Ce.default.createElement(ho,{arrayElement:!0,property:e.property,name:e.name+"."+f,defaultValue:n,onChange:s=>{let l=[...r.current];l[f]=s,a(l)}})),Ce.default.createElement("td",{style:{textAlign:"right"}},Ce.default.createElement(gf.ActionIcon,{title:"Remove",size:"sm",onClick:s=>{Q(s);let l=[...r.current];l.splice(f,1),a(l)}},Ce.default.createElement(Wo,null))))),Ce.default.createElement("tr",null,Ce.default.createElement("td",null),Ce.default.createElement("td",{style:{textAlign:"right"}},Ce.default.createElement(gf.ActionIcon,{title:"Add",size:"sm",color:"green",onClick:n=>{Q(n);let f=[...r.current];f.push(void 0),a(f)}},Ce.default.createElement(kt,null))))))}var ye=require("@mantine/core"),vs=require("@medplum/core"),_=m(require("react"));var Ru=["sun","mon","tue","wed","thu","fri","sat"];function Cf(e){let[o,t]=(0,_.useState)(e.defaultValue),[r,a]=(0,_.useState)(!1),n=(0,_.useRef)();return n.current=o,_.default.createElement(_.default.Fragment,null,_.default.createElement(ye.Group,{spacing:"xs",grow:!0,noWrap:!0},_.default.createElement("span",null,(0,vs.formatTiming)(n.current)||"No repeat"),_.default.createElement(ye.Button,{onClick:()=>a(!0)},"Edit")),_.default.createElement(Nu,{visible:r,defaultValue:n.current,onOk:f=>{e.onChange&&e.onChange(f),t(f),a(!1)},onCancel:()=>a(!1)}))}var ys={repeat:{period:1,periodUnit:"d"}};function Nu(e){let[o,t]=(0,_.useState)(e.defaultValue||ys),r=(0,_.useRef)();r.current=o;function a(i){t({...r.current,event:[i]})}function n(i){t({...r.current,repeat:i})}function f(i){n({...r.current?.repeat,period:i})}function s(i){n({...r.current?.repeat,periodUnit:i})}function l(i){n({...r.current?.repeat,dayOfWeek:i})}return _.default.createElement(ye.Modal,{title:"Timing",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>e.onCancel()},_.default.createElement(ye.Stack,null,_.default.createElement(Xe,{title:"Starts on",htmlFor:"timing-dialog-start"},_.default.createElement(ro,{name:"timing-dialog-start",onChange:i=>a(i)})),_.default.createElement(ye.Switch,{label:"Repeat",checked:!!o.repeat,onChange:i=>n(i.currentTarget.checked?ys.repeat:void 0)}),o.repeat&&_.default.createElement(_.default.Fragment,null,_.default.createElement(Xe,{title:"Repeat every",htmlFor:"timing-dialog-period"},_.default.createElement(ye.Group,{spacing:"xs",grow:!0,noWrap:!0},_.default.createElement(ye.TextInput,{type:"number",step:1,id:"timing-dialog-period",name:"timing-dialog-period",defaultValue:o.repeat.period||1,onChange:i=>f(parseInt(i.currentTarget.value,10)||1)}),_.default.createElement(ye.NativeSelect,{id:"timing-dialog-periodUnit",name:"timing-dialog-periodUnit",defaultValue:o.repeat.periodUnit,onChange:i=>s(i.currentTarget.value),data:[{label:"second",value:"s"},{label:"minute",value:"min"},{label:"hour",value:"h"},{label:"day",value:"d"},{label:"week",value:"wk"},{label:"month",value:"mo"},{label:"year",value:"a"}]}))),o.repeat.periodUnit==="wk"&&_.default.createElement(Xe,{title:"Repeat on"},_.default.createElement(ye.Chip.Group,{multiple:!0,onChange:l},_.default.createElement(ye.Group,{position:"apart",mt:"md",spacing:"xs"},Ru.map(i=>_.default.createElement(ye.Chip,{key:i,value:i,size:"xs",radius:"xl"},i.charAt(0).toUpperCase())))))),_.default.createElement(ye.Group,{position:"right"},_.default.createElement(ye.Button,{onClick:()=>e.onOk(o)},"OK"))))}function ho(e){let o=e.property,t=e.defaultPropertyType??o.type[0].code,r=e.name,a=e.defaultValue;if(o.max>1&&!e.arrayElement)return t===V.PropertyType.Attachment?z.default.createElement(Gn,{name:r,defaultValue:a,onChange:e.onChange}):z.default.createElement(hf,{property:o,name:r,defaultValue:a,onChange:e.onChange});let n=o.type;return n.length>1?z.default.createElement(Ss,{elementDefinitionTypes:n,...e}):z.default.createElement(yf,{elementDefinitionType:n[0],...e})}function Ss(e){let o=e.elementDefinitionTypes,t;e.defaultPropertyType&&(t=o.find(n=>n.code===e.defaultPropertyType)),t||(t=o[0]);let[r,a]=(0,z.useState)(t);return z.default.createElement(ao.Group,{spacing:"xs",grow:!0,noWrap:!0},z.default.createElement(ao.NativeSelect,{style:{width:"200px"},defaultValue:r.code,onChange:n=>{a(o.find(f=>f.code===n.currentTarget.value))},data:o.map(n=>({value:n.code,label:n.code}))}),z.default.createElement(yf,{...e,elementDefinitionType:r,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",(0,V.capitalize)(r.code)))}}))}function yf(e){let o=e.property,t=e.elementDefinitionType.code,r=e.name,a=e.defaultValue,n=o.min!==void 0&&o.min>0;switch(t){case V.PropertyType.SystemString:case V.PropertyType.canonical:case V.PropertyType.string:case V.PropertyType.time:case V.PropertyType.uri:case V.PropertyType.url:return z.default.createElement(ao.TextInput,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)},error:Fe(e.outcome,r)});case V.PropertyType.date:return z.default.createElement(ao.TextInput,{type:"date",id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)},error:Fe(e.outcome,r)});case V.PropertyType.dateTime:case V.PropertyType.instant:return z.default.createElement(ro,{name:r,defaultValue:a,onChange:e.onChange,outcome:e.outcome});case V.PropertyType.decimal:case V.PropertyType.integer:case V.PropertyType.positiveInt:case V.PropertyType.unsignedInt:return z.default.createElement(ao.TextInput,{type:"number",step:t===V.PropertyType.decimal?"any":"1",id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.valueAsNumber)}});case V.PropertyType.code:return z.default.createElement(xr,{binding:o.binding?.valueSet,name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.boolean:return z.default.createElement(ao.Checkbox,{id:r,name:r,"data-testid":r,defaultChecked:!!a,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.checked)}});case V.PropertyType.markdown:return z.default.createElement(ao.Textarea,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)}});case V.PropertyType.Address:return z.default.createElement(_a,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Annotation:return z.default.createElement(Za,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Attachment:return z.default.createElement(Ir,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.CodeableConcept:return z.default.createElement(sf,{binding:o.binding?.valueSet,name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Coding:return z.default.createElement(Dr,{binding:o.binding?.valueSet,name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.ContactDetail:return z.default.createElement(uf,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.ContactPoint:return z.default.createElement(kr,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Extension:return z.default.createElement(ms,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.HumanName:return z.default.createElement(pf,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Identifier:return z.default.createElement(xf,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Money:return z.default.createElement(If,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Period:return z.default.createElement(xs,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Duration:case V.PropertyType.Quantity:return z.default.createElement(je,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Range:return z.default.createElement(Qt,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Ratio:return z.default.createElement(hs,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Reference:return z.default.createElement(Ct,{name:r,defaultValue:a,targetTypes:Hu(o),onChange:e.onChange});case V.PropertyType.Timing:return z.default.createElement(Cf,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Dosage:case V.PropertyType.UsageContext:return z.default.createElement(Wt,{typeName:t,defaultValue:a,onChange:e.onChange,outcome:e.outcome});default:return z.default.createElement(Wt,{typeName:o.type[0].code,defaultValue:a,onChange:e.onChange,outcome:e.outcome})}}function Hu(e){return e?.type?.[0]?.targetProfile?.map(o=>o.split("/").pop())}function Wt(e){let[o,t]=(0,Ro.useState)(e.defaultValue??{});function r(s){t(s),e.onChange&&e.onChange(s)}let a=e.typeName,n=(0,wr.tryGetDataType)(a);if(!n)return Ro.default.createElement("div",null,a,"\xA0not implemented");let f={type:a,value:o};return Ro.default.createElement(bs.Stack,null,Object.entries(n.elements).map(([s,l])=>{if(s==="id"||Ia.includes(s)||!l.type)return null;let[i,u]=$e(f,s),d=l.min!==void 0&&l.min>0;return l.type.length===1&&l.type[0].code==="boolean"?Ro.default.createElement(Pr,{key:s,title:(0,wr.getPropertyDisplayName)(s),description:l.description,htmlFor:s},Ro.default.createElement(ho,{property:l,name:s,defaultValue:i,defaultPropertyType:u,outcome:e.outcome,onChange:(c,I)=>{r(Tr(o,s,I??s,l,c))}})):Ro.default.createElement(Xe,{key:s,title:(0,wr.getPropertyDisplayName)(s),description:l.description,withAsterisk:d,htmlFor:s,outcome:e.outcome},Ro.default.createElement(ho,{property:l,name:s,defaultValue:i,defaultPropertyType:u,onChange:(c,I)=>{r(Tr(o,s,I??s,l,c))}}))}))}var No=require("@mantine/core"),se=m(require("react"));function Ps(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function Da(){let e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}var Vu=(0,No.createStyles)(e=>({table:{width:350,"& th":{fontWeight:"normal",fontSize:11,padding:8,textAlign:"center"},"& td":{padding:"2px 4px"},"& td button":{width:44,height:44,color:e.colors[e.primaryColor][5],fontSize:16,fontWeight:500,textAlign:"center",padding:0,backgroundColor:e.colors[e.primaryColor][0],border:0,borderRadius:"50%",cursor:"pointer"},"& td button:hover":{backgroundColor:e.colors[e.primaryColor][1]},"& td button:disabled":{backgroundColor:"transparent",cursor:"default",color:e.colors.gray[4],fontWeight:"normal"}}}));function vf(e){let{classes:o}=Vu(),{onChangeMonth:t,onClick:r}=e,[a,n]=(0,se.useState)(Da);function f(l){n(i=>{let u=new Date(i.getTime());return u.setMonth(i.getMonth()+l),t(u),u})}let s=(0,se.useMemo)(()=>qu(a,e.slots),[a,e.slots]);return se.default.createElement("div",null,se.default.createElement(No.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},se.default.createElement("p",{style:{flex:1}},Ps(a)),se.default.createElement(No.Group,{position:"right",spacing:"xs"},se.default.createElement(No.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>f(-1)},"<"),se.default.createElement(No.Button,{variant:"outline","aria-label":"Next month",onClick:()=>f(1)},">"))),se.default.createElement("table",{className:o.table},se.default.createElement("thead",null,se.default.createElement("tr",null,se.default.createElement("th",null,"SUN"),se.default.createElement("th",null,"MON"),se.default.createElement("th",null,"TUE"),se.default.createElement("th",null,"WED"),se.default.createElement("th",null,"THU"),se.default.createElement("th",null,"FRI"),se.default.createElement("th",null,"SAT"))),se.default.createElement("tbody",null,s.map((l,i)=>se.default.createElement("tr",{key:"week-"+i},l.map((u,d)=>se.default.createElement("td",{key:"day-"+d},u&&se.default.createElement(No.Button,{disabled:!u.available,onClick:()=>r(u.date)},u.date.getDate()))))))))}function qu(e,o){let t=new Date(e.getFullYear(),e.getMonth()),r=[],a=[];for(let n=0;n<t.getDay();n++)a.push(void 0);for(;t.getMonth()===e.getMonth();)a.push({date:new Date(t.getTime()),available:Gu(t,o)}),t.getDay()===6&&(r.push(a),a=[]),t.setDate(t.getDate()+1);if(t.getDay()!==0){for(let n=t.getDay();n<7;n++)a.push(void 0);r.push(a)}return r}function Gu(e,o){for(let t of o){let r=new Date(t.start);if(r.getFullYear()===e.getFullYear()&&r.getMonth()===e.getMonth()&&r.getDate()===e.getDate())return!0}return!1}var Hs=m(require("react"));var ie=require("@mantine/core"),$t=require("@mantine/notifications"),_o=require("@medplum/core");var S=m(require("react"));var oe=require("@mantine/core"),no=require("@medplum/core"),h=m(require("react"));var Xt=require("@mantine/core"),Sf=m(require("react")),Uu=(0,Xt.createStyles)(e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));function bf({value:e}){let{classes:o}=Uu();return e?Sf.default.createElement(Xt.Stack,{justify:"flex-start",spacing:"xs"},e.map(t=>t.text&&Sf.default.createElement(Xt.Blockquote,{key:`note-${t.text}`,classNames:{cite:o.noteCite,body:o.noteBody,root:o.noteRoot},cite:t.authorReference?.display||t.authorString,icon:null},t.text))):null}var Ds=require("@mantine/core"),ka=m(require("react"));var Ts=require("@mantine/core"),Jt=require("@medplum/core"),Or=m(require("react"));function uo(e){let{value:o,link:t,...r}=e,[a,n]=(0,Or.useState)(),f=te(o,n),s;if(a&&!(0,Jt.isOk)(a))s=`[${(0,Jt.normalizeErrorString)(a)}]`;else if(f)s=(0,Jt.getDisplayString)(f);else return null;return t?Or.default.createElement(ke,{to:o,...r},s):Or.default.createElement(Ts.Text,{component:"span",...r},s)}function Ho(e){return ka.default.createElement(Ds.Group,{spacing:"xs"},ka.default.createElement(Le,{size:24,radius:12,value:e.value,link:e.link}),ka.default.createElement(uo,{value:e.value,link:e.link}))}var ks=require("@mantine/core"),Bs=m(require("react")),Qu={draft:"blue",active:"blue","on-hold":"yellow",revoked:"red",completed:"green","entered-in-error":"red",unknown:"gray",retired:"gray",registered:"blue",preliminary:"blue",final:"green",amended:"yellow",corrected:"yellow",cancelled:"red",requested:"blue",received:"blue",accepted:"blue",rejected:"red",ready:"blue","in-progress":"blue",failed:"red",proposed:"blue",pending:"blue",booked:"blue",arrived:"blue",fulfilled:"green",noshow:"red","checked-in":"blue",waitlist:"gray",routine:"gray",urgent:"red",asap:"red",stat:"red"};function Er(e){return Bs.default.createElement(ks.Badge,{color:Qu[e.status]},e.status)}var As=(0,oe.createStyles)(e=>({table:{border:`0.1px solid ${e.colors.gray[5]}`,borderCollapse:"collapse","& td, & th":{border:`0.1px solid ${e.colors.gray[5]}`,padding:4}},criticalRow:{background:e.colorScheme==="dark"?e.colors.red[7]:e.colors.red[1],border:`0.1px solid ${e.colors.red[5]}`,color:e.colors.red[5],fontWeight:500,"& td":{border:`0.1px solid ${e.colors.red[5]}`}},noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));Ba.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};function Ba(e){let o=T(),t=te(e.value),[r,a]=(0,h.useState)();if((0,h.useEffect)(()=>{t?.specimen&&Promise.allSettled(t.specimen.map(f=>o.readReference(f))).then(f=>f.filter(s=>s.status==="fulfilled").map(s=>s.value)).then(a).catch(console.error)},[o,t]),!t)return null;let n=r?.flatMap(f=>f.note||[])||[];if(t.presentedForm&&t.presentedForm.length>0){let f=t.presentedForm[0];f.contentType?.startsWith("text/plain")&&f.data&&n.push({text:window.atob(f.data)})}return h.default.createElement(oe.Stack,null,h.default.createElement(oe.Title,null,"Diagnostic Report"),h.default.createElement(zu,{value:t}),r&&!e.hideSpecimenInfo&&Wu(r),t.result&&h.default.createElement(Fs,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&h.default.createElement(bf,{value:n}))}function zu({value:e}){return h.default.createElement(oe.Group,{mt:"md",spacing:30},e.subject&&h.default.createElement("div",null,h.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),h.default.createElement(oe.Text,null,h.default.createElement(Ho,{value:e.subject,link:!0}))),e.resultsInterpreter?.map(o=>h.default.createElement("div",{key:o.reference},h.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),h.default.createElement(oe.Text,null,h.default.createElement(Ho,{value:o,link:!0})))),e.performer?.map(o=>h.default.createElement("div",{key:o.reference},h.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Performer"),h.default.createElement(oe.Text,null,h.default.createElement(Ho,{value:o,link:!0})))),e.issued&&h.default.createElement("div",null,h.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),h.default.createElement(oe.Text,null,(0,no.formatDateTime)(e.issued))),e.status&&h.default.createElement("div",null,h.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),h.default.createElement(oe.Text,null,(0,no.capitalize)(e.status))))}function Wu(e){return h.default.createElement(oe.Stack,{spacing:"xs"},h.default.createElement(oe.Title,{order:2,size:"h6"},"Specimens"),h.default.createElement(oe.List,{type:"ordered"},e?.map(o=>h.default.createElement(oe.List.Item,{ml:"sm",key:`specimen-${o.id}`},h.default.createElement(oe.Group,{spacing:20},h.default.createElement(oe.Group,{spacing:5},h.default.createElement(oe.Text,{fw:500},"Collected:")," ",(0,no.formatDateTime)(o.collection?.collectedDateTime)),h.default.createElement(oe.Group,{spacing:5},h.default.createElement(oe.Text,{fw:500},"Received:")," ",(0,no.formatDateTime)(o.receivedTime)))))))}function Fs(e){let{classes:o}=As();return h.default.createElement("table",{className:o.table},h.default.createElement("thead",null,h.default.createElement("tr",null,h.default.createElement("th",null,"Test"),h.default.createElement("th",null,"Value"),h.default.createElement("th",null,"Reference Range"),h.default.createElement("th",null,"Interpretation"),h.default.createElement("th",null,"Category"),h.default.createElement("th",null,"Performer"),h.default.createElement("th",null,"Status"))),h.default.createElement("tbody",null,h.default.createElement(Ms,{value:e.value,ancestorIds:e.ancestorIds,hideObservationNotes:e.hideObservationNotes})))}function Ms(e){return h.default.createElement(h.default.Fragment,null,e.value?.map(o=>h.default.createElement(Xu,{key:`obs-${(0,no.isReference)(o)?o.reference:o.id}`,value:o,ancestorIds:e.ancestorIds,hideObservationNotes:e.hideObservationNotes})))}function Xu(e){let{classes:o,cx:t}=As(),r=te(e.value);if(!r||e.ancestorIds?.includes(r.id))return null;let a=!e.hideObservationNotes&&r.note,n=$u(r);return h.default.createElement(h.default.Fragment,null,h.default.createElement("tr",{className:t({[o.criticalRow]:n})},h.default.createElement("td",{rowSpan:a?2:1},h.default.createElement(ke,{to:r},h.default.createElement(pt,{value:r.code}))),h.default.createElement("td",null,h.default.createElement(Ju,{value:r})),h.default.createElement("td",null,h.default.createElement(Ku,{value:r.referenceRange})),h.default.createElement("td",null,r.interpretation&&r.interpretation.length>0&&h.default.createElement(pt,{value:r.interpretation[0]})),h.default.createElement("td",null,r.category&&r.category.length>0&&h.default.createElement(h.default.Fragment,null,r.category.map(f=>h.default.createElement("div",{key:`category-${(0,no.formatCodeableConcept)(f)}`},h.default.createElement(pt,{value:f}))))),h.default.createElement("td",null,r.performer?.map(f=>h.default.createElement(Jo,{key:f.reference,value:f}))),h.default.createElement("td",null,r.status&&h.default.createElement(Er,{status:r.status}))),r.hasMember&&h.default.createElement(Ms,{value:r.hasMember,ancestorIds:e.ancestorIds?[...e.ancestorIds,r.id]:[r.id],hideObservationNotes:e.hideObservationNotes}),a&&h.default.createElement("tr",null,h.default.createElement("td",{colSpan:6},h.default.createElement(bf,{value:r.note}))))}function Ju(e){let o=e.value;return h.default.createElement(h.default.Fragment,null,(0,no.formatObservationValue)(o))}function Ku(e){let o=e.value&&e.value.length>0&&e.value[0];return o?o.text?h.default.createElement(h.default.Fragment,null,o.text):h.default.createElement(vr,{value:o}):null}function $u(e){let o=e.interpretation?.[0]?.coding?.[0]?.code;return o==="AA"||o==="LL"||o==="HH"||o==="A"}var Os=require("@mantine/core"),Co=require("@medplum/core"),pe=m(require("react"));var ju=(0,Os.createStyles)(e=>({root:{borderCollapse:"collapse",width:"100%","& tr":{borderTop:`0.1px solid ${e.colors.gray[3]}`},"& th, & td":{padding:`${e.spacing.sm} ${e.spacing.sm}`,verticalAlign:"top"}},removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function Es(e){let{classes:o}=ju(),t=T(),[r,a]=(0,pe.useState)(!1);if((0,pe.useEffect)(()=>{t.requestSchema(e.original.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.original.resourceType]),!r)return null;let n=(0,Co.getDataType)(e.original.resourceType);return pe.default.createElement("table",{className:o.root},pe.default.createElement("colgroup",null,pe.default.createElement("col",{style:{width:"30%"}}),pe.default.createElement("col",{style:{width:"35%"}}),pe.default.createElement("col",{style:{width:"35%"}})),pe.default.createElement("thead",null,pe.default.createElement("tr",null,pe.default.createElement("th",null,"Property"),pe.default.createElement("th",null,"Before"),pe.default.createElement("th",null,"After"))),pe.default.createElement("tbody",null,Object.entries(n.elements).map(([f,s])=>{if(f==="id"||f==="meta")return null;let[l,i]=$e((0,Co.toTypedValue)(e.original),f),[u,d]=$e((0,Co.toTypedValue)(e.revised),f);return ws(l)&&ws(u)||(0,Co.stringify)(l)===(0,Co.stringify)(u)?null:pe.default.createElement("tr",{key:f},pe.default.createElement("td",null,(0,Co.getPropertyDisplayName)(f)),pe.default.createElement("td",{className:o.removed},pe.default.createElement(we,{property:s,propertyType:i,value:l,ignoreMissingValues:!0})),pe.default.createElement("td",{className:o.added},pe.default.createElement(we,{property:s,propertyType:d,value:u,ignoreMissingValues:!0})))})))}function ws(e){return!e||Array.isArray(e)&&e.length===0||typeof e=="object"&&Object.keys(e).length===0}var Kt=m(require("react"));function Aa(e){let o=T(),t=te(e.value),[r,a]=(0,Kt.useState)(!1);return(0,Kt.useEffect)(()=>{t&&o.requestSchema(t.resourceType).then(()=>a(!0)).catch(console.log)},[o,t]),!r||!t?null:Kt.default.createElement(Ht,{value:{type:t.resourceType,value:e.forceUseInput?e.value:t},ignoreMissingValues:e.ignoreMissingValues})}var co=require("@mantine/core"),Fa=require("@medplum/core");var ve=m(require("react"));function Pf(e){return ve.default.createElement(wo,null,e.children)}function Vo(e){let{resource:o,profile:t,padding:r,popupMenuItems:a,...n}=e,f=t??o.meta?.author,s=e.dateTime??o.meta?.lastUpdated;return ve.default.createElement(ct,{"data-testid":"timeline-item",fill:!0,...n},ve.default.createElement(co.Group,{position:"apart",spacing:8,mx:"xs",my:"sm"},ve.default.createElement(Le,{value:f,link:!0,size:"md"}),ve.default.createElement("div",{style:{flex:1}},ve.default.createElement(co.Text,{size:"sm"},ve.default.createElement(uo,{color:"dark",weight:500,value:f,link:!0})),ve.default.createElement(co.Text,{size:"xs"},ve.default.createElement(ke,{color:"dimmed",to:e.resource},(0,Fa.formatDateTime)(s)),ve.default.createElement(co.Text,{component:"span",color:"dimmed",mx:8},"\xB7"),ve.default.createElement(ke,{color:"dimmed",to:e.resource},e.resource.resourceType))),a&&ve.default.createElement(co.Menu,{position:"bottom-end",shadow:"md",width:200},ve.default.createElement(co.Menu.Target,null,ve.default.createElement(co.ActionIcon,{radius:"xl","aria-label":`Actions for ${(0,Fa.getReferenceString)(e.resource)}`},ve.default.createElement(pn,null))),a)),ve.default.createElement(lt,null,r&&ve.default.createElement("div",{style:{padding:"0 16px 16px 16px"}},e.children),!r&&ve.default.createElement(ve.default.Fragment,null,e.children)))}function Tf(e,o){e.sort((t,r)=>{let a=Ls(t,o),n=Ls(r,o);return a>n?1:a<n?-1:Rs(t,o)-Rs(r,o)})}function Ls(e,o){if(!Ns(e,o)){let t=e.priority;if(typeof t=="string")return{stat:4,asap:3,urgent:2}[t]??0}return 0}function Rs(e,o){if(!Ns(e,o)){if(e.resourceType==="Communication"&&e.sent)return new Date(e.sent).getTime();if((e.resourceType==="DiagnosticReport"||e.resourceType==="Media"||e.resourceType==="Observation")&&e.issued)return new Date(e.issued).getTime();if(e.resourceType==="DocumentReference"&&e.date)return new Date(e.date).getTime()}let t=e.meta?.lastUpdated;return t?new Date(t).getTime():0}function Ns(e,o){return!!o&&e.resourceType===o.resourceType&&e.id===o.id}var _u=(0,ie.createStyles)(e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}}));function qo(e){let o=T(),t=To(),r=o.getProfile(),a=(0,S.useRef)(null),n=te(e.value),[f,s]=(0,S.useState)(),[l,i]=(0,S.useState)([]),u=e.loadTimelineResources,d=(0,S.useRef)(l);d.current=l;let c=(0,S.useCallback)(v=>{Tf(v,n),v.reverse(),i(v)},[n]),I=(0,S.useCallback)(v=>{let U=[];for(let fo of v){if(fo.status!=="fulfilled")continue;let Ye=fo.value;if(Ye.type==="history"&&s(Ye),Ye.entry)for(let D of Ye.entry)U.push(D.resource)}c(U)},[c]),P=(0,S.useCallback)(v=>c([...d.current,v]),[c]),B=(0,S.useCallback)(()=>{let v,U;"resourceType"in e.value?(v=e.value.resourceType,U=e.value.id):[v,U]=e.value.reference?.split("/"),u(o,v,U).then(I).catch(console.log)},[o,e.value,u,I]);(0,S.useEffect)(()=>B(),[B]);function k(v){!n||!e.createCommunication||o.createResource(e.createCommunication(n,r,v)).then(U=>P(U)).catch(console.log)}function A(v){!n||!e.createMedia||o.createResource(e.createMedia(n,r,v)).then(U=>P(U)).then(()=>(0,$t.updateNotification)({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:S.default.createElement(sr,{size:16}),autoClose:2e3})).catch(U=>(0,$t.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,_o.normalizeErrorString)(U),icon:S.default.createElement(In,{size:16}),autoClose:2e3}))}function M(v,U){return o.updateResource({...v,priority:U})}function g(v){M(v,"stat").then(B).catch(console.log)}function R(v){M(v,"routine").then(B).catch(console.log)}function C(v){t(`/${v.resourceType}/${v.id}`)}function L(v){t(`/${v.resourceType}/${v.id}/edit`)}function ge(v){t(`/${v.resourceType}/${v.id}/delete`)}function Te(v){t(`/${v.resourceType}/${v.id}/_history/${v.meta?.versionId}`)}function bo(){(0,$t.showNotification)({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})}function nt(v){(0,$t.updateNotification)({id:"upload-notification",loading:!0,title:"Uploading...",message:ad(v),autoClose:!1,withCloseButton:!1})}return n?S.default.createElement(Pf,null,e.createCommunication&&S.default.createElement(ct,null,S.default.createElement(le,{testid:"timeline-form",onSubmit:v=>{k(v.text);let U=a.current;U&&(U.value="",U.focus())}},S.default.createElement(ie.Group,{spacing:"xs",noWrap:!0,style:{width:"100%"}},S.default.createElement(Le,{value:r}),S.default.createElement(ie.TextInput,{name:"text",ref:a,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),S.default.createElement(ie.ActionIcon,{type:"submit",radius:"xl",color:"blue",variant:"filled"},S.default.createElement(vn,{size:16})),S.default.createElement(dt,{onUpload:A,onUploadStart:bo,onUploadProgress:nt},v=>S.default.createElement(ie.ActionIcon,{...v,radius:"xl",color:"blue",variant:"filled"},S.default.createElement(ir,{size:16})))))),l.map(v=>{if(!v)return null;let U=`${v.resourceType}/${v.id}/${v.meta?.versionId}`;if(v.resourceType===n.resourceType&&v.id===n.id)return S.default.createElement(Zu,{key:U,history:f,resource:v,onDetails:Te});switch(v.resourceType){case"AuditEvent":return S.default.createElement(td,{key:U,resource:v,onDetails:C});case"Communication":return S.default.createElement(ed,{key:U,resource:v,onPin:v.priority!=="stat"?g:void 0,onUnpin:v.priority==="stat"?R:void 0,onDetails:C,onEdit:L,onDelete:ge});case"DiagnosticReport":return S.default.createElement(rd,{key:U,resource:v,onDetails:C,onEdit:L,onDelete:ge});case"Media":return S.default.createElement(od,{key:U,resource:v,onDetails:C,onEdit:L,onDelete:ge});default:return S.default.createElement(Vo,{key:U,resource:v,padding:!0},S.default.createElement(Aa,{value:v,ignoreMissingValues:!0}))}})):S.default.createElement(ie.Center,{style:{width:"100%",height:"100%"}},S.default.createElement(ie.Loader,null))}function jt(e){return S.default.createElement(ie.Menu.Dropdown,null,S.default.createElement(ie.Menu.Label,null,"Resource"),e.onPin&&S.default.createElement(ie.Menu.Item,{icon:S.default.createElement(Sn,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${(0,_o.getReferenceString)(e.resource)}`},"Pin"),e.onUnpin&&S.default.createElement(ie.Menu.Item,{icon:S.default.createElement(bn,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${(0,_o.getReferenceString)(e.resource)}`},"Unpin"),e.onDetails&&S.default.createElement(ie.Menu.Item,{icon:S.default.createElement(Cn,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${(0,_o.getReferenceString)(e.resource)}`},"Details"),e.onEdit&&S.default.createElement(ie.Menu.Item,{icon:S.default.createElement(xn,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${(0,_o.getReferenceString)(e.resource)}`},"Edit"),e.onDelete&&S.default.createElement(S.default.Fragment,null,S.default.createElement(ie.Menu.Divider,null),S.default.createElement(ie.Menu.Label,null,"Danger zone"),S.default.createElement(ie.Menu.Item,{color:"red",icon:S.default.createElement(cr,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${(0,_o.getReferenceString)(e.resource)}`},"Delete")))}function Zu(e){let o=Yu(e.history,e.resource);return o?S.default.createElement(Vo,{resource:e.resource,padding:!0,popupMenuItems:S.default.createElement(jt,{...e})},S.default.createElement(Es,{original:o,revised:e.resource})):S.default.createElement(Vo,{resource:e.resource,padding:!0,popupMenuItems:S.default.createElement(jt,{...e})},S.default.createElement("h3",null,"Created"),S.default.createElement(Aa,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0}))}function Yu(e,o){let t=e.entry,r=t.findIndex(a=>a.resource?.meta?.versionId===o.meta?.versionId);if(!(r>=t.length-1))return t[r+1].resource}function ed(e){let{classes:o}=_u(),r=!e.resource.priority||e.resource.priority==="routine"?void 0:o.pinnedComment;return S.default.createElement(Vo,{resource:e.resource,profile:e.resource.sender,dateTime:e.resource.sent,padding:!0,className:r,popupMenuItems:S.default.createElement(jt,{...e})},S.default.createElement("p",null,e.resource.payload?.[0]?.contentString))}function od(e){let o=e.resource.content?.contentType,t=o&&!o.startsWith("image/")&&!o.startsWith("video/")&&o!=="application/pdf";return S.default.createElement(Vo,{resource:e.resource,padding:!!t,popupMenuItems:S.default.createElement(jt,{...e})},S.default.createElement(so,{value:e.resource.content}))}function td(e){return S.default.createElement(Vo,{resource:e.resource,padding:!0,popupMenuItems:S.default.createElement(jt,{...e})},S.default.createElement(ie.ScrollArea,null,S.default.createElement("pre",null,e.resource.outcomeDesc)))}function rd(e){return S.default.createElement(Vo,{resource:e.resource,padding:!0,popupMenuItems:S.default.createElement(jt,{...e})},S.default.createElement(Ba,{value:e.resource}))}function ad(e){if(e.lengthComputable){let o=100*e.loaded/e.total;return`Uploaded: ${Df(e.loaded)} / ${Df(e.total)} ${o.toFixed(2)}%`}return`Uploaded: ${Df(e.loaded)}`}function Df(e){if(e===0)return"0.00 B";let o=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,o)).toFixed(2)+" "+" KMGTP".charAt(o)+"B"}function nd(e){return Hs.default.createElement(qo,{value:e.resource,loadTimelineResources:async(o,t,r)=>{let a=`${t}/${r}`,n=100;return Promise.allSettled([o.readHistory(t,r),o.search("Task",{_filter:`based-on eq ${a} or focus eq ${a} or subject eq ${a}`,_count:n})])}})}var Lr=require("@medplum/core"),Vs=m(require("react"));function fd(e){return Vs.default.createElement(qo,{value:e.encounter,loadTimelineResources:async(o,t,r)=>Promise.allSettled([o.readHistory("Encounter",r),o.search("Communication","encounter=Encounter/"+r),o.search("Media","encounter=Encounter/"+r)]),createCommunication:(o,t,r)=>({resourceType:"Communication",status:"completed",encounter:(0,Lr.createReference)(o),subject:o.subject,sender:(0,Lr.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",encounter:(0,Lr.createReference)(o),subject:o.subject,operator:(0,Lr.createReference)(t),issued:new Date().toISOString(),content:r})})}var rr=require("@mantine/core"),Zs=require("@medplum/core"),Z=m(require("react"));var qs=require("@medplum/core"),Gs=m(require("react"));function Us(e){let o;try{o=(0,qs.evalFhirPath)(e.path,e.resource)}catch(t){return console.warn("FhirPathDisplay:",t),null}if(o.length>1)throw new Error(`Component "path" for "FhirPathDisplay" must resolve to a single element. Received ${o.length} elements [${JSON.stringify(o,null,2)}]`);return Gs.default.createElement(we,{value:o[0]||"",propertyType:e.propertyType})}var W=require("@mantine/core"),tr=require("@medplum/core");var y=m(require("react"));var Zo=require("@mantine/core"),yt=m(require("react"));function zs(e){return yt.default.createElement(Zo.Modal,{title:"Export",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},yt.default.createElement(Zo.Box,{display:"flex",sx:{justifyContent:"space-between"}},e.exportCsv&&yt.default.createElement(Qs,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&yt.default.createElement(Qs,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})),yt.default.createElement(Zo.Text,{sx:{marginTop:"10px",marginLeft:"2px"}},"Limited to 1000 records"))}function Qs(e){return yt.default.createElement(Zo.Button,{onClick:()=>{e.exportLogic(),e.onCancel()}},`Export as ${e.text}`)}var Yo=require("@mantine/core"),Yt=require("@medplum/core"),K=m(require("react"));var F=require("@medplum/core"),Rr=m(require("react"));var ld={string:[F.Operator.EQUALS,F.Operator.NOT,F.Operator.CONTAINS,F.Operator.EXACT],fulltext:[F.Operator.EQUALS,F.Operator.NOT,F.Operator.CONTAINS,F.Operator.EXACT],token:[F.Operator.EQUALS,F.Operator.NOT],reference:[F.Operator.EQUALS,F.Operator.NOT],numeric:[F.Operator.EQUALS,F.Operator.NOT_EQUALS,F.Operator.GREATER_THAN,F.Operator.LESS_THAN,F.Operator.GREATER_THAN_OR_EQUALS,F.Operator.LESS_THAN_OR_EQUALS],quantity:[F.Operator.EQUALS,F.Operator.NOT_EQUALS,F.Operator.GREATER_THAN,F.Operator.LESS_THAN,F.Operator.GREATER_THAN_OR_EQUALS,F.Operator.LESS_THAN_OR_EQUALS],date:[F.Operator.EQUALS,F.Operator.NOT_EQUALS,F.Operator.GREATER_THAN,F.Operator.LESS_THAN,F.Operator.GREATER_THAN_OR_EQUALS,F.Operator.LESS_THAN_OR_EQUALS,F.Operator.STARTS_AFTER,F.Operator.ENDS_BEFORE,F.Operator.APPROXIMATELY],datetime:[F.Operator.EQUALS,F.Operator.NOT_EQUALS,F.Operator.GREATER_THAN,F.Operator.LESS_THAN,F.Operator.GREATER_THAN_OR_EQUALS,F.Operator.LESS_THAN_OR_EQUALS,F.Operator.STARTS_AFTER,F.Operator.ENDS_BEFORE,F.Operator.APPROXIMATELY]},sd={eq:"equals",ne:"not equals",gt:"greater than",lt:"less than",ge:"greater than or equals",le:"less than or equals",sa:"starts after",eb:"ends before",ap:"approximately",contains:"contains",exact:"exact",text:"text",not:"not",above:"above",below:"below",in:"in","not-in":"not in","of-type":"of type",missing:"missing",identifier:"identifier",iterate:"iterate"};function _t(e,o){return{...e,filters:o,offset:0,name:void 0}}function id(e){return _t(e,[])}function Nr(e,o){return _t(e,(e.filters??[]).filter(t=>t.code!==o))}function vt(e,o,t,r,a){a&&(e=Nr(e,o));let n=[];return e.filters&&n.push(...e.filters),n.push({code:o,operator:t,value:r??""}),_t(e,n)}function ud(e,o){if(e.fields?.includes(o))return e;let t=[];return e.fields&&t.push(...e.fields),t.push(o),{...e,fields:t,name:void 0}}function kf(e,o){if(!e.filters)return e;let t=[...e.filters];return t.splice(o,1),{...e,filters:t,name:void 0}}function Bf(e,o){return Mf(e,o,-1)}function Af(e,o){return Mf(e,o,0)}function Ff(e,o){return Mf(e,o,1)}function Mf(e,o,t){let r=new Date;r.setDate(r.getDate()+t),r.setHours(0,0,0,0);let a=new Date(r.getTime());return a.setDate(a.getDate()+1),a.setTime(a.getTime()-1),Ma(e,o,r,a)}function wf(e,o){return Lf(e,o,-1)}function Of(e,o){return Lf(e,o,0)}function Ef(e,o){return Lf(e,o,1)}function Lf(e,o,t){let r=new Date;r.setMonth(r.getMonth()+t),r.setDate(1),r.setHours(0,0,0,0);let a=new Date(r.getTime());return a.setMonth(a.getMonth()+1),a.setDate(1),a.setHours(0,0,0,0),a.setTime(a.getTime()-1),Ma(e,o,r,a)}function Rf(e,o){let t=new Date;return t.setMonth(0),t.setDate(1),t.setHours(0,0,0,0),Ma(e,o,t,new Date)}function Ma(e,o,t,r){return e=Nr(e,o),e=Ws(e,o,F.Operator.GREATER_THAN_OR_EQUALS,t),e=Ws(e,o,F.Operator.LESS_THAN_OR_EQUALS,r),e}function Ws(e,o,t,r){return vt(e,o,t,r.toISOString())}function wa(e,o,t=!0){return vt(e,o,F.Operator.MISSING,t.toString())}function Xs(e,o){return e.offset===o?e:{...e,offset:o,name:void 0}}function Nf(e,o){let t=e.count??F.DEFAULT_SEARCH_COUNT,r=(o-1)*t;return Xs(e,r)}function Oa(e,o,t){return o===Hf(e)&&t!==void 0&&t===Vf(e)?e:{...e,sortRules:[{code:o,descending:!!t}],name:void 0}}function dd(e,o){let t=!1;return Hf(e)===o&&(t=!Vf(e)),Oa(e,o,t)}function Hf(e){let o=e.sortRules;if(!o||o.length===0)return;let t=o[0].code;return t.startsWith("-")?t.substr(1):t}function Vf(e){let o=e.sortRules;return!o||o.length===0?!1:!!o[0].descending}function qf(e){return ld[e.type]}function Zt(e){return sd[e]??""}function Ve(e){let o=e;return o.includes(".")&&(o=o.split(".").pop()),o==="id"||o==="Id"?"ID":o==="versionId"?"Version ID":(o=o.replace("[x]",""),o=o.replace(/([A-Z])/g," $1"),o=o.replace(/[-_]/g," "),o=o.replace(/\s+/g," "),o=o.trim(),o.split(/\s/).map(F.capitalize).join(" "))}function Gf(e,o){let t=o.name;return t==="id"?e.id:t==="meta.versionId"?e.meta?.versionId:t==="_lastUpdated"?(0,F.formatDateTime)(e.meta?.lastUpdated):o.elementDefinition&&`${e.resourceType}.${o.name}`===o.elementDefinition.path?cd(e,o.elementDefinition):o.searchParams&&o.searchParams.length===1&&o.name===o.searchParams[0].code?md(e,o.searchParams[0]):null}function cd(e,o){let t=o.path?.split(".")?.pop()?.replaceAll("[x]","")??"",[r,a]=$e({type:e.resourceType,value:e},t);return r?Rr.default.createElement(we,{property:o,propertyType:a,value:r,maxWidth:200,ignoreMissingValues:!0,link:!1}):null}function md(e,o){let t=(0,F.evalFhirPathTyped)(o.expression,[{type:e.resourceType,value:e}]);return!t||t.length===0?null:Rr.default.createElement(Rr.default.Fragment,null,t.map((r,a)=>Rr.default.createElement(we,{key:`${a}-${t.length}`,propertyType:r.type,value:r.value,maxWidth:200,ignoreMissingValues:!0,link:!1})))}function Uf(e){let[o,t]=(0,K.useState)({search:JSON.parse((0,Yt.stringify)(e.search))}),r=(0,K.useRef)(null),a=(0,K.useRef)(null);(0,K.useEffect)(()=>{t({search:e.search})},[e.search]);function n(g){g.key==="Enter"&&i()}function f(){i()}function s(g){g.key==="Enter"&&u()}function l(){u()}function i(){let g=o.search.fields??[],R=r.current?.value;if(R){let C=[...g,R];t({search:{...o.search,fields:C}})}}function u(){let g=o.search.fields??[],R=a.current?.value;if(R){let C=[...g];C.splice(C.indexOf(R),1),t({search:{...o.search,fields:C}})}}function d(){let g=o.search.fields??[],R=a.current?.value;if(!R)return;let C=[...g],L=C.indexOf(R);L<=0||(I(C,L,L-1),t({search:{...o.search,fields:C}}))}function c(){let g=o.search.fields??[],R=a.current?.value;if(!R)return;let C=[...g],L=C.indexOf(R);L>=C.length-1||(I(C,L,L+1),t({search:{...o.search,fields:C}}))}function I(g,R,C){let L=g[R];g[R]=g[C],g[C]=L}if(!e.visible)return null;let P=e.search.resourceType,B=(0,Yt.getDataType)(P),k=(0,Yt.getSearchParameters)(P),A=o.search.fields??[],M=pd(B,k).filter(g=>!A.includes(g)).sort((g,R)=>g.localeCompare(R));return K.default.createElement(Yo.Modal,{title:"Fields",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},K.default.createElement("div",null,K.default.createElement("table",{style:{margin:"auto"}},K.default.createElement("thead",null,K.default.createElement("tr",null,K.default.createElement("th",{colSpan:2,align:"center"},"Available"),K.default.createElement("th",{colSpan:2,align:"center"},"Selected"))),K.default.createElement("tbody",null,K.default.createElement("tr",null,K.default.createElement("td",{colSpan:2,align:"center"},K.default.createElement("select",{ref:r,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:g=>n(g),onDoubleClick:()=>f(),"data-testid":"available"},M.map(g=>K.default.createElement("option",{key:g,value:g},Ve(g))))),K.default.createElement("td",{colSpan:2,align:"center"},K.default.createElement("select",{ref:a,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:g=>s(g),onDoubleClick:()=>l(),"data-testid":"selected"},A.map(g=>K.default.createElement("option",{key:g,value:g},Ve(g))))))),K.default.createElement("tfoot",null,K.default.createElement("tr",null,K.default.createElement("td",{align:"center"},K.default.createElement(Yo.Button,{compact:!0,variant:"outline",onClick:i},"Add")),K.default.createElement("td",{align:"center"},K.default.createElement(Yo.Button,{compact:!0,variant:"outline",onClick:u},"Remove")),K.default.createElement("td",{align:"center"},K.default.createElement(Yo.Button,{compact:!0,variant:"outline",onClick:d},"Up")),K.default.createElement("td",{align:"center"},K.default.createElement(Yo.Button,{compact:!0,variant:"outline",onClick:c},"Down")))))),K.default.createElement(Yo.Button,{onClick:()=>e.onOk(o.search)},"OK"))}function pd(e,o){let t=[],r=new Set,a=new Set;for(let n of Object.keys(e.elements))t.push(n),r.add(n.toLowerCase()),a.add(Ve(n));if(o)for(let n of Object.keys(o)){let f=Ve(n);!r.has(n)&&!a.has(f)&&(t.push(n),r.add(n),a.add(Ve(n)))}return t}var _e=require("@mantine/core"),Hr=require("@medplum/core"),O=m(require("react"));var mo=require("@medplum/core"),er=m(require("react"));function Ea(e){let{resourceType:o,filter:t}=e,r=mo.globalSchema.types[o].searchParams?.[t.code];if(r){if(r.type==="reference"&&(t.operator===mo.Operator.EQUALS||t.operator===mo.Operator.NOT_EQUALS))return er.default.createElement(uo,{value:{reference:t.value}});let a=(0,mo.getSearchParameterDetails)(o,r);if(t.code==="_lastUpdated"||a.type===mo.SearchParameterType.DATETIME)return er.default.createElement(er.default.Fragment,null,(0,mo.formatDateTime)(t.value))}return er.default.createElement(er.default.Fragment,null,t.value)}var or=require("@mantine/core"),Go=require("@medplum/core"),et=m(require("react"));function La(e){let o=(0,Go.getSearchParameterDetails)(e.resourceType,e.searchParam),t="filter-value";switch(o.type){case Go.SearchParameterType.REFERENCE:return et.default.createElement(Ct,{name:t,defaultValue:e.defaultValue?{reference:e.defaultValue}:void 0,targetTypes:e.searchParam.target,autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(r.reference):e.onChange("")}});case Go.SearchParameterType.BOOLEAN:return et.default.createElement(or.Checkbox,{name:t,"data-autofocus":e.autoFocus,"data-testid":t,defaultChecked:e.defaultValue==="true",autoFocus:e.autoFocus,onChange:r=>e.onChange(r.currentTarget.checked.toString())});case Go.SearchParameterType.DATE:return et.default.createElement(or.TextInput,{type:"date",name:t,"data-autofocus":e.autoFocus,"data-testid":t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:r=>e.onChange(r.currentTarget.value)});case Go.SearchParameterType.DATETIME:return et.default.createElement(ro,{name:t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:e.onChange});case Go.SearchParameterType.NUMBER:return et.default.createElement(or.TextInput,{type:"number",name:t,"data-autofocus":e.autoFocus,"data-testid":t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:r=>e.onChange(r.currentTarget.value)});case Go.SearchParameterType.QUANTITY:return et.default.createElement(je,{name:t,defaultValue:xd(e.defaultValue),autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(`${r.value}`):e.onChange("")}});default:return et.default.createElement(or.TextInput,{name:t,"data-autofocus":e.autoFocus,"data-testid":t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:r=>e.onChange(r.currentTarget.value),placeholder:"Search value"})}}function xd(e){if(e){let[o,t,r]=e.split("|");if(o)return{value:parseFloat(o),system:t,unit:r}}}function Qf(e){let[o,t]=(0,O.useState)(JSON.parse((0,Hr.stringify)(e.search))),[r,a]=(0,O.useState)(-1),n=(0,O.useRef)(o);n.current=o,(0,O.useEffect)(()=>{t(JSON.parse((0,Hr.stringify)(e.search)))},[e.search]);function f(u){t(vt(n.current,u.code,u.operator,u.value))}if(!e.visible)return null;let s=e.search.resourceType,l=(0,Hr.getSearchParameters)(s)??{},i=o.filters||[];return O.default.createElement(_e.Modal,{title:"Filters",closeButtonProps:{"aria-label":"Close"},size:900,opened:e.visible,onClose:e.onCancel},O.default.createElement("div",null,O.default.createElement("table",null,O.default.createElement("colgroup",null,O.default.createElement("col",{style:{width:200}}),O.default.createElement("col",{style:{width:200}}),O.default.createElement("col",{style:{width:380}}),O.default.createElement("col",{style:{width:120}})),O.default.createElement("thead",null,O.default.createElement("tr",null,O.default.createElement("th",null,"Field"),O.default.createElement("th",null,"Operation"),O.default.createElement("th",null,"Value"),O.default.createElement("th",null,"Actions"))),O.default.createElement("tbody",null,i.map((u,d)=>d===r?O.default.createElement(Js,{key:`filter-${u.code}-${u.operator}-${u.value}-input`,resourceType:s,searchParams:l,defaultValue:u,okText:"Save",onOk:c=>{let I=[...i];I[d]=c,t(_t(n.current,I)),a(-1)},onCancel:()=>a(-1)}):O.default.createElement(Id,{key:`filter-${u.code}-${u.operator}-${u.value}-display`,resourceType:s,searchParams:l,filter:u,onEdit:()=>a(d),onDelete:()=>t(kf(n.current,d))})),O.default.createElement(Js,{resourceType:s,searchParams:l,okText:"Add",onOk:f})))),O.default.createElement(_e.Group,{position:"right",mt:"xl"},O.default.createElement(_e.Button,{onClick:()=>e.onOk(n.current)},"OK")))}function Id(e){let{filter:o}=e;return O.default.createElement("tr",null,O.default.createElement("td",null,Ve(o.code)),O.default.createElement("td",null,Zt(o.operator)),O.default.createElement("td",null,O.default.createElement(Ea,{resourceType:e.resourceType,filter:o})),O.default.createElement("td",null,O.default.createElement(_e.Button,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),O.default.createElement(_e.Button,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function Js(e){let[o,t]=(0,O.useState)(e.defaultValue??{}),r=(0,O.useRef)(o);r.current=o;function a(i){t({...r.current,code:i})}function n(i){t({...r.current,operator:i})}function f(i){t({...r.current,value:i})}let s=e.searchParams[o.code],l=s&&qf(s);return O.default.createElement("tr",null,O.default.createElement("td",null,O.default.createElement(_e.NativeSelect,{"data-testid":"filter-field",defaultValue:r.current.code,onChange:i=>a(i.currentTarget.value),data:["",...Object.keys(e.searchParams).map(i=>({value:i,label:Ve(i)}))]})),O.default.createElement("td",null,l&&O.default.createElement(_e.NativeSelect,{"data-testid":"filter-operation",defaultValue:o.operator,onChange:i=>n(i.currentTarget.value),data:["",...l.map(i=>({value:i,label:Zt(i)}))]})),O.default.createElement("td",null,s&&o.operator&&O.default.createElement(La,{resourceType:e.resourceType,searchParam:s,defaultValue:o.value,onChange:f})),O.default.createElement("td",null,o.code&&o.operator&&O.default.createElement(_e.Button,{compact:!0,variant:"outline",onClick:()=>{e.onOk(r.current),t({})}},e.okText),e.onCancel&&O.default.createElement(_e.Button,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}var ot=require("@mantine/core"),yo=m(require("react"));function Ks(e){let[o,t]=(0,yo.useState)(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function r(){e.onOk({...e.filter,value:o})}return yo.default.createElement(ot.Modal,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},yo.default.createElement(le,{onSubmit:r},yo.default.createElement(ot.Grid,null,yo.default.createElement(ot.Grid.Col,{span:10},yo.default.createElement(La,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:o,autoFocus:!0,onChange:t})),yo.default.createElement(ot.Grid.Col,{span:2},yo.default.createElement(ot.Button,{onClick:r,fullWidth:!0},"OK")))))}var w=require("@mantine/core"),Ae=require("@medplum/core");var p=m(require("react"));function $s(e){if(!e.searchParams)return null;function o(n,f){a(Oa(e.search,n.code,f))}function t(n){a(Nr(e.search,n.code))}function r(n,f){e.onPrompt(n,{code:n.code,operator:f,value:""})}function a(n){e.onChange(n)}return e.searchParams.length===1?p.default.createElement(gd,{search:e.search,searchParam:e.searchParams[0],onSort:o,onPrompt:r,onChange:a,onClear:t}):p.default.createElement(w.Menu.Dropdown,null,e.searchParams.map(n=>p.default.createElement(w.Menu.Item,{key:n.code},Ve(n.code))))}function gd(e){switch(e.searchParam.type){case"date":return p.default.createElement(hd,{...e});case"number":case"quantity":return p.default.createElement(Cd,{...e});case"reference":return p.default.createElement(yd,{...e});case"string":case"token":case"uri":return p.default.createElement(vd,{...e});default:return p.default.createElement(p.default.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function hd(e){let{searchParam:o}=e,t=o.code;return p.default.createElement(w.Menu.Dropdown,null,p.default.createElement(w.Menu.Item,{icon:p.default.createElement(ur,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Oldest to Newest"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(dr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Newest to Oldest"),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(At,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.NOT_EQUALS)},"Does not equal..."),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(_r,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.ENDS_BEFORE)},"Before..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(jr,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.STARTS_AFTER)},"After..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(nn,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.EQUALS)},"Between..."),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(Ff(e.search,t))},"Tomorrow"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(Af(e.search,t))},"Today"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(Bf(e.search,t))},"Yesterday"),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(Ef(e.search,t))},"Next Month"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(Of(e.search,t))},"This Month"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(wf(e.search,t))},"Last Month"),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(Rf(e.search,t))},"Year to date"),p.default.createElement(Ra,{...e}))}function Cd(e){let{searchParam:o}=e;return p.default.createElement(w.Menu.Dropdown,null,p.default.createElement(w.Menu.Item,{icon:p.default.createElement(ur,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Smallest to Largest"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(dr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Largest to Smallest"),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(At,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.NOT_EQUALS)},"Does not equal..."),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(jr,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.GREATER_THAN)},"Greater than..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Ft,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(_r,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.LESS_THAN)},"Less than..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Ft,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),p.default.createElement(Ra,{...e}))}function yd(e){let{searchParam:o}=e;return p.default.createElement(w.Menu.Dropdown,null,p.default.createElement(w.Menu.Item,{icon:p.default.createElement(At,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.NOT)},"Does not equal..."),p.default.createElement(Ra,{...e}))}function vd(e){let{searchParam:o}=e;return p.default.createElement(w.Menu.Dropdown,null,p.default.createElement(w.Menu.Item,{icon:p.default.createElement(ur,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort A to Z"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(dr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Z to A"),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(At,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.NOT)},"Does not equal..."),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(ln,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.CONTAINS)},"Contains..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(fn,{size:14}),onClick:()=>e.onPrompt(o,Ae.Operator.EQUALS)},"Does not contain..."),p.default.createElement(Ra,{...e}))}function Ra(e){let{searchParam:o}=e,t=o.code;return p.default.createElement(p.default.Fragment,null,p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(rn,{size:14}),onClick:()=>e.onChange(wa(e.search,t))},"Missing"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(tn,{size:14}),onClick:()=>e.onChange(wa(e.search,t,!1))},"Not missing"),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Fn,{size:14}),onClick:()=>e.onClear(o)},"Clear filters"))}var tt=require("@medplum/core");function js(e){let o=e.resourceType,t=[];for(let r of e.fields||["id","_lastUpdated"])t.push(Sd(o,r));return t}function Sd(e,o){if(o==="_lastUpdated")return{name:"_lastUpdated",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_lastUpdated",name:"_lastUpdated",type:"date",expression:"Resource.meta.lastUpdated"}]};if(o==="meta.versionId")return{name:"meta.versionId",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_versionId",name:"_versionId",type:"token",expression:"Resource.meta.versionId"}]};let t=(0,tt.getElementDefinition)(e,o),r=(0,tt.getSearchParameter)(e,o.toLowerCase());if(t&&r)return{name:o,elementDefinition:t,searchParams:[r]};if(t){let a=(0,tt.getSearchParameters)(e),n;if(a){let f=`${e}.${o.replaceAll("[x]","")}`;n=Object.values(a).filter(s=>s.expression?.includes(f)),n.length===0&&(n=void 0)}return{name:o,elementDefinition:t,searchParams:n}}if(r){let a=(0,tt.getSearchParameterDetails)(e,r);return{name:o,elementDefinition:a.elementDefinitions?.[0],searchParams:[r]}}return{name:o}}var Na=class extends Event{constructor(t){super("change");this.definition=t}},Ha=class extends Event{constructor(t){super("load");this.response=t}},rt=class extends Event{constructor(t,r){super("click");this.resource=t,this.browserEvent=r}},bd=(0,W.createStyles)(e=>({root:{maxWidth:"100%",overflow:"auto",textAlign:"left",marginBottom:"20px"},table:{cursor:"pointer"},tr:{"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[7]:e.colors.gray[0]}},th:{padding:"0 !important"},control:{width:"100%",padding:`${e.spacing.xs} ${e.spacing.md}`,"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[6]:e.colors.gray[0]}},icon:{width:21,height:21,borderRadius:21}}));function _s(e){let{classes:o}=bd(),t=T(),[r,a]=(0,y.useState)(!1),[n,f]=(0,y.useState)(),{search:s,onLoad:l}=e,[i,u]=(0,y.useState)({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,exportDialogVisible:!1,filterDialogVisible:!1}),d=(0,y.useRef)(i);d.current=i;let c=s.total??"accurate",I=(0,y.useCallback)(D=>{f(void 0),t.search(s.resourceType,(0,tr.formatSearchQuery)({...s,total:c,fields:void 0}),D).then(ee=>{u({...d.current,searchResponse:ee}),l&&l(new Ha(ee))}).catch(ee=>{u({...d.current,searchResponse:void 0}),f(ee)})},[t,s,c,l]),P=(0,y.useCallback)(()=>{u({...d.current,searchResponse:void 0}),I({cache:"reload"})},[I]);(0,y.useEffect)(()=>{I()},[I]);function B(D,ee){D.stopPropagation();let De=D.target.checked,Se={...d.current.selected};De?Se[ee]=!0:delete Se[ee],u({...d.current,selected:Se})}function k(D){D.stopPropagation();let Po=D.target.checked,De={},Se=d.current.searchResponse;Po&&Se?.entry&&Se.entry.forEach(eo=>{eo.resource?.id&&(De[eo.resource.id]=!0)}),u({...d.current,selected:De})}function A(){let D=d.current;if(!D.searchResponse?.entry||D.searchResponse.entry.length===0)return!1;for(let ee of D.searchResponse.entry)if(ee.resource?.id&&!D.selected[ee.resource.id])return!1;return!0}function M(D){e.onChange&&e.onChange(new Na(D))}function g(D,ee){if(oa(D.target)||D.button===2)return;Q(D);let Po=D.button===1||D.ctrlKey||D.metaKey;!Po&&e.onClick&&e.onClick(new rt(ee,D)),Po&&e.onAuxClick&&e.onAuxClick(new rt(ee,D))}function R(){return!!(e.onExport??e.onExportCsv??e.onExportTransactionBundle)}if((0,y.useEffect)(()=>{a(!1),t.requestSchema(e.search.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.search.resourceType]),!r)return y.default.createElement(W.Center,{style:{width:"100%",height:"100%"}},y.default.createElement(W.Loader,null));let C=e.checkboxesEnabled,L=js(s),ge=s.resourceType,Te=i.searchResponse,nt=Te?.entry?.map(D=>D.resource),v="subtle",U="gray",fo=16,Ye=window.innerWidth<768;return y.default.createElement("div",{className:o.root,"data-testid":"search-control"},!e.hideToolbar&&y.default.createElement(W.Group,{position:"apart",mb:"xl"},y.default.createElement(W.Group,{spacing:2},y.default.createElement(W.Button,{compact:!0,variant:v,color:U,leftIcon:y.default.createElement(dn,{size:fo}),onClick:()=>u({...d.current,fieldEditorVisible:!0})},"Fields"),y.default.createElement(W.Button,{compact:!0,variant:v,color:U,leftIcon:y.default.createElement(hn,{size:fo}),onClick:()=>u({...d.current,filterEditorVisible:!0})},"Filters"),e.onNew&&y.default.createElement(W.Button,{compact:!0,variant:v,color:U,leftIcon:y.default.createElement(gn,{size:fo}),onClick:e.onNew},"New..."),!Ye&&R()&&y.default.createElement(W.Button,{compact:!0,variant:v,color:U,leftIcon:y.default.createElement(An,{size:fo}),onClick:e.onExport?e.onExport:()=>u({...d.current,exportDialogVisible:!0})},"Export..."),!Ye&&e.onDelete&&y.default.createElement(W.Button,{compact:!0,variant:v,color:U,leftIcon:y.default.createElement(cr,{size:fo}),onClick:()=>e.onDelete(Object.keys(i.selected))},"Delete..."),!Ye&&e.onBulk&&y.default.createElement(W.Button,{compact:!0,variant:v,color:U,leftIcon:y.default.createElement(an,{size:fo}),onClick:()=>e.onBulk(Object.keys(i.selected))},"Bulk...")),y.default.createElement(W.Group,{spacing:2},Te&&y.default.createElement(W.Text,{size:"xs",color:"dimmed"},Bd(s,Te.total),"-",Ad(s,Te.total)," of"," ",`${c==="estimate"?"~":""}${Te.total?.toLocaleString()}`),y.default.createElement(W.ActionIcon,{title:"Refresh",onClick:P},y.default.createElement(Tn,{size:"1.125rem"})))),y.default.createElement(W.Table,{className:o.table},y.default.createElement("thead",null,y.default.createElement("tr",null,C&&y.default.createElement("th",null,y.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:A(),onChange:D=>k(D)})),L.map(D=>y.default.createElement("th",{key:D.name},y.default.createElement(W.Menu,{shadow:"md",width:240,position:"bottom-end"},y.default.createElement(W.Menu.Target,null,y.default.createElement(W.UnstyledButton,{className:o.control},y.default.createElement(W.Group,{position:"apart",noWrap:!0},y.default.createElement(W.Text,{weight:500,size:"sm"},Ve(D.name)),y.default.createElement(W.Center,{className:o.icon},y.default.createElement(Ya,{size:14,stroke:1.5}))))),y.default.createElement($s,{search:e.search,searchParams:D.searchParams,onPrompt:(ee,Po)=>{u({...d.current,filterDialogVisible:!0,filterDialogSearchParam:ee,filterDialogFilter:Po})},onChange:ee=>{M(ee)}}))))),!e.hideFilters&&y.default.createElement("tr",null,C&&y.default.createElement("th",null),L.map(D=>y.default.createElement("th",{key:D.name},D.searchParams&&y.default.createElement(Td,{resourceType:ge,searchParams:D.searchParams,filters:e.search.filters}))))),y.default.createElement("tbody",null,nt?.map(D=>D&&y.default.createElement("tr",{key:D.id,className:o.tr,"data-testid":"search-control-row",onClick:ee=>g(ee,D),onAuxClick:ee=>g(ee,D)},C&&y.default.createElement("td",null,y.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${D.id}`,checked:!!i.selected[D.id],onChange:ee=>B(ee,D.id)})),L.map(ee=>y.default.createElement("td",{key:ee.name},Gf(D,ee))))))),nt?.length===0&&y.default.createElement(wo,null,y.default.createElement(W.Center,{style:{height:150}},y.default.createElement(W.Text,{size:"xl",color:"dimmed"},"No results"))),Te?.total!==void 0&&Te.total>0&&y.default.createElement(W.Center,{m:"md",p:"md"},y.default.createElement(W.Pagination,{value:Dd(s),total:kd(s,Te.total),onChange:D=>M(Nf(s,D)),getControlProps:D=>{switch(D){case"previous":return{"aria-label":"Previous page"};case"next":return{"aria-label":"Next page"};default:return{}}}})),n&&y.default.createElement("div",{"data-testid":"search-error"},y.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(n,void 0,2))),y.default.createElement(Uf,{search:e.search,visible:d.current.fieldEditorVisible,onOk:D=>{M(D),u({...d.current,fieldEditorVisible:!1})},onCancel:()=>{u({...d.current,fieldEditorVisible:!1})}}),y.default.createElement(Qf,{search:e.search,visible:d.current.filterEditorVisible,onOk:D=>{M(D),u({...d.current,filterEditorVisible:!1})},onCancel:()=>{u({...d.current,filterEditorVisible:!1})}}),y.default.createElement(zs,{visible:d.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{u({...d.current,exportDialogVisible:!1})}}),y.default.createElement(Ks,{key:i.filterDialogSearchParam?.code,visible:d.current.filterDialogVisible,title:i.filterDialogSearchParam?.code?Ve(i.filterDialogSearchParam.code):"",resourceType:ge,searchParam:i.filterDialogSearchParam,filter:i.filterDialogFilter,defaultValue:"",onOk:D=>{M(vt(e.search,D.code,D.operator,D.value)),u({...d.current,filterDialogVisible:!1})},onCancel:()=>{u({...d.current,filterDialogVisible:!1})}}))}var Pd=y.default.memo(_s);function Td(e){let o=(e.filters??[]).filter(t=>e.searchParams.find(r=>r.code===t.code));return o.length===0?y.default.createElement("span",null,"no filters"):y.default.createElement(y.default.Fragment,null,o.map(t=>y.default.createElement("div",{key:`filter-${t.code}-${t.operator}-${t.value}`},Zt(t.operator),"\xA0",y.default.createElement(Ea,{resourceType:e.resourceType,filter:t}))))}function Dd(e){return Math.floor((e.offset??0)/(e.count??tr.DEFAULT_SEARCH_COUNT))+1}function kd(e,o){let t=e.count??tr.DEFAULT_SEARCH_COUNT;return Math.ceil(o/t)}function Bd(e,o){return Math.min(o,(e.offset??0)+1)}function Ad(e,o){return Math.min(o,((e.offset??0)+1)*(e.count??tr.DEFAULT_SEARCH_COUNT))}function Ys(e){let o=T(),[t,r]=(0,Z.useState)(!1),[a,n]=(0,Z.useState)(),{query:f,fields:s}=e,[l,i]=(0,Z.useState)(),[u,d]=(0,Z.useState)({}),c=(0,Z.useRef)();c.current=l;let I=(0,Z.useRef)({});I.current=u,(0,Z.useEffect)(()=>{n(void 0),o.graphql(f).then(i).catch(g=>n((0,Zs.normalizeOperationOutcome)(g)))},[o,f]);function P(g,R){g.stopPropagation();let L=g.target.checked,ge={...I.current};L?ge[R]=!0:delete ge[R],d(ge)}function B(g){g.stopPropagation();let C=g.target.checked,L={},ge=c.current?.data.ResourceList;C&&ge&&ge.forEach(Te=>{Te.id&&(L[Te.id]=!0)}),d(L)}function k(){let g=c.current?.data.ResourceList;if(!g||g.length===0)return!1;for(let R of g)if(R.id&&!I.current[R.id])return!1;return!0}function A(g,R){oa(g.target)||(Q(g),g.button!==1&&e.onClick&&e.onClick(new rt(R,g)),g.button===1&&e.onAuxClick&&e.onAuxClick(new rt(R,g)))}if((0,Z.useEffect)(()=>{o.requestSchema(e.resourceType).then(()=>r(!0)).catch(console.log)},[o,e.resourceType]),!t)return Z.default.createElement(rr.Loader,null);let M=e.checkboxesEnabled;return Z.default.createElement("div",{onContextMenu:g=>Q(g),"data-testid":"search-control"},Z.default.createElement(rr.Table,null,Z.default.createElement("thead",null,Z.default.createElement("tr",null,M&&Z.default.createElement("th",null,Z.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:k(),onChange:g=>B(g)})),s.map(g=>Z.default.createElement("th",{key:g.name},g.name)))),Z.default.createElement("tbody",null,l?.data.ResourceList.map(g=>g&&Z.default.createElement("tr",{key:g.id,"data-testid":"search-control-row",onClick:R=>A(R,g),onAuxClick:R=>A(R,g)},M&&Z.default.createElement("td",null,Z.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${g.id}`,checked:!!u[g.id],onChange:R=>P(R,g.id)})),s.map(R=>Z.default.createElement("td",{key:R.name},Z.default.createElement(Us,{propertyType:R.propertyType,path:R.fhirPath,resource:g}))))))),l?.data.ResourceList.length===0&&Z.default.createElement("div",{"data-testid":"empty-search"},"No results"),a&&Z.default.createElement("div",{"data-testid":"search-error"},Z.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(a,void 0,2))),e.onBulk&&Z.default.createElement(rr.Button,{onClick:()=>e.onBulk(Object.keys(I.current))},"Bulk..."))}var Fd=Z.default.memo(Ys);var ei=require("@mantine/notifications"),Uo=m(require("react"));function Md(e){let o=e.medplum,t=e.navigate??wd,[r,a]=(0,Uo.useState)({profile:o.getProfile(),loading:!1});(0,Uo.useEffect)(()=>{function f(){a({...r,profile:o.getProfile()})}return o.addEventListener("change",f),()=>o.removeEventListener("change",f)},[o,r]),(0,Uo.useEffect)(()=>{function f(){(0,ei.showNotification)({color:"red",message:"No connection to server",autoClose:!1})}return o.addEventListener("offline",f),()=>o.removeEventListener("offline",f)},[o]);let n=(0,Uo.useMemo)(()=>({...r,medplum:o,navigate:t}),[r,o,t]);return Uo.default.createElement(Kr.Provider,{value:n},e.children)}function wd(e){window.location.assign(e)}var Vr=require("@medplum/core"),Va=m(require("react"));function Od(e){let o=(0,Va.useCallback)((t,r,a)=>{let n=`${r}/${a}`,f=100;return Promise.allSettled([t.readHistory("Patient",a),t.search("Communication",{subject:n,_count:f}),t.search("Device",{patient:n,_count:f}),t.search("DeviceRequest",{patient:n,_count:f}),t.search("DiagnosticReport",{subject:n,_count:f}),t.search("Media",{subject:n,_count:f}),t.search("ServiceRequest",{subject:n,_count:f}),t.search("Task",{subject:n,_count:f})])},[]);return Va.default.createElement(qo,{value:e.patient,loadTimelineResources:o,createCommunication:(t,r,a)=>({resourceType:"Communication",status:"completed",subject:(0,Vr.createReference)(t),sender:(0,Vr.createReference)(r),sent:new Date().toISOString(),payload:[{contentString:a}]}),createMedia:(t,r,a)=>({resourceType:"Media",status:"completed",subject:(0,Vr.createReference)(t),operator:(0,Vr.createReference)(r),issued:new Date().toISOString(),content:a})})}var qe=require("@mantine/core"),oi=require("@medplum/core"),E=m(require("react"));var ti=(0,qe.createStyles)(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}}}));function Ed(e){let o=T(),t=te(e.value),[r,a]=(0,E.useState)(!1),[n,f]=(0,E.useState)(),[s,l]=(0,E.useState)(),[i,u]=(0,E.useState)();function d(){l(void 0)}function c(){f(void 0)}let I=(0,E.useRef)();if(I.current=i,(0,E.useEffect)(()=>{o.requestSchema("PlanDefinition").then(()=>a(!0)).catch(console.log)},[o]),(0,E.useEffect)(()=>(u(qd(t??{resourceType:"PlanDefinition"})),document.addEventListener("mouseover",d),document.addEventListener("click",c),()=>{document.removeEventListener("mouseover",d),document.removeEventListener("click",c)}),[t]),!r||!i)return null;function P(B,k){u({...I.current,[B]:k})}return E.default.createElement("div",null,E.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(i)},E.default.createElement(qe.TextInput,{label:"Plan Title",defaultValue:i.title,onChange:B=>P("title",B.currentTarget.value)}),E.default.createElement(ri,{actions:i.action||[],selectedKey:n,setSelectedKey:f,hoverKey:s,setHoverKey:l,onChange:B=>P("action",B)}),E.default.createElement(qe.Button,{type:"submit"},"Save")))}function ri(e){let{classes:o}=ti(),t=(0,E.useRef)();t.current=e.actions;function r(f){e.onChange(t.current.map(s=>s.id===f.id?f:s))}function a(f){e.onChange([...t.current,f]),e.setSelectedKey(f.id)}function n(f){e.onChange(t.current.filter(s=>s!==f))}return E.default.createElement("div",{className:o.section},e.actions.map(f=>E.default.createElement("div",{key:f.id},E.default.createElement(Ld,{action:f,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:r,onRemove:()=>n(f)}))),E.default.createElement("div",{className:o.bottomActions},E.default.createElement(qe.Anchor,{href:"#",onClick:f=>{Q(f),a({id:ni()})}},"Add action")))}function Ld(e){let{classes:o,cx:t}=ti(),{action:r}=e,a=Vd(r),n=e.selectedKey===e.action.id,f=e.hoverKey===e.action.id;function s(u){u.stopPropagation(),e.setSelectedKey(e.action.id)}function l(u){Q(u),e.setHoverKey(e.action.id)}let i=t(o.section,{[o.editing]:n,[o.hovering]:f&&!n});return E.default.createElement("div",{"data-testid":r.id,className:i,onClick:s,onMouseOver:l},n?E.default.createElement(Nd,{action:r,actionType:a,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):E.default.createElement(Rd,{action:r,actionType:a}),E.default.createElement("div",{className:o.bottomActions},E.default.createElement(qe.Anchor,{href:"#",onClick:u=>{u.preventDefault(),e.onRemove()}},"Remove")))}var Wf={path:"PlanDefinition.action.timing[x]",min:0,max:1,description:"",isArray:!1,constraints:[],type:["dateTime","Period","Range","Timing"].map(e=>({code:e}))};function Rd(e){let{action:o,actionType:t}=e,[r,a]=ai(o);return E.default.createElement("div",null,E.default.createElement("div",null,o.title||"Untitled"," ",t&&`(${t})`),o.definitionCanonical&&E.default.createElement("div",null,E.default.createElement(Jo,{value:{reference:o.definitionCanonical}})),r&&E.default.createElement("div",null,E.default.createElement(we,{property:Wf,propertyType:a,value:r})))}function Nd(e){let{action:o}=e,[t,r]=(0,E.useState)(e.actionType);function a(n,f){e.onChange({...o,[n]:f})}return E.default.createElement(qe.Stack,{spacing:"xl"},E.default.createElement(qe.TextInput,{name:`actionTitle-${o.id}`,label:"Title",defaultValue:o.title,onChange:n=>a("title",n.currentTarget.value)}),E.default.createElement(qe.TextInput,{name:`actionDescription-${o.id}`,label:"Description",defaultValue:o.description,onChange:n=>a("description",n.currentTarget.value)}),E.default.createElement(qe.NativeSelect,{label:"Type of Action",description:"The type of the action to be performed.",name:`actionType-${o.id}`,defaultValue:t,onChange:n=>r(n.currentTarget.value),data:["","appointment","lab","questionnaire","task"]}),o.action&&o.action.length>0&&E.default.createElement(ri,{actions:o.action,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:n=>a("action",n)}),(()=>{switch(t){case"appointment":return E.default.createElement(qa,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:o,onChange:e.onChange});case"lab":return E.default.createElement(qa,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});case"questionnaire":return E.default.createElement(qa,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:o,onChange:e.onChange});case"task":return E.default.createElement(qa,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});default:return null}})(),E.default.createElement(Xe,{title:"Timing",description:"When the action should take place."},E.default.createElement(Hd,{name:"timing-"+o.id,action:o,onChange:e.onChange})))}function qa(e){let{id:o,definitionCanonical:t}=e.action,r=t?.startsWith(e.resourceType+"/")?{reference:t}:void 0;return E.default.createElement(Mr,{name:o,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:a=>{a?e.onChange({...e.action,definitionCanonical:(0,oi.getReferenceString)(a)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function Hd(e){let o=e.action,t="timing",[r,a]=ai(o);return E.default.createElement(ho,{property:Wf,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(n,f)=>{e.onChange(Tr(o,t,f??t,Wf,n))}})}function Vd(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task"}function ai(e){return $e({type:"PlanDefinitionAction",value:e},"timing")}var zf=1;function ni(e){if(e){if(e.startsWith("id-")){let o=parseInt(e.substring(3),10);isNaN(o)||(zf=Math.max(zf,o+1))}return e}return"id-"+zf++}function qd(e){return{...e,action:fi(e.action)}}function fi(e){if(e)return e.map(o=>({...o,id:ni(o.id),action:fi(o.action)}))}var J=require("@mantine/core"),Ua=require("@medplum/core");var b=m(require("react"));var be=require("@mantine/core"),ue=require("@medplum/core"),ce=m(require("react"));var Ze=require("@medplum/core"),qr=(A=>(A.group="group",A.display="display",A.question="question",A.boolean="boolean",A.decimal="decimal",A.integer="integer",A.date="date",A.dateTime="dateTime",A.time="time",A.string="string",A.text="text",A.url="url",A.choice="choice",A.openChoice="open-choice",A.attachment="attachment",A.reference="reference",A.quantity="quantity",A))(qr||{});function Xf(e){return e.type==="choice"||e.type==="open-choice"}function Jf(e,o){if(!e.enableWhen)return!0;let t=e.enableBehavior??"any";for(let r of e.enableWhen){let a=li(o,r.question);if(r.operator==="exists"&&!r.answerBoolean&&!a?.length){if(t==="any")return!0;continue}let{anyMatch:n,allMatch:f}=Ud(r,a,t);if(t==="any"&&n)return!0;if(t==="all"&&!f)return!1}return t!=="any"}function Kf(e,o,t){return e.map(r=>{let a=t.answerOption?.find(f=>(0,Ze.formatCoding)(f.valueCoding)===r||f[o]===r),n=(0,Ze.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:a},"value");return{[o]:n?.value}})}function li(e,o){if(e)for(let t of e){if(t.linkId===o)return t.answer;if(t.item){let r=li(t.item,o);if(r)return r}}}function Gd(e,o,t){if(t==="exists")return!!e===o.value;if(e){let r=t==="="||t==="!="?t?.replace("=","~"):t,[{value:a}]=(0,Ze.evalFhirPathTyped)(`%actualAnswer ${r} %expectedAnswer`,[e],{actualAnswer:e,expectedAnswer:o});return a}else return!1}function Ud(e,o,t){let r=o||[],a=(0,Ze.getTypedPropertyValue)({type:"QuestionnaireItemEnableWhen",value:e},"answer[x]"),n=!1,f=!0;for(let s of r){let l=(0,Ze.getTypedPropertyValue)({type:"QuestionnaireResponseItemAnswer",value:s},"value[x]"),{operator:i}=e;if(Gd(l,a,i)?n=!0:f=!1,t==="any"&&n)break}return{anyMatch:n,allMatch:f}}function Gr(e){let o=(0,Ze.getExtension)(e,"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource");if(o){if(o.valueCode!==void 0)return[o.valueCode];if(o.valueCodeableConcept)return o.valueCodeableConcept?.coding?.map(t=>t.code)}}function Ur(e,o){let t=(0,Ze.deepClone)(e),r=(0,Ze.getExtension)(t,"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource");return!o||o.length===0?(r&&(t.extension=t.extension?.filter(a=>a!==r)),t):(r||(t.extension||(t.extension=[]),r={url:"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource"},t.extension.push(r)),o.length===1?(r.valueCode=o[0],delete r.valueCodeableConcept):(r.valueCodeableConcept={coding:o.map(a=>({code:a}))},delete r.valueCode),t)}function Ga(e){let o=e.item,t=e.index;function r(l,i){let u=i??0,d=e.currentResponseItems?.filter(I=>I.linkId===o.linkId)??[],c;Array.isArray(l)?c=l:c=Xd(d[0]?.answer??[],u,l),e.onChange({id:d[0].id,linkId:o.linkId,text:o.text,answer:c})}let a=o.type;if(!a)return null;let n=o.linkId;if(!n)return null;let f=o.initial&&o.initial.length>0?o.initial[0]:void 0,s=_f(e.allResponses,o,e.index,e.groupSequence)??(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:f},"value");switch(a){case"boolean":return ce.default.createElement(Pr,{key:e.item.linkId,title:e.item.text,htmlFor:e.item.linkId},ce.default.createElement(be.Checkbox,{id:e.item.linkId,name:e.item.linkId,defaultChecked:s?.value,onChange:l=>r({valueBoolean:l.currentTarget.checked},t)}));case"decimal":return ce.default.createElement(be.TextInput,{type:"number",step:"any",id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueDecimal:l.currentTarget.valueAsNumber},t)});case"integer":return ce.default.createElement(be.TextInput,{type:"number",step:1,id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueInteger:l.currentTarget.valueAsNumber},t)});case"date":return ce.default.createElement(be.TextInput,{type:"date",id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueDate:l.currentTarget.value},t)});case"dateTime":return ce.default.createElement(ro,{name:n,defaultValue:s?.value,onChange:l=>r({valueDateTime:l},t)});case"time":return ce.default.createElement(be.TextInput,{type:"time",id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueTime:l.currentTarget.value},t)});case"string":case"url":return ce.default.createElement(be.TextInput,{id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueString:l.currentTarget.value},t)});case"text":return ce.default.createElement(be.Textarea,{id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueString:l.currentTarget.value},t)});case"attachment":return ce.default.createElement(be.Group,{py:4},ce.default.createElement(Ir,{name:n,defaultValue:s?.value,onChange:l=>r({valueAttachment:l},t)}));case"reference":return ce.default.createElement(Ct,{name:n,targetTypes:Gr(o),defaultValue:s?.value,onChange:l=>r({valueReference:l},t)});case"quantity":return ce.default.createElement(je,{name:n,defaultValue:s?.value,onChange:l=>r({valueQuantity:l},t),disableWheel:!0});case"choice":case"open-choice":return Jd(o)?ce.default.createElement(Qd,{name:n,item:o,initial:f,allResponses:e.allResponses,index:t,groupSequence:e.groupSequence,onChangeAnswer:l=>r(l,t)}):ce.default.createElement(zd,{name:n,item:o,initial:f,allResponses:e.allResponses,onChangeAnswer:l=>r(l,t)});default:return null}}function Qd(e){let{name:o,item:t,initial:r}=e,a=(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),n=[""];if(t.answerOption)for(let s of t.answerOption){let l=(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:s},"value");n.push($f(l))}let f=_f(e.allResponses,t,e.index,e.groupSequence)??(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value");if(t.repeats){let{propertyName:s,data:l}=Kd(e.item),i=$d(e.allResponses,t,e.groupSequence);return ce.default.createElement(be.MultiSelect,{data:l,placeholder:"Select items",searchable:!0,defaultValue:i||[$f(a)],onChange:u=>{let d=Kf(u,s,t);e.onChangeAnswer(d)}})}return ce.default.createElement(be.NativeSelect,{id:o,name:o,onChange:s=>{let l=s.currentTarget.selectedIndex;if(l===0){e.onChangeAnswer({});return}let i=t.answerOption[l-1],u=(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:i},"value"),d="value"+(0,ue.capitalize)(u.type);e.onChangeAnswer({[d]:u.value})},defaultValue:((0,ue.formatCoding)(f?.value)||f?.value)??$f(a),data:n})}function zd(e){let{name:o,item:t,initial:r,onChangeAnswer:a,allResponses:n}=e;return t.answerValueSet?ce.default.createElement(Dr,{name:o,binding:t.answerValueSet,onChange:f=>a({valueCoding:f})}):ce.default.createElement(Wd,{name:o,item:t,initial:r,allResponses:n,onChangeAnswer:a})}function Wd(e){let{name:o,item:t,initial:r,onChangeAnswer:a}=e,n=(0,ue.getElementDefinition)("QuestionnaireItemAnswerOption","value[x]"),f=(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),s=[],l;if(t.answerOption)for(let d=0;d<t.answerOption.length;d++){let c=t.answerOption[d],I=`${o}-option-${d}`,P=(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:c},"value");f&&(0,ue.stringify)(P)===(0,ue.stringify)(f)&&(l=I),s.push([I,P])}let i=_f(e.allResponses,t,e.index,e.groupSequence),u=jd(s,i);return ce.default.createElement(be.Radio.Group,{name:o,value:u??l,onChange:d=>{let c=s.find(I=>I[0]===d);if(c){let I=c[1],P="value"+(0,ue.capitalize)(I.type);a({[P]:I.value})}}},s.map(([d,c])=>ce.default.createElement(be.Radio,{key:d,id:d,value:d,py:4,label:ce.default.createElement(we,{property:n,propertyType:c.type,value:c.value})})))}function Xd(e,o,t){if(o<e.length)return e[o]=t,e;for(let r=e.length;r<o;r++)e.push({});return e.push(t),e}function Jd(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function Kd(e){if(e.answerOption?.length===0)return{propertyName:"",data:[]};let o=e.answerOption[0],t=(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:o},"value"),r="value"+(0,ue.capitalize)(t.type),a=(e.answerOption??[]).map(n=>({value:si(n,r),label:si(n,r)}));return{propertyName:r,data:a}}function si(e,o){return(0,ue.formatCoding)(e.valueCoding)||e[o]?.toString()}function $f(e){if(e)return e.type==="CodeableConcept"?e.value.coding[0].display:e.type==="Coding"?e.value.display:e.value.toString()}function jf(e,o){let t=[];for(let r of e)r.linkId===o&&t.push(r),r.item&&(t=t.concat(jf(r.item,o)));return t}function ii(e){return(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemAnswer",value:e},"value")}function _f(e,o,t=0,r=0){let n=jf(e,o.linkId??"")[r]?.answer;return ii(n?.[t]??{})}function $d(e,o,t=0){let a=jf(e,o.linkId??"")[t]?.answer;return a?a.map(f=>ii(f)).map(f=>(0,ue.formatCoding)(f?.value)||f?.value):[]}function jd(e,o){return e.find(t=>(0,ue.deepEquals)(t[1].value,o?.value))?.[0]}var _d=(0,J.createStyles)(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},questionBody:{maxWidth:600},topActions:{position:"absolute",right:32,top:1,padding:4,color:e.colors.gray[5],fontSize:e.fontSizes.xs},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},movementActions:{position:"absolute",right:8,top:0,paddingTop:8,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},movementIcons:{color:e.colors.gray[5]},columnAlignment:{display:"flex",flexDirection:"column"},linkIdInput:{width:100,marginBottom:4},typeSelect:{width:100}}));function Zd(e){let o=T(),t=te(e.questionnaire),[r,a]=(0,b.useState)(!1),[n,f]=(0,b.useState)(),[s,l]=(0,b.useState)(),[i,u]=(0,b.useState)();function d(){u(void 0)}function c(){l(void 0)}return(0,b.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>a(!0)).catch(console.log)},[o]),(0,b.useEffect)(()=>(f(tc(t??{resourceType:"Questionnaire"})),document.addEventListener("mouseover",d),document.addEventListener("click",c),()=>{document.removeEventListener("mouseover",d),document.removeEventListener("click",c)}),[t]),!r||!n?null:b.default.createElement("div",null,b.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(n)},b.default.createElement(ui,{item:n,selectedKey:s,setSelectedKey:l,hoverKey:i,setHoverKey:u,onChange:f}),b.default.createElement(J.Button,{type:"submit"},"Save")))}function ui(e){let{classes:o,cx:t}=_d(),r=e.item,a=e.item,n=(0,Ua.isResource)(e.item),f=n||a.type==="group",s=a.linkId??"[untitled]",l=e.selectedKey===e.item.id,i=e.hoverKey===e.item.id,u=(0,b.useRef)();u.current=e.item;function d(C){Q(C),e.setSelectedKey(e.item.id)}function c(C){Q(C),e.setHoverKey(e.item.id)}function I(C){let L=u.current;e.onChange({...L,item:L.item?.map(ge=>ge.id===C.id?C:ge)})}function P(C){e.onChange({...e.item,item:[...e.item.item??[],C]})}function B(C){e.onChange({...e.item,item:e.item.item?.filter(L=>L!==C)})}function k(C,L){e.onChange({...u.current,[C]:L})}function A(C){e.onChange({...e.item,...C})}function M(C){e.onChange({...e.item,item:e.item.item?.map(L=>L===C?{...L,repeats:!L.repeats}:L)})}function g(C,L){let ge=nc(e.item.item,C,L);e.onChange({...e.item,item:ge})}let R=t(o.section,{[o.editing]:l,[o.hovering]:i&&!l});return b.default.createElement("div",{"data-testid":a.linkId,className:R,onClick:d,onMouseOver:c},b.default.createElement("div",{className:o.questionBody},l?b.default.createElement(b.default.Fragment,null,n&&b.default.createElement(J.TextInput,{size:"xl",defaultValue:r.title,onChange:C=>k("title",C.currentTarget.value)}),!n&&b.default.createElement(J.Textarea,{autosize:!0,minRows:2,defaultValue:a.text,onChange:C=>k("text",C.currentTarget.value)}),a.type==="reference"&&b.default.createElement(oc,{item:a,onChange:A}),Xf(a)&&b.default.createElement(Yd,{item:a,onChange:C=>A(C)})):b.default.createElement(b.default.Fragment,null,r.title&&b.default.createElement(J.Title,null,r.title),a.text&&b.default.createElement("div",null,a.text),!f&&b.default.createElement(Ga,{item:a,index:0,allResponses:[],onChange:()=>{}}))),a.item?.map((C,L)=>b.default.createElement("div",{key:C.id},b.default.createElement(ui,{item:C,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,isFirst:L===0,isLast:L===(e.item.item??[]).length-1,setHoverKey:e.setHoverKey,onChange:I,onRemove:()=>B(C),onRepeatable:M,onMoveUp:()=>g(L,-1),onMoveDown:()=>g(L,1)}))),!f&&b.default.createElement("div",{className:o.topActions},l?b.default.createElement(b.default.Fragment,null,b.default.createElement(J.TextInput,{size:"xs",className:o.linkIdInput,defaultValue:a.linkId,onChange:C=>k("linkId",C.currentTarget.value)}),!f&&b.default.createElement(J.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:a.type,onChange:C=>k("type",C.currentTarget.value),data:[{value:"display",label:"Display"},{value:"boolean",label:"Boolean"},{value:"decimal",label:"Decimal"},{value:"integer",label:"Integer"},{value:"date",label:"Date"},{value:"dateTime",label:"Date/Time"},{value:"time",label:"Time"},{value:"string",label:"String"},{value:"text",label:"Text"},{value:"url",label:"URL"},{value:"choice",label:"Choice"},{value:"open-choice",label:"Open Choice"},{value:"attachment",label:"Attachment"},{value:"reference",label:"Reference"},{value:"quantity",label:"Quantity"}]})):b.default.createElement("div",null,s)),!n&&b.default.createElement(J.Box,{className:o.movementActions},b.default.createElement(J.Box,{className:o.columnAlignment},!e.isFirst&&b.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),e.onMoveUp&&e.onMoveUp()}},b.default.createElement(on,{"data-testid":"up-button",size:15,className:o.movementIcons})),!e.isLast&&b.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),e.onMoveDown&&e.onMoveDown()}},b.default.createElement(en,{"data-testid":"down-button",size:15,className:o.movementIcons})))),b.default.createElement("div",{className:o.bottomActions},f&&b.default.createElement(b.default.Fragment,null,b.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),P({id:St(),linkId:el("q"),type:"string",text:"Question"})}},"Add item"),b.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),P({id:St(),linkId:el("g"),type:"group",text:"Group"})}},"Add group")),n&&b.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),P(ac())}},"Add Page"),l&&!n&&b.default.createElement(b.default.Fragment,null,b.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),e.onRepeatable&&e.onRepeatable(a)}},a.repeats?"Remove Repeatable":"Make Repeatable"),b.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),e.onRemove&&e.onRemove()}},"Remove"))))}function Yd(e){let o=(0,Ua.getElementDefinition)("QuestionnaireItemAnswerOption","value[x]"),t=e.item.answerOption??[];return b.default.createElement("div",null,e.item.answerValueSet!==void 0?b.default.createElement(J.TextInput,{placeholder:"Enter Value Set",defaultValue:e.item.answerValueSet,onChange:r=>e.onChange({...e.item,answerValueSet:r.target.value})}):b.default.createElement(ec,{options:t,property:o,item:e.item,onChange:e.onChange}),b.default.createElement(J.Box,{display:"flex"},b.default.createElement(J.Anchor,{href:"#",onClick:r=>{Q(r),e.onChange({...e.item,answerValueSet:void 0,answerOption:[...t,{id:St()}]})}},"Add choice"),b.default.createElement(J.Space,{w:"lg"}),b.default.createElement(J.Anchor,{href:"#",onClick:r=>{Q(r),e.onChange({...e.item,answerOption:[],answerValueSet:""})}},"Add value set")))}function ec(e){return b.default.createElement("div",null,e.options.map(o=>{let[t,r]=$e({type:"QuestionnaireItemAnswerOption",value:o},"value");return b.default.createElement("div",{key:o.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},b.default.createElement("div",null,b.default.createElement(ho,{key:o.id,name:"value[x]",property:e.property,defaultPropertyType:r,defaultValue:t,onChange:(a,n)=>{let f=[...e.options],s=f.findIndex(l=>l.id===o.id);f[s]={id:o.id,[n]:a},e.onChange({...e.item,answerOption:f})}})),b.default.createElement("div",null,b.default.createElement(J.Anchor,{href:"#",onClick:a=>{Q(a),e.onChange({...e.item,answerOption:e.options.filter(n=>n.id!==o.id)})}},"Remove")))}))}function oc(e){let o=Gr(e.item)??[];return b.default.createElement(b.default.Fragment,null,o.map((t,r)=>b.default.createElement(J.Group,{key:`${t}-${r}`},b.default.createElement(Ot,{name:"resourceType",placeholder:"Resource Type",defaultValue:t,onChange:a=>{e.onChange(Ur(e.item,o.map(n=>n===t?a:n)))}}),b.default.createElement(J.Anchor,{href:"#",onClick:a=>{Q(a),e.onChange(Ur(e.item,o.filter(n=>n!==t)))}},"Remove"))),b.default.createElement(J.Anchor,{href:"#",onClick:t=>{Q(t),e.onChange(Ur(e.item,[...o,""]))}},"Add Resource Type"))}var Zf=1,Yf=1;function el(e){return e+Zf++}function St(){return"id-"+Yf++}function tc(e){return{...e,id:e.id||St(),item:di(e.item)}}function di(e){if(e)return e.forEach(o=>{o.id?.match(/^id-\d+$/)&&(Yf=Math.max(Yf,parseInt(o.id.substring(3),10)+1)),o.linkId?.match(/^q\d+$/)&&(Zf=Math.max(Zf,parseInt(o.linkId.substring(1),10)+1))}),e.map(o=>({...o,id:o.id||St(),item:di(o.item),answerOption:rc(o.answerOption)}))}function rc(e){if(e)return e.map(o=>({...o,id:o.id||St()}))}function ac(){return{id:St(),linkId:el("s"),type:"group",text:"New Page",extension:[{url:"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl",valueCodeableConcept:{coding:[{system:"http://hl7.org/fhir/questionnaire-item-control",code:"page"}]}}]}}function nc(e,o,t){let r=e??[],a=o+t;if(a<0||a>=r.length)return r;let n=[...r];return[n[o],n[a]]=[n[a],n[o]],n}var Oe=require("@mantine/core"),bt=require("@medplum/core"),N=m(require("react"));function ol(e){let o=T(),t=o.getProfile(),[r,a]=(0,N.useState)(!1),n=te(e.questionnaire),[f,s]=(0,N.useState)(),[l,i]=(0,N.useState)(0);(0,N.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>o.requestSchema("QuestionnaireResponse")).then(()=>a(!0)).catch(console.log)},[o]),(0,N.useEffect)(()=>{s(n?lc(n):void 0)},[n]);function u(P){let B=f?.item??[],A={resourceType:"QuestionnaireResponse",item:xi(B,P)};s(A)}if(!r||!n)return null;let d=dc(n),c=()=>i(P=>P+1),I=()=>i(P=>P-1);return N.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&f&&e.onSubmit({...f,questionnaire:(0,bt.getReferenceString)(n),subject:e.subject,source:(0,bt.createReference)(t),authored:new Date().toISOString(),status:"completed"})}},n.title&&N.default.createElement(Oe.Title,null,n.title),n.item&&N.default.createElement(mi,{items:n.item??[],allResponses:f?.item??[],onChange:u,renderPages:d>1,activePage:l}),N.default.createElement(fc,{activePage:l,numberOfPages:d,nextStep:c,prevStep:I,submitButtonText:e.submitButtonText}))}function mi(e){let[o,t]=(0,N.useState)(tl(e.items));function r(n,f){let s=o.some(i=>i.id===n),l;s?l=o.map(i=>i.id===n?f:i):l=[...o,f],t(l),e.onChange(l)}let a=e.items.map((n,f)=>e.renderPages?N.default.createElement(Oe.Stepper.Step,{label:n.text,key:n.linkId},N.default.createElement(ci,{key:`${n.linkId}-${f}`,item:n,index:f,allResponses:e.allResponses,currentResponseItems:o,groupSequence:e.groupSequence,setResponseItem:r})):N.default.createElement(ci,{key:`${n.linkId}-${f}`,item:n,index:f,groupSequence:e.groupSequence,allResponses:e.allResponses,currentResponseItems:o,setResponseItem:r}));return e.renderPages?N.default.createElement(Oe.Stepper,{active:e.activePage??0,allowNextStepsSelect:!1,p:6},a):N.default.createElement(Oe.Stack,null,a)}function ci(e){return Jf(e.item,e.allResponses)?e.item.type==="display"?N.default.createElement("p",{key:e.item.linkId},e.item.text):e.item.type==="group"?N.default.createElement(Qa,{key:e.item.linkId,item:e.item,allResponses:e.allResponses,currentResponseItems:e.currentResponseItems,groupSequence:e.groupSequence,onChange:o=>e.setResponseItem(o.id,o)}):e.item.type==="boolean"?N.default.createElement(Qa,{item:e.item,allResponses:e.allResponses,currentResponseItems:e.currentResponseItems,groupSequence:e.groupSequence,onChange:o=>e.setResponseItem(o.id,o)}):N.default.createElement(Xe,{key:e.item.linkId,htmlFor:e.item.linkId,title:e.item.text},N.default.createElement(Qa,{item:e.item,allResponses:e.allResponses,currentResponseItems:e.currentResponseItems,groupSequence:e.groupSequence,onChange:o=>e.setResponseItem(o.id,o)})):null}function Qa(e){let o=e.item;function t(r,a){let n=a??0,f=e.currentResponseItems.filter(s=>s.linkId===o.linkId);e.onChange({id:pc(f,n),linkId:o.linkId,text:o.text,item:r})}return o.type==="group"?N.default.createElement(cc,{key:e.item.linkId,text:o.text??"",item:o??[],allResponses:e.allResponses,onChange:t}):N.default.createElement(mc,{item:e.item,key:e.item.linkId},({index:r})=>N.default.createElement(Ga,{...e,index:r}))}function fc(e){let o=e.activePage>0,t=e.activePage<e.numberOfPages-1,r=e.activePage===e.numberOfPages-1;return N.default.createElement(Oe.Group,{position:"right",mt:"xl",spacing:"xs"},o&&N.default.createElement(Oe.Button,{onClick:e.prevStep},"Back"),t&&N.default.createElement(Oe.Button,{onClick:e.nextStep},"Next"),r&&N.default.createElement(Oe.Button,{type:"submit"},e.submitButtonText??"Submit"))}function lc(e){return{resourceType:"QuestionnaireResponse",questionnaire:(0,bt.getReferenceString)(e),item:tl(e.item)}}function tl(e){return e?.map(sc)??[]}function sc(e){return{id:pi(),linkId:e.linkId,text:e.text,item:tl(e.item),answer:e.initial?.map(uc)??[]}}var ic=1;function pi(){return"id-"+ic++}function uc(e){return{...e}}function dc(e){let o=e?.item?.[0];return o&&(0,bt.getExtension)(o,"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl")?.valueCodeableConcept?.coding?.[0]?.code==="page"?e.item.length:1}function cc(e){let[o,t]=(0,N.useState)(xc(e.item,e.allResponses)),r=e.item;return N.default.createElement(N.default.Fragment,null,[...Array(o)].map((a,n)=>N.default.createElement("div",{key:n},e.text&&N.default.createElement(Oe.Title,{order:3,mb:"md"},e.text),N.default.createElement(mi,{items:r.item??[],allResponses:e.allResponses,groupSequence:n,onChange:f=>e.onChange(f,n)}))),e.item.repeats&&N.default.createElement(Oe.Anchor,{onClick:()=>t(a=>a+1)},"Add Group"))}function mc(e){let[o,t]=(0,N.useState)(1),r=e.item?.repeats&&e.item.type!=="choice"&&e.item.type!=="open-choice";return N.default.createElement(N.default.Fragment,null,[...Array(o)].map((a,n)=>N.default.createElement(N.default.Fragment,{key:`${e.item.linkId}-${n}`},e.children({index:n}))),r&&N.default.createElement(Oe.Anchor,{onClick:()=>t(a=>a+1)},"Add Item"))}function pc(e,o){return e.length===0||e.length<o+1?pi():e[o].id}function xc(e,o){let t=o.filter(r=>r.linkId===e.linkId).length;return t>0?t:1}function Ic(e,o){let t=xi(e.item??[],o.item??[]);return{...o,item:t,answer:o.answer&&o.answer.length>0?o.answer:e.answer}}function gc(e,o){let t=[],r=Math.max(e.length,o.length);for(let a=0;a<r;a++)e[a]&&o[a]?t.push(Ic(e[a],o[a])):o[a]&&t.push(o[a]);return t}function xi(e,o){let t=[];for(let r of new Set(o.map(a=>a.linkId))){let a=e.filter(f=>f.linkId===r),n=o.filter(f=>f.linkId===r);t=t.concat(gc(a,n))}return t}var Y=require("@mantine/core"),Qr=require("@medplum/core");var G=m(require("react"));var hc=(0,Y.createStyles)(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[3]}`,borderRadius:e.radius.sm,transition:"all 0.1s"}})),Cc=["gender","age","gestationalAge","context","appliesTo","category"],yc={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function vc(e){e=Object.assign(yc,e);let o=e.definition,[t,r]=(0,G.useState)([]),[a,n]=(0,G.useState)(1),[f,s]=(0,G.useState)(1);return(0,G.useEffect)(()=>{let P=bc(o,s);r(Pc(P.qualifiedInterval||[],n))},[o]),G.default.createElement(le,{testid:"reference-range-editor",onSubmit:l},G.default.createElement(Y.Stack,null,t.map(P=>G.default.createElement(Ii,{unit:Dc(o.quantitativeDetails?.unit),onChange:d,onAdd:c,onRemove:I,onRemoveGroup:u,key:`group-${P.id}`,intervalGroup:P}))),G.default.createElement(Y.ActionIcon,{title:"Add Group",size:"sm",onClick:P=>{Q(P),i({id:`group-id-${a}`,filters:{},intervals:[]}),n(B=>B+1)}},G.default.createElement(kt,null)),G.default.createElement(Y.Group,{position:"right"},G.default.createElement(Y.Button,{type:"submit"},"Save")));function l(){let P=t.flatMap(B=>B.intervals).filter(B=>!kc(B));e.onSubmit({...o,qualifiedInterval:P})}function i(P){r(B=>[...B,P])}function u(P){r(B=>B.filter(k=>k.id!==P.id))}function d(P,B){r(k=>{k=[...k];let A=k.find(g=>g.id===P),M=A?.intervals.findIndex(g=>g.id===B.id);return M!==void 0&&A?.intervals[M]&&(A.intervals[M]=B),k})}function c(P,B){B.id===void 0&&(B.id=`id-${f}`,s(k=>k+1)),r(k=>{k=[...k];let A=k.findIndex(M=>M.id===P);if(A!==-1){let M={...k[A]};B={...B,...M.filters},M.intervals=[...M.intervals,B],k[A]=M}return k})}function I(P,B){r(k=>{k=[...k];let A=k.find(M=>M.id===P);return A&&(A.intervals=A.intervals.filter(M=>M.id!==B.id)),k})}}function Ii(e){let{intervalGroup:o,unit:t}=e,{classes:r}=hc();return G.default.createElement(wo,{"data-testid":o.id,className:r.section},G.default.createElement(Y.Stack,{spacing:"lg"},G.default.createElement(Y.Group,{position:"right"},G.default.createElement(Y.ActionIcon,{title:"Remove Group","data-testid":`remove-group-button-${o.id}`,key:`remove-group-button-${o.id}`,size:"sm",onClick:a=>{Q(a),e.onRemoveGroup(o)}},G.default.createElement(Wo,null))),G.default.createElement(Sc,{intervalGroup:o,onChange:e.onChange}),G.default.createElement(Y.Divider,null),o.intervals.map(a=>G.default.createElement(Y.Stack,{key:`interval-${a.id}`,spacing:"xs"},G.default.createElement(Y.Group,null,G.default.createElement(Y.TextInput,{key:`condition-${a.id}`,"data-testid":`condition-${a.id}`,defaultValue:a.condition,label:"Condition: ",size:"sm",onChange:n=>{Q(n),e.onChange(o.id,{...a,condition:n.currentTarget.value.trim()})}}),G.default.createElement(Y.ActionIcon,{title:"Remove Interval",size:"sm",key:`remove-interval-${a.id}`,"data-testid":`remove-interval-${a.id}`,onClick:n=>{Q(n),e.onRemove(o.id,a)}},G.default.createElement(Wo,null))),G.default.createElement(Qt,{onChange:n=>{e.onChange(o.id,{...a,range:n})},key:`range-${a.id}`,name:`range-${a.id}`,defaultValue:a.range}))),G.default.createElement(Y.ActionIcon,{title:"Add Interval",size:"sm",onClick:a=>{Q(a),e.onAdd(o.id,{range:{low:{unit:t},high:{unit:t}}})}},G.default.createElement(kt,null))))}function Sc(e){let{intervalGroup:o,onChange:t}=e;o.filters.age||(o.filters.age={});for(let r of["low","high"])o.filters.age[r]?.unit||(o.filters.age[r]={...o.filters.age[r],unit:"years",system:"http://unitsofmeasure.org"});return G.default.createElement(Y.Stack,{style:{maxWidth:"50%"}},G.default.createElement(Y.Group,null,G.default.createElement(Y.NativeSelect,{data:["","male","female"],label:"Gender:",defaultValue:o.filters.gender||"",onChange:r=>{for(let a of o.intervals){let n=r.currentTarget.value;n===""&&(n=void 0),t(o.id,{...a,gender:n})}}})),G.default.createElement(Y.Group,{spacing:"xs"},G.default.createElement(Y.Text,{component:"label",htmlFor:`div-age-${o.id}`},"Age:"),G.default.createElement("div",{id:`div-age-${o.id}`},G.default.createElement(Qt,{key:`age-${o.id}`,name:`age-${o.id}`,defaultValue:o.filters.age,onChange:r=>{for(let a of o.intervals)t(o.id,{...a,age:r})}}))),G.default.createElement(Y.NativeSelect,{data:["","pre-puberty","follicular","midcycle","luteal","postmenopausal"],label:"Endocrine:",defaultValue:o.filters.context?.text||"",onChange:r=>{for(let a of o.intervals){let n=r.currentTarget.value;n===""?(n=void 0,t(o.id,{...a,context:void 0})):t(o.id,{...a,context:{text:n,coding:[{code:n,system:"http://terminology.hl7.org/CodeSystem/referencerange-meaning"}]}})}}}),G.default.createElement(Y.NativeSelect,{data:["","reference","critical","absolute"],label:"Category: ",defaultValue:o.filters.category,onChange:r=>{for(let a of o.intervals){let n=r.currentTarget.value;n===""?t(o.id,{...a,category:void 0}):t(o.id,{...a,category:n})}}}))}function bc(e,o){let t=e.qualifiedInterval||[],r=Math.max(...t.map(a=>{let n=parseInt(a.id?.substring(3)||"",10);return isNaN(n)?Number.NEGATIVE_INFINITY:n}))+1;return Number.isFinite(r)||(r=1),e={...e,qualifiedInterval:t.map(a=>({...a,id:a.id||`id-${r++}`}))},o(r),e}function Pc(e,o){let t=1,r={};for(let a of e){let n=Tc(a);n in r||(r[n]={id:`group-id-${t++}`,filters:Object.fromEntries(Cc.map(f=>[f,a[f]])),intervals:[]}),r[n].intervals.push(a)}return o(t),Object.values(r)}function Tc(e){return[`gender=${e.gender}`,`age=${(0,Qr.formatRange)(e.age)}`,`gestationalAge=${(0,Qr.formatRange)(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map(t=>t.text).join("+")}`,`category=${e.category}`].join(":")}function Dc(e){return e&&((0,Qr.getCodeBySystem)(e,"http://unitsofmeasure.org")||e.text)}function kc(e){return e.range?.low?.value===void 0&&e.range?.high?.value===void 0}var vo=require("@mantine/core"),za=require("@medplum/core");var xe=m(require("react"));function Bc(e){let o=T(),t=te(e.value),[r,a]=(0,xe.useState)(!1),[n,f]=(0,xe.useState)();if((0,xe.useEffect)(()=>{t&&!r&&(o.executeBatch(s(t)).then(f).catch(console.log),a(!0))},[o,t,r]),!t||!n)return null;return xe.default.createElement(vo.Grid,null,t.action?.map((i,u)=>{let d=i.resource&&l(i.resource),c=d?.input?.[0]?.valueReference,I=d?.output?.[0]?.valueReference;return xe.default.createElement(xe.default.Fragment,{key:`action-${u}`},xe.default.createElement(vo.Grid.Col,{span:1,p:"md"},d?.status==="completed"?xe.default.createElement(sn,null):xe.default.createElement(kn,{color:"gray"})),xe.default.createElement(vo.Grid.Col,{span:9,p:"xs"},xe.default.createElement(vo.Text,{weight:500},i.title),i.description&&xe.default.createElement("div",null,i.description),xe.default.createElement("div",null,"Last edited by\xA0",xe.default.createElement(uo,{value:d?.meta?.author}),"\xA0on\xA0",(0,za.formatDateTime)(d?.meta?.lastUpdated)),xe.default.createElement("div",null,"Status: ",xe.default.createElement(Er,{status:d?.status||"unknown"}))),xe.default.createElement(vo.Grid.Col,{span:2,p:"md"},c&&!I&&xe.default.createElement(vo.Button,{onClick:()=>e.onStart(d,c)},"Start"),c&&I&&xe.default.createElement(vo.Button,{onClick:()=>e.onEdit(d,c,I)},"Edit")))}));function s(i){let u=[];if(i.action)for(let d of i.action)d.resource?.reference&&u.push({request:{method:"GET",url:d.resource.reference}});return{resourceType:"Bundle",type:"batch",entry:u}}function l(i){for(let u of n?.entry)if(u.resource&&i.reference===(0,za.getReferenceString)(u.resource))return u.resource}}var vi=require("@mantine/core"),Pe=m(require("react"));var gi=require("@medplum/core");function Wa(e,o){let t=Ac(e,o);return Fc(t,e,o)}function Ac(e,o){let t=e.length,r=o.length,a=t+r+1,n=1+2*a,f=n/2|0,s=new Array(n);s[f+1]={i:0,j:-1,prev:void 0,snake:!0};for(let l=0;l<a;l++){for(let i=-l;i<=l;i+=2){let u=f+i,d=u+1,c=u-1,I=s[d],P=s[c],B,k=0;i===-l||i!==l&&P.i<I.i?(k=I.i,B=I):(k=P.i+1,B=P),s[c]=void 0;let A=k-i,M={i:k,j:A,prev:Mc(B),snake:!1};for(;k<t&&A<r&&e[k]===o[A];)k++,A++;if(k>M.i&&(M={i:k,j:A,prev:M,snake:!0}),s[u]=M,k>=t&&A>=r)return s[u]}s[f+l-1]=void 0}}function Fc(e,o,t){let r=[],a=e;for(a.snake&&(a=a.prev);a?.prev&&a.prev.j>=0;){let n=a.i,f=a.j;a=a.prev;let s=a.i,l=a.j,i={position:s,lines:o.slice(s,n)},u={position:l,lines:t.slice(l,f)},d;i.lines.length===0&&u.lines.length>0?d="insert":i.lines.length>0&&u.lines.length===0?d="delete":d="change",r.push({original:i,revised:u,type:d}),a.snake&&(a=a.prev)}return r}function Mc(e){return e&&!e.snake&&e.prev?e.prev:e}function hi(e){let o=e.entry.filter(r=>!!r.resource).map(r=>({meta:r.resource?.meta,lines:(0,gi.stringify)(r.resource,!0).match(/[^\r\n]+/g)})).sort((r,a)=>r.meta.lastUpdated.localeCompare(a.meta.lastUpdated)),t=o[0].lines.map(r=>({id:o[0].meta.versionId,meta:o[0].meta,value:r,span:1}));return wc(t,o),Oc(t),t}function wc(e,o){for(let t=1;t<o.length;t++){let r=Wa(o[t-1].lines,o[t].lines);for(let a of r){let n=a.original.position,f=a.original.lines,s=a.revised.lines;if((a.type==="delete"||a.type==="change")&&e.splice(n,f.length),a.type==="insert"||a.type==="change")for(let l=0;l<a.revised.lines.length;l++)e.splice(n+l,0,{id:o[t].meta.versionId,meta:o[t].meta,value:s[l],span:1})}}}function Oc(e){let o=0;for(;o<e.length;){let t=o;for(;t<e.length&&e[t].id===e[o].id;)e[t].span=-1,t++;e[o].span=t-o,o=t}}function Ci(e,o){return`/${e.resourceType}/${e.id}/_history/${o}`}function yi(e){let o=Math.floor((Date.now()-Date.parse(e))/1e3),t=Math.floor(o/31536e3);if(t>0)return ar(t,"year");let r=Math.floor(o/2592e3);if(r>0)return ar(r,"month");let a=Math.floor(o/86400);if(a>0)return ar(a,"day");let n=Math.floor(o/3600);if(n>0)return ar(n,"hour");let f=Math.floor(o/60);return f>0?ar(f,"minute"):ar(o,"second")}function ar(e,o){return`${e} ${e===1?o:o+"s"} ago`}var Ec=(0,vi.createStyles)(e=>({container:{overflowX:"auto"},root:{border:`0.1px solid ${e.colors.gray[3]}`,borderCollapse:"collapse",borderRadius:e.radius.sm,borderSpacing:0,fontSize:e.fontSizes.xs,width:"100%","& td":{padding:"2px 4px 0 4px",verticalAlign:"top",whiteSpace:"nowrap"}},startRow:{borderTop:`0.1px solid ${e.colors.gray[3]}`},normalRow:{borderTop:0},author:{lineHeight:"10px"},dateTime:{borderRight:`0.1px solid ${e.colors.gray[3]}`,lineHeight:"20px"},lineNumber:{backgroundColor:e.colors.gray[1],border:0,color:e.colors.gray[5],fontFamily:e.fontFamilyMonospace,padding:`${e.spacing.xs} ${e.spacing.sm}`,textAlign:"right"},line:{fontFamily:e.fontFamilyMonospace,fontSize:e.fontSizes.sm,padding:`${e.spacing.xs} ${e.spacing.sm}`},pre:{margin:0}}));function Lc(e){let{classes:o}=Ec(),t=T(),[r,a]=(0,Pe.useState)(e.history);if((0,Pe.useEffect)(()=>{!e.history&&e.resourceType&&e.id&&t.readHistory(e.resourceType,e.id).then(a).catch(console.log)},[t,e.history,e.resourceType,e.id]),!r)return Pe.default.createElement("div",null,"Loading...");let n=r.entry?.[0]?.resource;if(!n)return null;let f=hi(r);return Pe.default.createElement("div",{className:o.container},Pe.default.createElement("table",{className:o.root},Pe.default.createElement("tbody",null,f.map((s,l)=>Pe.default.createElement("tr",{key:"row-"+l,className:s.span>0?o.startRow:o.normalRow},s.span>0&&Pe.default.createElement(Pe.default.Fragment,null,Pe.default.createElement("td",{className:o.author,rowSpan:s.span},Pe.default.createElement(Ho,{value:s.meta.author,link:!0})),Pe.default.createElement("td",{className:o.dateTime,rowSpan:s.span},Pe.default.createElement(ke,{to:Ci(n,s.meta.versionId)},yi(s.meta.lastUpdated)))),Pe.default.createElement("td",{className:o.lineNumber},l+1),Pe.default.createElement("td",{className:o.line},Pe.default.createElement("pre",{className:o.pre},s.value)))))))}var Si=require("@mantine/core"),rl=require("@medplum/core"),Qo=m(require("react"));var Rc=(0,Si.createStyles)(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function Nc(e){let o=e.original,t=e.revised;e.ignoreMeta&&(o={...o,meta:void 0},t={...t,meta:void 0});let r=(0,rl.stringify)(o,!0).match(/[^\r\n]+/g),a=(0,rl.stringify)(t,!0).match(/[^\r\n]+/g),n=Wa(r,a);return Qo.default.createElement("pre",{style:{color:"gray"}},n.map((f,s)=>Qo.default.createElement(Hc,{key:"delta"+s,delta:f})))}function Hc(e){let{classes:o}=Rc();return Qo.default.createElement(Qo.default.Fragment,null,"...",Qo.default.createElement("br",null),e.delta.original.lines.length>0&&Qo.default.createElement("div",{className:o.removed},e.delta.original.lines.join(`
66
+ `)),e.delta.revised.lines.length>0&&Qo.default.createElement("div",{className:o.added},e.delta.revised.lines.join(`
67
+ `)),"...",Qo.default.createElement("br",null))}var So=require("@mantine/core"),bi=require("@medplum/core"),Ee=m(require("react"));function Vc(e){let o=T(),t=te(e.defaultValue),[r,a]=(0,Ee.useState)(!1),[n,f]=(0,Ee.useState)();return(0,Ee.useEffect)(()=>{t&&(f((0,bi.deepClone)(t)),o.requestSchema(t.resourceType).then(()=>a(!0)).catch(console.log))},[o,t]),!r||!n?Ee.default.createElement("div",null,"Loading..."):Ee.default.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:s=>{s.preventDefault(),e.onSubmit&&e.onSubmit(n)}},Ee.default.createElement(So.Stack,{mb:"xl"},Ee.default.createElement(Xe,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},Ee.default.createElement(So.TextInput,{name:"resourceType",defaultValue:n.resourceType,disabled:!0})),Ee.default.createElement(Xe,{title:"ID",htmlFor:"id",outcome:e.outcome},Ee.default.createElement(So.TextInput,{name:"id",defaultValue:n.id,disabled:!0}))),Ee.default.createElement(Wt,{typeName:n.resourceType,defaultValue:n,outcome:e.outcome,onChange:f}),Ee.default.createElement(So.Group,{position:"right",mt:"xl"},Ee.default.createElement(So.Button,{type:"submit"},"OK"),e.onDelete&&Ee.default.createElement(So.Button,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(n)}},"Delete")))}var Pi=require("@mantine/core"),Xa=require("@medplum/core"),Ie=m(require("react"));function qc(e){let o=T(),[t,r]=(0,Ie.useState)(e.history);return(0,Ie.useEffect)(()=>{!e.history&&e.resourceType&&e.id&&o.readHistory(e.resourceType,e.id).then(r).catch(console.log)},[o,e.history,e.resourceType,e.id]),t?Ie.default.createElement(Pi.Table,{withBorder:!0,withColumnBorders:!0},Ie.default.createElement("thead",null,Ie.default.createElement("tr",null,Ie.default.createElement("th",null,"Author"),Ie.default.createElement("th",null,"Date"),Ie.default.createElement("th",null,"Version"))),Ie.default.createElement("tbody",null,t.entry?.map((a,n)=>Ie.default.createElement(Gc,{key:"entry-"+n,entry:a})))):Ie.default.createElement("div",null,"Loading...")}function Gc(e){let{response:o,resource:t}=e.entry;return t?Ie.default.createElement("tr",null,Ie.default.createElement("td",null,Ie.default.createElement(Ho,{value:t.meta?.author,link:!0})),Ie.default.createElement("td",null,(0,Xa.formatDateTime)(t.meta?.lastUpdated)),Ie.default.createElement("td",null,Ie.default.createElement(ke,{to:Uc(t)},t.meta?.versionId))):Ie.default.createElement("tr",null,Ie.default.createElement("td",{colSpan:3},(0,Xa.normalizeErrorString)(o?.outcome)))}function Uc(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}var at=require("@mantine/core"),Ka=require("@medplum/core"),ne=m(require("react"));var Ja=require("@medplum/core"),Pt=require("react");function Qc(e,o){return nl("search",e,o)}function zc(e,o){return nl("searchOne",e,o)}function al(e,o){return nl("searchResources",e,o)}function nl(e,o,t){let r=T(),[a,n]=(0,Pt.useState)(),[f,s]=(0,Pt.useState)(!1),[l,i]=(0,Pt.useState)(),[u,d]=(0,Pt.useState)();return(0,Pt.useEffect)(()=>{let c=r.fhirSearchUrl(o,t).toString();c!==a&&(n(c),r[e](o,t).then(I=>{s(!1),i(I),d(Ja.allOk)}).catch(I=>{s(!1),i(void 0),d((0,Ja.normalizeOperationOutcome)(I))}))},[r,e,o,t,a,i]),[l,f,u]}var Wc=(0,at.createStyles)(e=>({container:{display:"flex",minHeight:400},info:{minWidth:300,padding:20,borderRight:`1px solid ${e.colors.gray[3]}`},selection:{minWidth:300,padding:20}}));function Xc(e){let{classes:o}=Wc(),t=te(e.schedule),r=te(e.questionnaire),[a,n]=(0,ne.useState)(Da()),[f,s]=(0,ne.useState)(),[l,i]=(0,ne.useState)(),[u,d]=(0,ne.useState)(),[c]=al("Slot",new URLSearchParams([["_count",(30*24).toString()],["schedule",(0,Ka.isReference)(e.schedule)?e.schedule.reference:(0,Ka.getReferenceString)(e.schedule)],["start","gt"+Jc(a)],["start","lt"+Kc(a)]]));if(!t||!c||!r)return null;let I=t.actor?.[0];return ne.default.createElement("div",{className:o.container,"data-testid":"scheduler"},ne.default.createElement("div",{className:o.info},I&&ne.default.createElement(Le,{value:I,size:"xl"}),I&&ne.default.createElement(at.Text,{size:"xl",weight:500},ne.default.createElement(uo,{value:I})),ne.default.createElement("p",null,"1 hour"),f&&ne.default.createElement("p",null,f.toLocaleDateString()),l&&ne.default.createElement("p",null,Ti(new Date(l.start)))),ne.default.createElement("div",{className:o.selection},!f&&ne.default.createElement("div",null,ne.default.createElement("h3",null,"Select date"),ne.default.createElement(vf,{slots:c,onChangeMonth:n,onClick:s})),f&&!l&&ne.default.createElement("div",null,ne.default.createElement("h3",null,"Select time"),ne.default.createElement(at.Stack,null,c.map(P=>{let B=new Date(P.start);return B.getTime()>f.getTime()&&B.getTime()<f.getTime()+24*3600*1e3&&ne.default.createElement("div",{key:P.id},ne.default.createElement(at.Button,{variant:"outline",style:{width:150},onClick:()=>i(P)},Ti(B)))}))),f&&l&&!u&&ne.default.createElement(ol,{questionnaire:r,submitButtonText:"Next",onSubmit:d}),f&&l&&u&&ne.default.createElement("div",null,ne.default.createElement("h3",null,"You're all set!"),ne.default.createElement("p",null,"Check your email for a calendar invite."))))}function Jc(e){return Di(e.getTime())}function Kc(e){return Di(e.getTime()+31*24*60*60*1e3)}function Di(e){let o=new Date(Math.max(Date.now(),e));return o.setHours(0,0,0,0),o.toISOString()}function Ti(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}var zr=require("@medplum/core"),ki=m(require("react"));function $c(e){return ki.default.createElement(qo,{value:e.serviceRequest,loadTimelineResources:async(o,t,r)=>{let a=`${t}/${r}`,n=100;return Promise.allSettled([o.readHistory("ServiceRequest",r),o.search("Communication",{"based-on":a,_count:n}),o.search("DiagnosticReport",{"based-on":a,_count:n}),o.search("Media",{"based-on":a,_count:n}),o.search("DocumentReference",{related:a,_count:n}),o.search("Task",{_filter:`based-on eq ${a} or focus eq ${a} or subject eq ${a}`,_count:n})])},createCommunication:(o,t,r)=>({resourceType:"Communication",status:"completed",basedOn:[(0,zr.createReference)(o)],subject:o.subject,sender:(0,zr.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",basedOn:[(0,zr.createReference)(o)],subject:o.subject,operator:(0,zr.createReference)(t),issued:new Date().toISOString(),content:r})})}
68
68
  //# sourceMappingURL=index.cjs.map