@medplum/react 2.1.6 → 2.1.8

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 Di=Object.create;var Xr=Object.defineProperty;var Ti=Object.getOwnPropertyDescriptor;var ki=Object.getOwnPropertyNames;var Bi=Object.getPrototypeOf,Ai=Object.prototype.hasOwnProperty;var Fi=(e,o)=>{for(var t in o)Xr(e,t,{get:o[t],enumerable:!0})},tl=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of ki(o))!Ai.call(e,a)&&a!==t&&Xr(e,a,{get:()=>o[a],enumerable:!(r=Ti(o,a))||r.enumerable});return e};var m=(e,o,t)=>(t=e!=null?Di(Bi(e)):{},tl(o||!e||!e.__esModule?Xr(t,"default",{value:e,enumerable:!0}):t,e)),Mi=e=>tl(Xr({},"__esModule",{value:!0}),e);var zc={};Fi(zc,{AddressDisplay:()=>$a,AddressInput:()=>Ka,AnnotationInput:()=>ja,AppShell:()=>iu,AsyncAutocomplete:()=>it,AttachmentArrayDisplay:()=>Nn,AttachmentArrayInput:()=>Vn,AttachmentButton:()=>dt,AttachmentDisplay:()=>io,AttachmentInput:()=>Ir,BackboneElementDisplay:()=>Nt,BackboneElementInput:()=>zt,CalendarInput:()=>Cf,CheckboxFormSection:()=>Pr,CodeInput:()=>xr,CodeableConceptDisplay:()=>pt,CodeableConceptInput:()=>ff,CodingDisplay:()=>_n,CodingInput:()=>Tr,ContactDetailDisplay:()=>Yn,ContactDetailInput:()=>lf,ContactPointDisplay:()=>yr,ContactPointInput:()=>kr,Container:()=>Mo,DateTimeInput:()=>ao,DefaultResourceTimeline:()=>od,DescriptionList:()=>Jn,DescriptionListEntry:()=>$n,DiagnosticReportDisplay:()=>Ba,Document:()=>gr,ElementDefinitionInputSelector:()=>gs,ElementDefinitionTypeInput:()=>hf,EncounterTimeline:()=>td,ErrorBoundary:()=>lt,FhirPathTable:()=>$s,Form:()=>le,FormSection:()=>$e,Header:()=>wn,HumanNameDisplay:()=>mr,HumanNameInput:()=>cf,IdentifierDisplay:()=>ef,IdentifierInput:()=>mf,Loading:()=>ea,Logo:()=>wo,MedplumLink:()=>De,MedplumProvider:()=>kd,MemoizedFhirPathTable:()=>Td,MemoizedSearchControl:()=>yd,MoneyDisplay:()=>tf,MoneyInput:()=>pf,Navbar:()=>Rn,ObservationTable:()=>Ds,OperationOutcomeAlert:()=>mt,Panel:()=>ct,PatientTimeline:()=>Ad,PlanDefinitionBuilder:()=>Fd,QuantityDisplay:()=>Rt,QuantityInput:()=>Ze,QuestionnaireBuilder:()=>$d,QuestionnaireForm:()=>Yf,QuestionnaireItemType:()=>qr,QuestionnaireRepeatWrapper:()=>Qa,RangeDisplay:()=>vr,RangeInput:()=>Ut,ReferenceDisplay:()=>Xo,ReferenceInput:()=>Ct,ReferenceRangeEditor:()=>gc,ReferenceRangeGroupEditor:()=>di,RegisterForm:()=>mu,RequestGroupDisplay:()=>Pc,ResourceArrayDisplay:()=>nf,ResourceArrayInput:()=>If,ResourceAvatar:()=>Re,ResourceBadge:()=>No,ResourceBlame:()=>Mc,ResourceDiff:()=>Oc,ResourceForm:()=>Lc,ResourceHistoryTable:()=>Rc,ResourceInput:()=>Mr,ResourceName:()=>co,ResourcePropertyDisplay:()=>we,ResourcePropertyInput:()=>Co,ResourceTable:()=>Aa,ResourceTimeline:()=>Vo,Scheduler:()=>qc,SearchChangeEvent:()=>Na,SearchClickEvent:()=>tt,SearchControl:()=>Xs,SearchFieldEditor:()=>qf,SearchFilterEditor:()=>Gf,SearchLoadEvent:()=>Ha,ServiceRequestTimeline:()=>Qc,SignInForm:()=>Iu,StatusBadge:()=>Er,Timeline:()=>Sf,TimelineItem:()=>Ho,TimingInput:()=>gf,addDateFilterBetween:()=>Ma,addField:()=>fd,addFilter:()=>vt,addLastMonthFilter:()=>Ff,addMissingFilter:()=>wa,addNextMonthFilter:()=>wf,addThisMonthFilter:()=>Mf,addTodayFilter:()=>kf,addTomorrowFilter:()=>Bf,addYearToDateFilter:()=>Ef,addYesterdayFilter:()=>Tf,buildFieldNameString:()=>Ge,clearFilters:()=>nd,clearFiltersOnField:()=>Nr,convertIsoToLocal:()=>uf,convertLocalToIso:()=>df,createScriptTag:()=>Cr,deleteFilter:()=>Df,getErrorsForInput:()=>Fe,getIssuesForExpression:()=>hr,getNewMultiSelectValues:()=>Xf,getOpString:()=>_t,getQuestionnaireItemReferenceTargetTypes:()=>Gr,getRecaptcha:()=>Qn,getSearchOperators:()=>Hf,getSortField:()=>Rf,initRecaptcha:()=>Un,isChoiceQuestion:()=>zf,isQuestionEnabled:()=>Wf,isSortDescending:()=>Nf,parseForm:()=>On,reactContext:()=>$r,renderValue:()=>Vf,setFilters:()=>jt,setOffset:()=>Gs,setPage:()=>Lf,setQuestionnaireItemReferenceTargetTypes:()=>Ur,setSort:()=>Oa,sortByDateAndPriority:()=>bf,toggleSort:()=>ld,useMedplum:()=>T,useMedplumContext:()=>Pt,useMedplumNavigate:()=>Po,useMedplumProfile:()=>fr,useResource:()=>re});module.exports=Mi(zc);var rl=require("@medplum/core"),Ja=m(require("react"));function $a(e){let o=e.value;return o?Ja.default.createElement(Ja.default.Fragment,null,(0,rl.formatAddress)(o)):null}var so=require("@mantine/core"),Ke=m(require("react"));function al(e,o){return e.line&&e.line.length>o?e.line[o]:""}function nl(e,o,t){let r=e.line||[];for(;r.length<=o;)r.push("");return r[o]=t,{...e,line:r}}function Ka(e){let[o,t]=(0,Ke.useState)(e.defaultValue||{}),r=(0,Ke.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(nl(r.current||{},0,c))}function l(c){a(nl(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 Ke.default.createElement(so.Group,{spacing:"xs",grow:!0,noWrap:!0},Ke.default.createElement(so.NativeSelect,{"data-testid":"address-use",defaultValue:o.use,onChange:c=>n(c.currentTarget.value),data:["","home","work","temp","old","billing"]}),Ke.default.createElement(so.NativeSelect,{"data-testid":"address-type",defaultValue:o.type,onChange:c=>f(c.currentTarget.value),data:["","postal","physical","both"]}),Ke.default.createElement(so.TextInput,{placeholder:"Line 1",defaultValue:al(o,0),onChange:c=>s(c.currentTarget.value)}),Ke.default.createElement(so.TextInput,{placeholder:"Line 2",defaultValue:al(o,1),onChange:c=>l(c.currentTarget.value)}),Ke.default.createElement(so.TextInput,{placeholder:"City",defaultValue:o.city,onChange:c=>i(c.currentTarget.value)}),Ke.default.createElement(so.TextInput,{placeholder:"State",defaultValue:o.state,onChange:c=>u(c.currentTarget.value)}),Ke.default.createElement(so.TextInput,{placeholder:"Postal Code",defaultValue:o.postalCode,onChange:c=>d(c.currentTarget.value)}))}var fl=require("@mantine/core"),ll=require("@medplum/core"),Dt=m(require("react"));var Jr=require("react"),$r=(0,Jr.createContext)(void 0);function Pt(){return(0,Jr.useContext)($r)}function T(){return Pt().medplum}function Po(){return Pt().navigate}function fr(){return Pt().profile}function ja(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,ll.createReference)(o),time:new Date().toISOString()}:{};r(s),e.onChange&&e.onChange(s)}return Dt.default.createElement(fl.TextInput,{name:e.name,placeholder:"Annotation text",defaultValue:t.text,onChange:f=>n(f.currentTarget.value)})}var ia=require("@mantine/core"),ro=m(require("react"));var ml=require("@mantine/core"),pl=require("@medplum/core");var lr=require("react"),Qo=m(require("prop-types"));var sl={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 wi=Object.defineProperty,Oi=Object.defineProperties,Ei=Object.getOwnPropertyDescriptors,Kr=Object.getOwnPropertySymbols,dl=Object.prototype.hasOwnProperty,cl=Object.prototype.propertyIsEnumerable,il=(e,o,t)=>o in e?wi(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,ul=(e,o)=>{for(var t in o||(o={}))dl.call(o,t)&&il(e,t,o[t]);if(Kr)for(var t of Kr(o))cl.call(o,t)&&il(e,t,o[t]);return e},Li=(e,o)=>Oi(e,Ei(o)),Ri=(e,o)=>{var t={};for(var r in e)dl.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Kr)for(var r of Kr(e))o.indexOf(r)<0&&cl.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=Ri(f,["color","size","stroke","children"]);return(0,lr.createElement)("svg",ul(Li(ul({ref:n},sl),{width:l,height:l,stroke:s,strokeWidth:i,className:`tabler-icon tabler-icon-${e}`}),d),[...t.map(([c,h])=>(0,lr.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 _a=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 Za=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 Ya=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 en=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 on=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 tn=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 rn=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 an=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 nn=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 fn=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 ln=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 Tt=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 sn=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 un=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 dn=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 cn=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 mn=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 kt=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 Bt=x("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);var pn=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 xn=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 In=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 gn=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 hn=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 Cn=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 yn=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 vn=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 Sn=x("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);var bn=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 Pn=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 At=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 Dn=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 Tn=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 kn=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 Bn=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(ml.Alert,{icon:Zr.default.createElement(ft,{size:16}),title:"Something went wrong",color:"red"},(0,pl.normalizeErrorString)(this.state.error)):this.props.children}};var Yr=require("@mantine/core"),An=m(require("react"));function ea(){return An.default.createElement(Yr.Center,{style:{width:"100%",height:"100vh"}},An.default.createElement(Yr.Loader,null))}var K=require("@mantine/core"),pr=require("@medplum/core");var X=m(require("react"));var xl=require("@medplum/core"),Fn=m(require("react"));function mr(e){let o=e.value;return o?Fn.default.createElement(Fn.default.Fragment,null,(0,xl.formatHumanName)(o,e.options)):null}var Mn=require("@mantine/core"),aa=require("@medplum/core"),ra=m(require("react"));var gl=require("@mantine/core"),ta=require("@medplum/core"),hl=m(require("react"));function Q(e){e.preventDefault(),e.stopPropagation()}function oa(e){if(Il(e))return!0;if(e instanceof HTMLTableCellElement){let o=e.children;if(o.length===1&&Il(o[0]))return!0}return!1}function Il(e){return e instanceof HTMLInputElement&&e.type==="checkbox"}function De(e){let o=Po(),{to:t,suffix:r,label:a,onClick:n,children:f,...s}=e,l=Ni(t);return r&&(l+="/"+r),hl.default.createElement(gl.Anchor,{href:l,"aria-label":a,onClick:i=>{Q(i),n?n(i):t&&o(l)},...s},f)}function Ni(e){if(e){if(typeof e=="string")return Hi(e);if((0,ta.isResource)(e))return Vi(e);if((0,ta.isReference)(e))return qi(e)}return"#"}function Hi(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e}function Vi(e){return`/${e.resourceType}/${e.id}`}function qi(e){return`/${e.reference}`}var To=require("@medplum/core"),st=require("react");function re(e,o){let t=T(),[r,a]=(0,st.useState)(Cl(t,e)),n=(0,st.useCallback)(f=>{(0,To.deepEquals)(f,r)||a(f)},[r,a]);return(0,st.useEffect)(()=>{n(Cl(t,e))},[t,e,n]),(0,st.useEffect)(()=>{let f=!0;return(0,To.isReference)(e)&&t.readReference(e).then(s=>{f&&n(s)}).catch(s=>{f&&(n(void 0),o&&o((0,To.normalizeOperationOutcome)(s)))}),()=>f=!1},[t,r,e,n,o]),r}function Cl(e,o){if(o){if((0,To.isResource)(o))return o;if((0,To.isReference)(o))return e.getCachedReference(o)}}function Re(e){let o=re(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(De,{to:o},ra.default.createElement(Mn.Avatar,{src:r,alt:t,radius:a,...n})):ra.default.createElement(Mn.Avatar,{src:r,alt:t,radius:a,...n})}var ut=require("@mantine/core"),ko=require("@medplum/core");var Qe=m(require("react"));var na=require("@mantine/core"),yl=require("@mantine/notifications"),vl=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=Gi(o),u=(0,fe.useRef)(null),[d,c]=(0,fe.useState)(),[h,D]=(0,fe.useState)(),[F,P]=(0,fe.useState)(),[k,A]=(0,fe.useState)(),[I,R]=(0,fe.useState)(i.map(r)),[C,L]=(0,fe.useState)([]),me=(0,fe.useRef)();me.current=d;let oo=(0,fe.useRef)();oo.current=h;let Be=(0,fe.useRef)();Be.current=F;let rr=(0,fe.useRef)();rr.current=k;let b=(0,fe.useRef)();b.current=C;let U=(0,fe.useCallback)(()=>{D(void 0);let he=u.current?.value.trim()||"";if(he===me.current)return;c(he);let Ae=new AbortController;P(Ae),a(he,Ae.signal).then(Le=>{Ae.signal.aborted||(L(Le.map(r)),P(void 0),rr.current&&(Le.length>0&&n(Le.slice(0,1)),A(!1)))}).catch(Le=>{Ae.signal.aborted||Le.message.includes("aborted")||(0,yl.showNotification)({color:"red",message:(0,vl.normalizeErrorString)(Le)})})},[a,n,r]),lo=(0,fe.useCallback)(()=>{Be.current&&(Be.current.abort(),P(void 0)),oo.current!==void 0&&window.clearTimeout(oo.current);let he=window.setTimeout(()=>U(),100);D(he)},[U]),Ne=(0,fe.useCallback)(he=>{let Ae=[],Le=[];for(let ar of he){let Wr=b.current?.find(Pi=>Pi.value===ar),nr=Wr?.resource;!nr&&s!==!1&&f&&(nr=f(ar),Wr=r(nr)),nr&&Ae.push(nr),Wr&&Le.push(Wr)}n(Ae),R(Le)},[s,n,f,r]),nt=(0,fe.useCallback)(he=>{he.key==="Enter"&&(!oo.current&&!Be.current?(Q(he),b.current&&b.current.length>0&&(L(b.current.slice(0,1)),Ne([b.current[0].value]))):A(!0))},[Ne]),B=(0,fe.useCallback)(he=>{let Ae=r(f(he));return L([...b.current,Ae]),Ae},[f,L,r]),oe=(0,fe.useCallback)((he,Ae)=>!Ae,[]);return(0,fe.useEffect)(()=>()=>{Be.current&&Be.current.abort()},[]),fe.default.createElement(na.MultiSelect,{...l,ref:u,defaultValue:i.map(t),searchable:!0,onKeyDown:nt,onSearchChange:lo,data:[...I,...C],onFocus:U,onChange:Ne,onCreate:B,rightSectionWidth:40,rightSection:F?fe.default.createElement(na.Loader,{size:16}):null,filter:oe,creatable:!0})}function Gi(e){return e?Array.isArray(e)?e:[e]:[]}var Ui=(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 Qi(e){return e.id}function zi(e){return{value:e.id,label:(0,ko.getDisplayString)(e),resource:e}}function Pl(e){let{classes:o}=Ui(),t=Po(),r=T(),a=(0,Qe.useCallback)(async(f,s)=>{let l=Xi(f),i={signal:s},u=await r.graphql(l,void 0,void 0,i);return Ji(u,f)},[r]),n=(0,Qe.useCallback)(f=>{f.length>0&&t(`/${(0,ko.getReferenceString)(f[0])}`)},[t]);return Qe.default.createElement(it,{key:`${e.pathname}?${e.searchParams}`,size:"sm",radius:"md",className:o.searchInput,icon:Qe.default.createElement(Pn,{size:16}),placeholder:"Search",itemComponent:Wi,toKey:Qi,toOption:zi,onChange:n,loadOptions:a,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var Wi=(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(ut.Group,{noWrap:!0},Qe.default.createElement(Re,{value:e}),Qe.default.createElement("div",null,Qe.default.createElement(ut.Text,null,(0,ko.getDisplayString)(e)),Qe.default.createElement(ut.Text,{size:"xs",color:"dimmed"},r))))});function Xi(e){let o=JSON.stringify(e);return(0,ko.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 _c={};Ei(_c,{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:()=>fd,DescriptionList:()=>$n,DescriptionListEntry:()=>jn,DiagnosticReportDisplay:()=>Ba,Document:()=>gr,ElementDefinitionInputSelector:()=>Ss,ElementDefinitionTypeInput:()=>yf,EncounterTimeline:()=>ld,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:()=>wd,MemoizedFhirPathTable:()=>Md,MemoizedSearchControl:()=>Td,MoneyDisplay:()=>af,MoneyInput:()=>If,Navbar:()=>Hn,ObservationTable:()=>Fs,OperationOutcomeAlert:()=>mt,Panel:()=>ct,PatientTimeline:()=>Ed,PlanDefinitionBuilder:()=>Ld,QuantityDisplay:()=>Nt,QuantityInput:()=>je,QuestionnaireBuilder:()=>Yd,QuestionnaireForm:()=>ol,QuestionnaireItemType:()=>qr,QuestionnaireRepeatWrapper:()=>Qa,RangeDisplay:()=>vr,RangeInput:()=>Qt,ReferenceDisplay:()=>Jo,ReferenceInput:()=>Ct,ReferenceRangeEditor:()=>Sc,ReferenceRangeGroupEditor:()=>Ii,RegisterForm:()=>hu,RequestGroupDisplay:()=>Ac,ResourceArrayDisplay:()=>lf,ResourceArrayInput:()=>hf,ResourceAvatar:()=>Le,ResourceBadge:()=>Ho,ResourceBlame:()=>Rc,ResourceDiff:()=>Hc,ResourceForm:()=>qc,ResourceHistoryTable:()=>Gc,ResourceInput:()=>Mr,ResourceName:()=>uo,ResourcePropertyDisplay:()=>we,ResourcePropertyInput:()=>ho,ResourceTable:()=>Aa,ResourceTimeline:()=>qo,Scheduler:()=>Jc,SearchChangeEvent:()=>Na,SearchClickEvent:()=>rt,SearchControl:()=>_s,SearchFieldEditor:()=>Uf,SearchFilterEditor:()=>Qf,SearchLoadEvent:()=>Ha,ServiceRequestTimeline:()=>jc,SignInForm:()=>vu,StatusBadge:()=>Er,Timeline:()=>Pf,TimelineItem:()=>Vo,TimingInput:()=>Cf,addDateFilterBetween:()=>Ma,addField:()=>dd,addFilter:()=>vt,addLastMonthFilter:()=>wf,addMissingFilter:()=>wa,addNextMonthFilter:()=>Ef,addThisMonthFilter:()=>Of,addTodayFilter:()=>Af,addTomorrowFilter:()=>Ff,addYearToDateFilter:()=>Rf,addYesterdayFilter:()=>Bf,buildFieldNameString:()=>Ve,clearFilters:()=>ud,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:()=>cd,useMedplum:()=>T,useMedplumContext:()=>Tt,useMedplumNavigate:()=>To,useMedplumProfile:()=>fr,useResource:()=>te,useSearch:()=>zc,useSearchOne:()=>Wc,useSearchResources:()=>al});module.exports=Li(_c);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 Ji(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),Ki($i(t),o).slice(0,5)}function $i(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 Ki(e,o){return e.sort((t,r)=>Sl(r,o)-Sl(t,o))}function Sl(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,ko.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 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 wn(e){let o=Pt(),{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(Pl,{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,pr.formatHumanName)(r?.name?.[0])),X.default.createElement(ln,{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(mr,{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,pr.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(Tn,{size:14,stroke:1.5}),onClick:()=>a("/signin")},"Add another account"),X.default.createElement(K.Menu.Item,{icon:X.default.createElement(At,{size:14,stroke:1.5}),onClick:()=>a(`/${(0,pr.getReferenceString)(r)}`)},"Account settings"),X.default.createElement(K.Menu.Item,{icon:X.default.createElement(hn,{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 to=require("@mantine/core"),En=require("@mantine/notifications"),fa=require("@medplum/core"),Bo=m(require("react"));var Dl=m(require("react"));function On(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&&Zi(o,t);return o}function _i(e,o){o.disabled||(o.type==="checkbox"||o.type==="radio")&&!o.checked||(e[o.name]=o.value)}function Zi(e,o){e[o.name]=o.value}function le(e){return Dl.default.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:o=>{o.preventDefault();let t=On(o.target);e.onSubmit&&e.onSubmit(t)}},e.children)}function Tl(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,En.showNotification)({color:"green",message:"Success"}),e.onOk()}).catch(u=>{(0,En.showNotification)({color:"red",message:(0,fa.normalizeErrorString)(u)})})}return Bo.default.createElement(to.Modal,{title:"Add Bookmark",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},Bo.default.createElement(le,{onSubmit:r},Bo.default.createElement(to.Stack,null,Bo.default.createElement(Yi,{config:t}),Bo.default.createElement(to.TextInput,{label:"Bookmark Name",type:"text",name:"bookmarkname",placeholder:"Bookmark Name",withAsterisk:!0}),Bo.default.createElement(to.Group,{position:"right"},Bo.default.createElement(to.Button,{mt:"sm",type:"submit"},"OK")))))}function Yi(e){function o(r){return r?.menu?.map(a=>a.title)}let t=o(e.config);return Bo.default.createElement(to.NativeSelect,{name:"menuname",defaultValue:t[0],label:"Select Menu Option",placeholder:"Menu",data:t,withAsterisk:!0})}var Mt=m(require("react"));var sa=m(require("react"));var la=m(require("react"));function Ln(e){return typeof e.code=="string"?e.code:JSON.stringify(e)}function eu(e){return typeof e.display=="string"?e.display:Ln(e)}function ou(e){return{value:Ln(e),label:eu(e),resource:e}}function tu(e){return{code:e,display:e}}function Ft(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(h=>h.code===c.code)&&d.push(c);return d},[o,t]);return la.default.createElement(it,{...n,creatable:r??!0,clearable:a??!0,toKey:Ln,toOption:ou,loadOptions:f,onCreate:tu,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=au(n);t(f),e.onChange&&e.onChange(f)}return sa.default.createElement(Ft,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:ru(o),onChange:r,creatable:e.creatable,maxSelectedValues:e.maxSelectedValues??1,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable})}function ru(e){return e?{code:e}:void 0}function au(e){return e?.code}function wt(e){let[o,t]=(0,Mt.useState)(e.defaultValue),r=e.onChange,a=(0,Mt.useCallback)(n=>{t(n),r&&r(n)},[r]);return Mt.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 kl=(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 Rn(e){let{classes:o}=kl(),t=Po(),r=lu(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(nu,{key:i.href,to:i.href,active:i.href===r?.href,onClick:u=>f(u,i.href)},Ce.default.createElement(fu,{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(Sn,{size:"0.75rem"}),onClick:()=>n(!0)},"Add Bookmark")))),e.pathname&&e.searchParams&&Ce.default.createElement(Tl,{pathname:e.pathname,searchParams:e.searchParams,visible:a,onOk:()=>n(!1),onCancel:()=>n(!1)}))}function nu(e){let{classes:o,cx:t}=kl();return Ce.default.createElement(De,{onClick:e.onClick,to:e.to,className:t(o.link,{[o.linkActive]:e.active})},e.children)}function fu(e){return e.icon?e.icon:Ce.default.createElement(ze.Space,{w:30})}function lu(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=su(e,o,f.href);s>a&&(a=s,r=f)}return r}function su(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 iu(e){let o=(0,ia.useMantineTheme)(),[t,r]=(0,ro.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()?ro.default.createElement(ea,null):ro.default.createElement(ia.AppShell,{styles:{main:{background:o.colorScheme==="dark"?o.colors.dark[8]:o.colors.gray[0]}},padding:0,fixed:!0,header:n&&ro.default.createElement(wn,{pathname:e.pathname,searchParams:e.searchParams,headerSearchDisabled:e.headerSearchDisabled,logo:e.logo,version:e.version,navbarToggle:l}),navbar:n&&t?ro.default.createElement(Rn,{pathname:e.pathname,searchParams:e.searchParams,menus:e.menus,closeNavbar:s,displayAddBookmark:e.displayAddBookmark,resourceTypeSearchDisabled:e.resourceTypeSearchDisabled}):void 0},ro.default.createElement(lt,{key:`${e.pathname}?${e.searchParams?.toString()}`},ro.default.createElement(ro.Suspense,{fallback:ro.default.createElement(ea,null)},e.children)))}var ua=m(require("react"));var Bl=require("@mantine/core"),Ao=m(require("react"));function io(e){let o=e.value,{contentType:t,url:r,title:a}=o??{};return r?Ao.default.createElement("div",{"data-testid":"attachment-display"},t?.startsWith("image/")&&Ao.default.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:r,alt:o?.title}),t?.startsWith("video/")&&Ao.default.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},Ao.default.createElement("source",{type:t,src:r})),t==="application/pdf"&&!a?.endsWith(".pdf")&&Ao.default.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},Ao.default.createElement("iframe",{width:"100%",height:"400",src:r+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),Ao.default.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},Ao.default.createElement(Bl.Anchor,{href:o?.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},o?.title||"Download"))):null}function Nn(e){return ua.default.createElement("div",null,e.values?.map((o,t)=>ua.default.createElement("div",{key:"attatchment-"+t},ua.default.createElement(io,{value:o,maxWidth:e.maxWidth}))))}var Hn=require("@mantine/core");var pe=m(require("react"));var Ot=m(require("react"));function dt(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 Vn(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(io,{value:n,maxWidth:200})),pe.default.createElement("td",null,pe.default.createElement(Hn.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(dt,{onUpload:n=>{a([...r.current,n])}},n=>pe.default.createElement(Hn.ActionIcon,{...n,title:"Add",size:"sm",color:"green"},pe.default.createElement(ir,{size:16})))))))}var qn=require("@mantine/core"),Fo=m(require("react"));function Ir(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(io,{value:o,maxWidth:200}),Fo.default.createElement(qn.Button,{onClick:a=>{Q(a),r(void 0)}},"Remove")):Fo.default.createElement(dt,{onUpload:r},a=>Fo.default.createElement(qn.Button,{...a},"Upload..."))}var Rl=require("@medplum/core"),Io=m(require("react"));var Gn=m(require("react"));var da=require("@mantine/core"),Al=m(require("react")),uu=(0,da.createStyles)(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function Mo(e){let{children:o,...t}=e,{classes:r}=uu();return Al.default.createElement(da.Container,{className:r.root,...t},o)}var Et=require("@mantine/core"),Fl=m(require("react")),du=(0,Et.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%"}}})),cu={shadow:"xs",radius:"md",withBorder:!0};function ct(e){let{className:o,children:t,width:r,fill:a,unstyled:n,...f}=(0,Et.useComponentDefaultProps)("Panel",cu,e),{classes:s,cx:l}=du({width:r,fill:a},{name:"Panel",unstyled:n});return Fl.default.createElement(Et.Paper,{className:l(s.paper,o),...f},t)}function gr(e){let{children:o,...t}=e;return Gn.default.createElement(Mo,null,Gn.default.createElement(ct,{...t},o))}var Me=require("@mantine/core"),wl=require("@medplum/core"),We=m(require("react"));var Wo=m(require("react"));function wo(e){return Wo.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},Wo.default.createElement("title",null,"Medplum Logo"),Wo.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"}),Wo.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"}),Wo.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"}),Wo.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"}),Wo.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=>Ml(t.expression?.[0],o))?.map(t=>t.details?.text)?.join(`
65
- `)}function hr(e,o){return e?.issue?.filter(t=>Ml(t.expression?.[0],o))}function Ml(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,We.useState)();return We.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,wl.normalizeOperationOutcome)(n))}}},We.default.createElement(Me.Center,{sx:{flexDirection:"column"}},We.default.createElement(wo,{size:32}),We.default.createElement(Me.Title,null,"Create project")),We.default.createElement(Me.Stack,{spacing:"xl"},We.default.createElement(Me.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:Fe(t,"firstName")}),We.default.createElement(Me.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",We.default.createElement(Me.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",We.default.createElement(Me.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),".")),We.default.createElement(Me.Group,{position:"right",mt:"xl",noWrap:!0},We.default.createElement(Me.Button,{type:"submit"},"Create project")))}var ne=require("@mantine/core"),zn=require("@medplum/core"),ae=m(require("react"));var xo=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,xo.useRef)(null),[n,f]=(0,xo.useState)(typeof google<"u"),[s,l]=(0,xo.useState)(!1),[i,u]=(0,xo.useState)(!1);return(0,xo.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?xo.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 Ol=require("@mantine/core"),El=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(Ol.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,El.operationOutcomeIssueToString)(t))))}function Un(e){typeof grecaptcha>"u"&&Cr("https://www.google.com/recaptcha/api.js?render="+e)}function Qn(e){return new Promise((o,t)=>{grecaptcha.ready(async()=>{try{o(await grecaptcha.execute(e,{action:"submit"}))}catch(r){t(r)}})})}function Ll(e){let o=pa(e.googleClientId),t=e.recaptchaSiteKey,r=T(),[a,n]=(0,ae.useState)(),f=hr(a,void 0);return(0,ae.useEffect)(()=>{t&&Un(t)},[t]),ae.default.createElement(le,{style:{maxWidth:400},onSubmit:async s=>{try{let l="";t&&(l=await Qn(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,zn.normalizeOperationOutcome)(l))}}},ae.default.createElement(ne.Center,{sx:{flexDirection:"column"}},e.children),ae.default.createElement(mt,{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(ma,{googleClientId:o,handleGoogleCredential:async s=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:s.clientId,googleCredential:s.credential,createUser:!0}))}catch(l){n((0,zn.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:Fe(a,"firstName")}),ae.default.createElement(ne.TextInput,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:Fe(a,"lastName")}),ae.default.createElement(ne.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:Fe(a,"email")}),ae.default.createElement(ne.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,error:Fe(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 mu(e){let{type:o,projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,onSuccess:f}=e,s=T(),[l,i]=(0,Io.useState)(),[u,d]=(0,Io.useState)();(0,Io.useEffect)(()=>{o==="patient"&&l&&s.startNewPatient({login:l,projectId:t}).then(h=>s.processCode(h.code)).then(()=>f()).catch(h=>d((0,Rl.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 Io.default.createElement(gr,{width:450},u&&Io.default.createElement("pre",null,JSON.stringify(u,null,2)),!l&&Io.default.createElement(Ll,{projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,handleAuthResponse:c},e.children),l&&o==="project"&&Io.default.createElement(ca,{login:l,handleAuthResponse:c}))}var Wn=require("@mantine/notifications"),Xn=require("@medplum/core"),Te=m(require("react"));var de=require("@mantine/core"),Nl=require("@medplum/core"),j=m(require("react"));function Hl(e){let[o,t]=(0,j.useState)();return o?j.default.createElement(xu,{email:o,...e}):j.default.createElement(pu,{setEmail:t,...e})}function pu(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 h=JSON.stringify({...await s.ensureCodeChallenge(f),domain:c.domain}),D=new URL(c.authorizeUrl);return D.searchParams.set("state",h),window.location.assign(D.toString()),!0},[s,f]),u=(0,j.useCallback)(async c=>{let h=await s.post("auth/method",{email:c.email});await i(h)||o(c.email)},[s,i,o]),d=(0,j.useCallback)(async c=>{let h=await s.startGoogleLogin({...f,googleCredential:c.credential});await i(h)||r(h)},[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 xu(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,Nl.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 He=require("@mantine/core"),Vl=require("@medplum/core"),Xe=m(require("react"));function ql(e){let o=T(),[t,r]=(0,Xe.useState)();return Xe.default.createElement(He.Stack,null,Xe.default.createElement(He.Center,{sx:{flexDirection:"column"}},Xe.default.createElement(wo,{size:32}),Xe.default.createElement(He.Title,{order:3},"Choose profile")),Xe.default.createElement(mt,{outcome:t}),e.memberships.map(a=>Xe.default.createElement(He.UnstyledButton,{key:a.id,onClick:()=>{o.post("auth/profile",{login:e.login,profile:a.id}).then(e.handleAuthResponse).catch(n=>r((0,Vl.normalizeOperationOutcome)(n)))}},Xe.default.createElement(He.Group,null,Xe.default.createElement(He.Avatar,{radius:"xl"}),Xe.default.createElement("div",{style:{flex:1}},Xe.default.createElement(He.Text,{size:"sm",weight:500},a.profile?.display),Xe.default.createElement(He.Text,{color:"dimmed",size:"xs"},a.project?.display))))))}var je=require("@mantine/core"),go=m(require("react"));function Gl(e){let o=T();return go.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)}},go.default.createElement(je.Stack,null,go.default.createElement(je.Center,{sx:{flexDirection:"column"}},go.default.createElement(wo,{size:32}),go.default.createElement(je.Title,null,"Choose scope")),go.default.createElement(je.Stack,null,(e.scope??"openid").split(" ").map(t=>go.default.createElement(je.Checkbox,{key:t,id:t,name:t,label:t,defaultChecked:!0}))),go.default.createElement(je.Group,{position:"right",mt:"xl"},go.default.createElement(je.Button,{type:"submit"},"Set scope"))))}var Ve=require("@mantine/core"),Ul=require("@medplum/core");var Je=m(require("react"));function Ql(e){let o=T(),[t,r]=(0,Je.useState)();return Je.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,Ul.normalizeErrorString)(n)))}},Je.default.createElement(Ve.Stack,null,Je.default.createElement(Ve.Center,{sx:{flexDirection:"column"}},Je.default.createElement(wo,{size:32}),Je.default.createElement(Ve.Title,null,"Enter MFA code")),t&&Je.default.createElement(Ve.Alert,{icon:Je.default.createElement(ft,{size:16}),title:"Error",color:"red"},t),Je.default.createElement(Ve.Stack,null,Je.default.createElement(Ve.TextInput,{name:"token",label:"MFA code",required:!0})),Je.default.createElement(Ve.Group,{position:"right",mt:"xl"},Je.default.createElement(Ve.Button,{type:"submit"},"Submit code"))))}function Iu(e){let{login:o,chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:n,onCode:f,...s}=e,l=T(),[i,u]=(0,Te.useState)(),[d,c]=(0,Te.useState)(!1),[h,D]=(0,Te.useState)(),F=(0,Te.useCallback)(A=>{f?f(A):l.processCode(A).then(()=>{r&&r()}).catch(I=>(0,Wn.showNotification)({color:"red",message:(0,Xn.normalizeErrorString)(I)}))},[l,f,r]),P=(0,Te.useCallback)(A=>{c(!!A.mfaRequired),A.login&&u(A.login),A.memberships&&D(A.memberships),A.code&&(t?D(void 0):F(A.code))},[t,F]),k=(0,Te.useCallback)(A=>{F(A.code)},[F]);return(0,Te.useEffect)(()=>{o&&!i&&l.get("auth/login/"+o).then(P).catch(A=>(0,Wn.showNotification)({color:"red",message:(0,Xn.normalizeErrorString)(A)}))},[l,o,i,P]),Te.default.createElement(gr,{width:450},(()=>i?d?Te.default.createElement(Ql,{login:i,handleAuthResponse:P}):h?Te.default.createElement(ql,{login:i,memberships:h,handleAuthResponse:P}):e.projectId==="new"?Te.default.createElement(ca,{login:i,handleAuthResponse:P}):e.chooseScopes?Te.default.createElement(Gl,{login:i,scope:e.scope,handleAuthResponse:k}):Te.default.createElement("div",null,"Success"):Te.default.createElement(Hl,{onForgotPassword:a,onRegister:n,handleAuthResponse:P,disableGoogleAuth:e.disableGoogleAuth,disableEmailAuth:e.disableEmailAuth,...s},e.children))())}var Ca=require("@medplum/core"),Ht=m(require("react"));var Ia=["meta","implicitRules","language","text","contained","extension","modifierExtension"];var zl=require("@mantine/core"),Lt=m(require("react")),gu=(0,zl.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 Jn(e){let{children:o,compact:t}=e,{classes:r,cx:a}=gu();return Lt.default.createElement("dl",{className:a(r.root,{[r.compact]:t})},o)}function $n(e){return Lt.default.createElement(Lt.default.Fragment,null,Lt.default.createElement("dt",null,e.term),Lt.default.createElement("dd",null,e.children))}var Jo=require("@mantine/core"),H=require("@medplum/core");var q=m(require("react"));var Wl=require("@medplum/core"),Kn=m(require("react"));function pt(e){return Kn.default.createElement(Kn.default.Fragment,null,(0,Wl.formatCodeableConcept)(e.value))}var Xl=require("@medplum/core"),jn=m(require("react"));function _n(e){return jn.default.createElement(jn.default.Fragment,null,(0,Xl.formatCoding)(e.value))}var ga=m(require("react"));var Zn=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("]")),Zn.default.createElement(Zn.default.Fragment,null,t.join("").trim())}function Yn(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 Jl=m(require("react"));function ef(e){return Jl.default.createElement("div",null,e.value?.system,": ",e.value?.value)}var $l=require("@medplum/core"),of=m(require("react"));function tf(e){return of.default.createElement(of.default.Fragment,null,(0,$l.formatMoney)(e.value))}var Kl=require("@medplum/core"),rf=m(require("react"));function Rt(e){return rf.default.createElement(rf.default.Fragment,null,(0,Kl.formatQuantity)(e.value))}var jl=require("@medplum/core"),af=m(require("react"));function vr(e){return af.default.createElement(af.default.Fragment,null,(0,jl.formatRange)(e.value))}var Sr=m(require("react"));function _l(e){let o=e.value;return o?Sr.default.createElement(Sr.default.Fragment,null,Sr.default.createElement(Rt,{value:o.numerator}),"\xA0/\xA0",Sr.default.createElement(Rt,{value:o.denominator})):null}var Zl=require("@medplum/core"),ha=m(require("react"));function Xo(e){if(!e.value)return null;let o=e.value.display||e.value.reference||(0,Zl.stringify)(e.value);return e.link!==!1&&e.value.reference?ha.default.createElement(De,{to:e.value},o):ha.default.createElement(ha.default.Fragment,null,o)}var xt=m(require("react"));function nf(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(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(sr,{size:"1rem"}):q.default.createElement(un,{size:"1rem"})))));if(o?.max&&o.max>1&&!e.arrayElement)return t===H.PropertyType.Attachment?q.default.createElement(Nn,{values:r,maxWidth:e.maxWidth}):q.default.createElement(nf,{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($a,{value:r});case H.PropertyType.Annotation:return q.default.createElement(q.default.Fragment,null,r?.text);case H.PropertyType.Attachment:return q.default.createElement(io,{value:r,maxWidth:e.maxWidth});case H.PropertyType.CodeableConcept:return q.default.createElement(pt,{value:r});case H.PropertyType.Coding:return q.default.createElement(_n,{value:r});case H.PropertyType.ContactDetail:return q.default.createElement(Yn,{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(ef,{value:r});case H.PropertyType.Money:return q.default.createElement(tf,{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(Rt,{value:r});case H.PropertyType.Range:return q.default.createElement(vr,{value:r});case H.PropertyType.Ratio:return q.default.createElement(_l,{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(Nt,{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(Nt,{value:{type:o.type[0].code,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}var Yl=require("@medplum/core");function _e(e,o){let t=(0,Yl.getTypedPropertyValue)(e,o);return t?Array.isArray(t)?[t.map(r=>r.value),t[0].type]:[t.value,t.type]:[void 0,"undefined"]}function Nt(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"?Ht.default.createElement("div",null,t.name):Ht.default.createElement(Jn,{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:Ht.default.createElement($n,{key:f,term:(0,Ca.getPropertyDisplayName)(f)},Ht.default.createElement(we,{property:s,propertyType:i,value:l,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))})):Ht.default.createElement("div",null,r,"\xA0not implemented")}var hs=require("@mantine/core"),wr=require("@medplum/core"),Lo=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 es=require("@mantine/core"),os=m(require("react"));function $e(e){return os.default.createElement(es.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk,error:Fe(e.outcome,e.htmlFor)},e.children)}var ts=require("@medplum/core");function Dr(e,o,t,r,a){let n=r.type;if(n.length>1)for(let f of n){let s=o.replace("[x]",(0,ts.capitalize)(f.code));s in e&&delete e[s]}return e[t]=a,e}var no=require("@mantine/core"),V=require("@medplum/core"),z=m(require("react"));var va=m(require("react"));function ff(e){let[o,t]=(0,va.useState)(e.defaultValue);function r(a){let n=Cu(a);t(n),e.onChange&&e.onChange(n)}return va.default.createElement(Ft,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&hu(o),maxSelectedValues:1,onChange:r})}function hu(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function Cu(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 Tr(e){let[o,t]=(0,Sa.useState)(e.defaultValue);function r(a){let n=a[0],f=n&&vu(n);t(f),e.onChange&&e.onChange(f)}return Sa.default.createElement(Ft,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&yu(o),maxSelectedValues:1,onChange:r})}function yu(e){return{system:e.system,code:e.code,display:e.display}}function vu(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"),Oo=m(require("react"));function kr(e){let[o,t]=(0,Oo.useState)(e.defaultValue),r=(0,Oo.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 Oo.default.createElement(It.Group,{spacing:"xs",grow:!0,noWrap:!0},Oo.default.createElement(It.NativeSelect,{"data-testid":"system",defaultValue:o?.system,onChange:l=>n(l.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),Oo.default.createElement(It.NativeSelect,{"data-testid":"use",defaultValue:o?.use,onChange:l=>f(l.currentTarget.value),data:["","home","work","temp","old","mobile"]}),Oo.default.createElement(It.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:l=>s(l.currentTarget.value)}))}function lf(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 rs=require("@mantine/core"),as=m(require("react"));var sf=require("@medplum/core");function uf(e){if(!e)return"";let o=new Date(e);return(0,sf.isValidDate)(o)?o.toLocaleDateString("sv")+"T"+o.toLocaleTimeString("sv"):""}function df(e){if(!e)return"";let o=new Date(e);return(0,sf.isValidDate)(o)?o.toISOString():""}function ao(e){return as.default.createElement(rs.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:Su(),defaultValue:uf(e.defaultValue),autoFocus:e.autoFocus,error:Fe(e.outcome,e.name),onChange:o=>{if(e.onChange){let t=o.currentTarget.value;e.onChange(df(t))}}})}function Su(){return"datetime-local"}var ns=require("@mantine/core"),fs=require("@medplum/core"),ls=m(require("react"));function ss(e){return ls.default.createElement(ns.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:(0,fs.stringify)(e.defaultValue),deserialize:JSON.parse,onChange:o=>{e.onChange&&e.onChange(JSON.parse(o))}})}var Eo=require("@mantine/core"),uo=m(require("react"));function cf(e){let[o,t]=(0,uo.useState)(e.defaultValue),r=(0,uo.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 uo.default.createElement(Eo.Group,{spacing:"xs",grow:!0,noWrap:!0},uo.default.createElement(Eo.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"]}),uo.default.createElement(Eo.TextInput,{placeholder:"Prefix",name:e.name+"-prefix",defaultValue:o?.prefix?.join(" "),onChange:u=>f(u.currentTarget.value)}),uo.default.createElement(Eo.TextInput,{placeholder:"Given",name:e.name+"-given",defaultValue:o?.given?.join(" "),onChange:u=>s(u.currentTarget.value)}),uo.default.createElement(Eo.TextInput,{name:e.name+"-family",placeholder:"Family",defaultValue:o?.family,onChange:u=>l(u.currentTarget.value)}),uo.default.createElement(Eo.TextInput,{placeholder:"Suffix",name:e.name+"-suffix",defaultValue:o?.suffix?.join(" "),onChange:u=>i(u.currentTarget.value)}))}var Br=require("@mantine/core"),Vt=m(require("react"));function mf(e){let[o,t]=(0,Vt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Vt.default.createElement(Br.Group,{spacing:"xs",grow:!0,noWrap:!0},Vt.default.createElement(Br.TextInput,{placeholder:"System",defaultValue:o?.system,onChange:a=>r({...o,system:a.currentTarget.value})}),Vt.default.createElement(Br.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:a=>r({...o,value:a.currentTarget.value})}))}var Pa=require("@mantine/core");var ho=m(require("react")),bu=["USD","EUR","CAD","GBP","AUD"];function pf(e){let{onChange:o}=e,[t,r]=(0,ho.useState)(e.defaultValue),a=(0,ho.useCallback)(l=>{r(l),o&&o(l)},[o]),n=(0,ho.useCallback)(l=>{a({...t,currency:l.currentTarget.value})},[t,a]),f=(0,ho.useCallback)(l=>{a({...t,value:l.currentTarget.valueAsNumber})},[t,a]),s=ho.default.createElement(Pa.NativeSelect,{defaultValue:t?.currency,data:bu,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:n});return ho.default.createElement(Pa.TextInput,{type:"number",label:e.label,placeholder:e.placeholder??"Value",defaultValue:t?.value?.toString()??"USD",icon:ho.default.createElement(dn,{size:14}),rightSection:s,rightSectionWidth:92,onChange:f})}var is=require("@mantine/core"),qt=m(require("react"));function us(e){let[o,t]=(0,qt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return qt.default.createElement(is.Group,{spacing:"xs",grow:!0,noWrap:!0},qt.default.createElement(ao,{name:e.name+".start",placeholder:"Start",defaultValue:o?.start,onChange:a=>r({...o,start:a})}),qt.default.createElement(ao,{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 Ze(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:Pu(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 Pu(e){if(e)return parseFloat(e)}var ds=require("@mantine/core"),Gt=m(require("react"));function Ut(e){let[o,t]=(0,Gt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Gt.default.createElement(ds.Group,{spacing:"xs",grow:!0,noWrap:!0},Gt.default.createElement(Ze,{name:e.name+"-low",defaultValue:o?.low,onChange:a=>r({...o,low:a})}),Gt.default.createElement(Ze,{name:e.name+"-high",defaultValue:o?.high,onChange:a=>r({...o,high:a})}))}var cs=require("@mantine/core"),Qt=m(require("react"));function ms(e){let[o,t]=(0,Qt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Qt.default.createElement(cs.Group,{spacing:"xs",grow:!0,noWrap:!0},Qt.default.createElement(Ze,{name:e.name+"-numerator",defaultValue:o?.numerator,onChange:a=>r({...o,numerator:a})}),Qt.default.createElement(Ze,{name:e.name+"-denominator",defaultValue:o?.denominator,onChange:a=>r({...o,denominator:a})}))}var Da=require("@mantine/core"),ps=require("@medplum/core"),Ko=m(require("react"));var Ar=require("@mantine/core"),Fr=require("@medplum/core"),qe=m(require("react"));var Du={Observation:"code",User:"email:contains"},Tu=["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 ku(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,qe.useState)(),n=re(e.defaultValue,a),f=e.onChange,s=(0,qe.useCallback)(async(i,u)=>{let d=Au(t),c=new URLSearchParams({[d]:i,_count:"10"});return await o.searchResources(t,c,{signal:u})},[o,t]),l=(0,qe.useCallback)(i=>{f&&f(i[0])},[f]);return e.defaultValue&&!r&&!n?null:qe.default.createElement(it,{name:e.name,itemComponent:Bu,defaultValue:n,placeholder:e.placeholder,maxSelectedValues:1,toKey:Fr.getReferenceString,toOption:ku,loadOptions:s,onChange:l,clearable:!0})}var Bu=(0,qe.forwardRef)(({label:e,resource:o,...t},r)=>qe.default.createElement("div",{ref:r,...t},qe.default.createElement(Ar.Group,{noWrap:!0},qe.default.createElement(Re,{value:o}),qe.default.createElement("div",null,qe.default.createElement(Ar.Text,null,e),qe.default.createElement(Ar.Text,{size:"xs",color:"dimmed"},o.birthDate)))));function Au(e){return Du[e]??(Tu.includes(e)?"name":"_id")}function Ct(e){let o=Fu(e.targetTypes),t=Mu(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(Da.Group,{spacing:"xs",grow:!0,noWrap:!0},o&&o.length>1&&Ko.default.createElement(Da.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(Mr,{resourceType:n,name:e.name+"-id",placeholder:e.placeholder,defaultValue:r,onChange:l=>{s(l?(0,ps.createReference)(l):void 0)}}))}function Fu(e){if(!(!e||e.length===0||e.length===1&&e[0]==="Resource"))return e}function Mu(e,o){let t=e?.reference?.split("/")[0];if(t)return t;if(o&&o.length>0)return o[0]}var xf=require("@mantine/core");var ye=m(require("react"));function If(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(Co,{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(xf.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(xf.ActionIcon,{title:"Add",size:"sm",color:"green",onClick:n=>{Q(n);let f=[...r.current];f.push(void 0),a(f)}},ye.default.createElement(Tt,null))))))}var ve=require("@mantine/core"),Is=require("@medplum/core"),Z=m(require("react"));var wu=["sun","mon","tue","wed","thu","fri","sat"];function gf(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,Is.formatTiming)(n.current)||"No repeat"),Z.default.createElement(ve.Button,{onClick:()=>a(!0)},"Edit")),Z.default.createElement(Ou,{visible:r,defaultValue:n.current,onOk:f=>{e.onChange&&e.onChange(f),t(f),a(!1)},onCancel:()=>a(!1)}))}var xs={repeat:{period:1,periodUnit:"d"}};function Ou(e){let[o,t]=(0,Z.useState)(e.defaultValue||xs),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($e,{title:"Starts on",htmlFor:"timing-dialog-start"},Z.default.createElement(ao,{name:"timing-dialog-start",onChange:i=>a(i)})),Z.default.createElement(ve.Switch,{label:"Repeat",checked:!!o.repeat,onChange:i=>n(i.currentTarget.checked?xs.repeat:void 0)}),o.repeat&&Z.default.createElement(Z.default.Fragment,null,Z.default.createElement($e,{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($e,{title:"Repeat on"},Z.default.createElement(ve.Chip.Group,{multiple:!0,onChange:l},Z.default.createElement(ve.Group,{position:"apart",mt:"md",spacing:"xs"},wu.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 Co(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(Vn,{name:r,defaultValue:a,onChange:e.onChange}):z.default.createElement(If,{property:o,name:r,defaultValue:a,onChange:e.onChange});let n=o.type;return n.length>1?z.default.createElement(gs,{elementDefinitionTypes:n,...e}):z.default.createElement(hf,{elementDefinitionType:n[0],...e})}function gs(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(no.Group,{spacing:"xs",grow:!0,noWrap:!0},z.default.createElement(no.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(hf,{...e,elementDefinitionType:r,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",(0,V.capitalize)(r.code)))}}))}function hf(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(no.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(no.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(ao,{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(no.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(no.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(no.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(Ka,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Annotation:return z.default.createElement(ja,{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(ff,{binding:o.binding?.valueSet,name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Coding:return z.default.createElement(Tr,{binding:o.binding?.valueSet,name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.ContactDetail:return z.default.createElement(lf,{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(ss,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.HumanName:return z.default.createElement(cf,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Identifier:return z.default.createElement(mf,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Money:return z.default.createElement(pf,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Period:return z.default.createElement(us,{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(Ut,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Ratio:return z.default.createElement(ms,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Reference:return z.default.createElement(Ct,{name:r,defaultValue:a,targetTypes:Eu(o),onChange:e.onChange});case V.PropertyType.Timing:return z.default.createElement(gf,{name:r,defaultValue:a,onChange:e.onChange});case V.PropertyType.Dosage:case V.PropertyType.UsageContext:return z.default.createElement(zt,{typeName:t,defaultValue:a,onChange:e.onChange,outcome:e.outcome});default:return z.default.createElement(zt,{typeName:o.type[0].code,defaultValue:a,onChange:e.onChange,outcome:e.outcome})}}function Eu(e){return e?.type?.[0]?.targetProfile?.map(o=>o.split("/").pop())}function zt(e){let[o,t]=(0,Lo.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 Lo.default.createElement("div",null,a,"\xA0not implemented");let f={type:a,value:o};return Lo.default.createElement(hs.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"?Lo.default.createElement(Pr,{key:s,title:(0,wr.getPropertyDisplayName)(s),description:l.description,htmlFor:s},Lo.default.createElement(Co,{property:l,name:s,defaultValue:i,defaultPropertyType:u,outcome:e.outcome,onChange:(c,h)=>{r(Dr(o,s,h??s,l,c))}})):Lo.default.createElement($e,{key:s,title:(0,wr.getPropertyDisplayName)(s),description:l.description,withAsterisk:d,htmlFor:s,outcome:e.outcome},Lo.default.createElement(Co,{property:l,name:s,defaultValue:i,defaultPropertyType:u,onChange:(c,h)=>{r(Dr(o,s,h??s,l,c))}}))}))}var Ro=require("@mantine/core"),se=m(require("react"));function Cs(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function Ta(){let e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}var Lu=(0,Ro.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 Cf(e){let{classes:o}=Lu(),{onChangeMonth:t,onClick:r}=e,[a,n]=(0,se.useState)(Ta);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)(()=>Ru(a,e.slots),[a,e.slots]);return se.default.createElement("div",null,se.default.createElement(Ro.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},se.default.createElement("p",{style:{flex:1}},Cs(a)),se.default.createElement(Ro.Group,{position:"right",spacing:"xs"},se.default.createElement(Ro.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>f(-1)},"<"),se.default.createElement(Ro.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(Ro.Button,{disabled:!u.available,onClick:()=>r(u.date)},u.date.getDate()))))))))}function Ru(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:Nu(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 Nu(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 Os=m(require("react"));var ie=require("@mantine/core"),$t=require("@mantine/notifications"),jo=require("@medplum/core");var v=m(require("react"));var te=require("@mantine/core"),fo=require("@medplum/core"),g=m(require("react"));var Wt=require("@mantine/core"),yf=m(require("react")),Hu=(0,Wt.createStyles)(e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));function vf({value:e}){let{classes:o}=Hu();return e?yf.default.createElement(Wt.Stack,{justify:"flex-start",spacing:"xs"},e.map(t=>t.text&&yf.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 vs=require("@mantine/core"),ka=m(require("react"));var ys=require("@mantine/core"),Xt=require("@medplum/core"),Or=m(require("react"));function co(e){let{value:o,link:t,...r}=e,[a,n]=(0,Or.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?Or.default.createElement(De,{to:o,...r},s):Or.default.createElement(ys.Text,{component:"span",...r},s)}function No(e){return ka.default.createElement(vs.Group,{spacing:"xs"},ka.default.createElement(Re,{size:24,radius:12,value:e.value,link:e.link}),ka.default.createElement(co,{value:e.value,link:e.link}))}var Ss=require("@mantine/core"),bs=m(require("react")),Vu={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(Ss.Badge,{color:Vu[e.status]},e.status)}var Ps=(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}}));Ba.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};function Ba(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(qu,{value:t}),r&&!e.hideSpecimenInfo&&Gu(r),t.result&&g.default.createElement(Ds,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&g.default.createElement(vf,{value:n}))}function qu({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,fo.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,fo.capitalize)(e.status))))}function Gu(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,fo.formatDateTime)(o.collection?.collectedDateTime)),g.default.createElement(te.Group,{spacing:5},g.default.createElement(te.Text,{fw:500},"Received:")," ",(0,fo.formatDateTime)(o.receivedTime)))))))}function Ds(e){let{classes:o}=Ps();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(Ts,{value:e.value,ancestorIds:e.ancestorIds,hideObservationNotes:e.hideObservationNotes})))}function Ts(e){return g.default.createElement(g.default.Fragment,null,e.value?.map(o=>g.default.createElement(Uu,{key:`obs-${(0,fo.isReference)(o)?o.reference:o.id}`,value:o,ancestorIds:e.ancestorIds,hideObservationNotes:e.hideObservationNotes})))}function Uu(e){let{classes:o,cx:t}=Ps(),r=re(e.value);if(!r||e.ancestorIds?.includes(r.id))return null;let a=!e.hideObservationNotes&&r.note,n=Wu(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(De,{to:r},g.default.createElement(pt,{value:r.code}))),g.default.createElement("td",null,g.default.createElement(Qu,{value:r})),g.default.createElement("td",null,g.default.createElement(zu,{value:r.referenceRange})),g.default.createElement("td",null,r.interpretation&&r.interpretation.length>0&&g.default.createElement(pt,{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,fo.formatCodeableConcept)(f)}`},g.default.createElement(pt,{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(Er,{status:r.status}))),r.hasMember&&g.default.createElement(Ts,{value:r.hasMember,ancestorIds:e.ancestorIds?[...e.ancestorIds,r.id]:[r.id],hideObservationNotes:e.hideObservationNotes}),a&&g.default.createElement("tr",null,g.default.createElement("td",{colSpan:6},g.default.createElement(vf,{value:r.note}))))}function Qu(e){let o=e.value;return g.default.createElement(g.default.Fragment,null,(0,fo.formatObservationValue)(o))}function zu(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(vr,{value:o}):null}function Wu(e){let o=e.interpretation?.[0]?.coding?.[0]?.code;return o==="AA"||o==="LL"||o==="HH"||o==="A"}var Bs=require("@mantine/core"),yo=require("@medplum/core"),xe=m(require("react"));var Xu=(0,Bs.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 As(e){let{classes:o}=Xu(),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,yo.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]=_e((0,yo.toTypedValue)(e.original),f),[u,d]=_e((0,yo.toTypedValue)(e.revised),f);return ks(l)&&ks(u)||(0,yo.stringify)(l)===(0,yo.stringify)(u)?null:xe.default.createElement("tr",{key:f},xe.default.createElement("td",null,(0,yo.getPropertyDisplayName)(f)),xe.default.createElement("td",{className:o.removed},xe.default.createElement(we,{property:s,propertyType:i,value:l,ignoreMissingValues:!0})),xe.default.createElement("td",{className:o.added},xe.default.createElement(we,{property:s,propertyType:d,value:u,ignoreMissingValues:!0})))})))}function ks(e){return!e||Array.isArray(e)&&e.length===0||typeof e=="object"&&Object.keys(e).length===0}var Jt=m(require("react"));function Aa(e){let o=T(),t=re(e.value),[r,a]=(0,Jt.useState)(!1);return(0,Jt.useEffect)(()=>{t&&o.requestSchema(t.resourceType).then(()=>a(!0)).catch(console.log)},[o,t]),!r||!t?null:Jt.default.createElement(Nt,{value:{type:t.resourceType,value:e.forceUseInput?e.value:t},ignoreMissingValues:e.ignoreMissingValues})}var mo=require("@mantine/core"),Fa=require("@medplum/core");var Se=m(require("react"));function Sf(e){return Se.default.createElement(Mo,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(mo.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(mo.Text,{size:"sm"},Se.default.createElement(co,{color:"dark",weight:500,value:f,link:!0})),Se.default.createElement(mo.Text,{size:"xs"},Se.default.createElement(De,{color:"dimmed",to:e.resource},(0,Fa.formatDateTime)(s)),Se.default.createElement(mo.Text,{component:"span",color:"dimmed",mx:8},"\xB7"),Se.default.createElement(De,{color:"dimmed",to:e.resource},e.resource.resourceType))),a&&Se.default.createElement(mo.Menu,{position:"bottom-end",shadow:"md",width:200},Se.default.createElement(mo.Menu.Target,null,Se.default.createElement(mo.ActionIcon,{radius:"xl","aria-label":`Actions for ${(0,Fa.getReferenceString)(e.resource)}`},Se.default.createElement(cn,null))),a)),Se.default.createElement(lt,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 bf(e,o){e.sort((t,r)=>{let a=Fs(t,o),n=Fs(r,o);return a>n?1:a<n?-1:Ms(t,o)-Ms(r,o)})}function Fs(e,o){if(!ws(e,o)){let t=e.priority;if(typeof t=="string")return{stat:4,asap:3,urgent:2}[t]??0}return 0}function Ms(e,o){if(!ws(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 ws(e,o){return!!o&&e.resourceType===o.resourceType&&e.id===o.id}var Ju=(0,ie.createStyles)(e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}}));function Vo(e){let o=T(),t=Po(),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=>{bf(b,n),b.reverse(),i(b)},[n]),h=(0,v.useCallback)(b=>{let U=[];for(let lo of b){if(lo.status!=="fulfilled")continue;let Ne=lo.value;if(Ne.type==="history"&&s(Ne),Ne.entry)for(let nt of Ne.entry)U.push(nt.resource)}c(U)},[c]),D=(0,v.useCallback)(b=>c([...d.current,b]),[c]),F=(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)(()=>F(),[F]);function P(b){!n||!e.createCommunication||o.createResource(e.createCommunication(n,r,b)).then(U=>D(U)).catch(console.log)}function k(b){!n||!e.createMedia||o.createResource(e.createMedia(n,r,b)).then(U=>D(U)).then(()=>(0,$t.updateNotification)({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:v.default.createElement(sr,{size:16}),autoClose:2e3})).catch(U=>(0,$t.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,jo.normalizeErrorString)(U),icon:v.default.createElement(pn,{size:16}),autoClose:2e3}))}function A(b,U){return o.updateResource({...b,priority:U})}function I(b){A(b,"stat").then(F).catch(console.log)}function R(b){A(b,"routine").then(F).catch(console.log)}function C(b){t(`/${b.resourceType}/${b.id}`)}function L(b){t(`/${b.resourceType}/${b.id}/edit`)}function me(b){t(`/${b.resourceType}/${b.id}/delete`)}function oo(b){t(`/${b.resourceType}/${b.id}/_history/${b.meta?.versionId}`)}function Be(){(0,$t.showNotification)({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})}function rr(b){(0,$t.updateNotification)({id:"upload-notification",loading:!0,title:"Uploading...",message:ed(b),autoClose:!1,withCloseButton:!1})}return n?v.default.createElement(Sf,null,e.createCommunication&&v.default.createElement(ct,null,v.default.createElement(le,{testid:"timeline-form",onSubmit:b=>{P(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(Cn,{size:16})),v.default.createElement(dt,{onUpload:k,onUploadStart:Be,onUploadProgress:rr},b=>v.default.createElement(ie.ActionIcon,{...b,radius:"xl",color:"blue",variant:"filled"},v.default.createElement(ir,{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($u,{key:U,history:f,resource:b,onDetails:oo});switch(b.resourceType){case"AuditEvent":return v.default.createElement(Zu,{key:U,resource:b,onDetails:C});case"Communication":return v.default.createElement(ju,{key:U,resource:b,onPin:b.priority!=="stat"?I:void 0,onUnpin:b.priority==="stat"?R:void 0,onDetails:C,onEdit:L,onDelete:me});case"DiagnosticReport":return v.default.createElement(Yu,{key:U,resource:b,onDetails:C,onEdit:L,onDelete:me});case"Media":return v.default.createElement(_u,{key:U,resource:b,onDetails:C,onEdit:L,onDelete:me});default:return v.default.createElement(Ho,{key:U,resource:b,padding:!0},v.default.createElement(Aa,{value:b,ignoreMissingValues:!0}))}})):v.default.createElement(ie.Center,{style:{width:"100%",height:"100%"}},v.default.createElement(ie.Loader,null))}function Kt(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(yn,{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(vn,{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(gn,{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(mn,{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(cr,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${(0,jo.getReferenceString)(e.resource)}`},"Delete")))}function $u(e){let o=Ku(e.history,e.resource);return o?v.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:v.default.createElement(Kt,{...e})},v.default.createElement(As,{original:o,revised:e.resource})):v.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:v.default.createElement(Kt,{...e})},v.default.createElement("h3",null,"Created"),v.default.createElement(Aa,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0}))}function Ku(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 ju(e){let{classes:o}=Ju(),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(Kt,{...e})},v.default.createElement("p",null,e.resource.payload?.[0]?.contentString))}function _u(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(Kt,{...e})},v.default.createElement(io,{value:e.resource.content}))}function Zu(e){return v.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:v.default.createElement(Kt,{...e})},v.default.createElement(ie.ScrollArea,null,v.default.createElement("pre",null,e.resource.outcomeDesc)))}function Yu(e){return v.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:v.default.createElement(Kt,{...e})},v.default.createElement(Ba,{value:e.resource}))}function ed(e){if(e.lengthComputable){let o=100*e.loaded/e.total;return`Uploaded: ${Pf(e.loaded)} / ${Pf(e.total)} ${o.toFixed(2)}%`}return`Uploaded: ${Pf(e.loaded)}`}function Pf(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 od(e){return Os.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 Lr=require("@medplum/core"),Es=m(require("react"));function td(e){return Es.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,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 or=require("@mantine/core"),Js=require("@medplum/core"),Y=m(require("react"));var Ls=require("@medplum/core"),Rs=m(require("react"));function Ns(e){let o;try{o=(0,Ls.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 Rs.default.createElement(we,{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 Vs(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(Hs,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&yt.default.createElement(Hs,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})),yt.default.createElement(_o.Text,{sx:{marginTop:"10px",marginLeft:"2px"}},"Limited to 1000 records"))}function Hs(e){return yt.default.createElement(_o.Button,{onClick:()=>{e.exportLogic(),e.onCancel()}},`Export as ${e.text}`)}var Zo=require("@mantine/core"),Zt=require("@medplum/core"),$=m(require("react"));var M=require("@medplum/core"),Rr=m(require("react"));var rd={string:[M.Operator.EQUALS,M.Operator.NOT,M.Operator.CONTAINS,M.Operator.EXACT],fulltext:[M.Operator.EQUALS,M.Operator.NOT,M.Operator.CONTAINS,M.Operator.EXACT],token:[M.Operator.EQUALS,M.Operator.NOT],reference:[M.Operator.EQUALS,M.Operator.NOT],numeric:[M.Operator.EQUALS,M.Operator.NOT_EQUALS,M.Operator.GREATER_THAN,M.Operator.LESS_THAN,M.Operator.GREATER_THAN_OR_EQUALS,M.Operator.LESS_THAN_OR_EQUALS],quantity:[M.Operator.EQUALS,M.Operator.NOT_EQUALS,M.Operator.GREATER_THAN,M.Operator.LESS_THAN,M.Operator.GREATER_THAN_OR_EQUALS,M.Operator.LESS_THAN_OR_EQUALS],date:[M.Operator.EQUALS,M.Operator.NOT_EQUALS,M.Operator.GREATER_THAN,M.Operator.LESS_THAN,M.Operator.GREATER_THAN_OR_EQUALS,M.Operator.LESS_THAN_OR_EQUALS,M.Operator.STARTS_AFTER,M.Operator.ENDS_BEFORE,M.Operator.APPROXIMATELY],datetime:[M.Operator.EQUALS,M.Operator.NOT_EQUALS,M.Operator.GREATER_THAN,M.Operator.LESS_THAN,M.Operator.GREATER_THAN_OR_EQUALS,M.Operator.LESS_THAN_OR_EQUALS,M.Operator.STARTS_AFTER,M.Operator.ENDS_BEFORE,M.Operator.APPROXIMATELY]},ad={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 jt(e,o){return{...e,filters:o,offset:0,name:void 0}}function nd(e){return jt(e,[])}function Nr(e,o){return jt(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??""}),jt(e,n)}function fd(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 Df(e,o){if(!e.filters)return e;let t=[...e.filters];return t.splice(o,1),{...e,filters:t,name:void 0}}function Tf(e,o){return Af(e,o,-1)}function kf(e,o){return Af(e,o,0)}function Bf(e,o){return Af(e,o,1)}function Af(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 Ff(e,o){return Of(e,o,-1)}function Mf(e,o){return Of(e,o,0)}function wf(e,o){return Of(e,o,1)}function Of(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 Ef(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=qs(e,o,M.Operator.GREATER_THAN_OR_EQUALS,t),e=qs(e,o,M.Operator.LESS_THAN_OR_EQUALS,r),e}function qs(e,o,t,r){return vt(e,o,t,r.toISOString())}function wa(e,o,t=!0){return vt(e,o,M.Operator.MISSING,t.toString())}function Gs(e,o){return e.offset===o?e:{...e,offset:o,name:void 0}}function Lf(e,o){let t=e.count??M.DEFAULT_SEARCH_COUNT,r=(o-1)*t;return Gs(e,r)}function Oa(e,o,t){return o===Rf(e)&&t!==void 0&&t===Nf(e)?e:{...e,sortRules:[{code:o,descending:!!t}],name:void 0}}function ld(e,o){let t=!1;return Rf(e)===o&&(t=!Nf(e)),Oa(e,o,t)}function Rf(e){let o=e.sortRules;if(!o||o.length===0)return;let t=o[0].code;return t.startsWith("-")?t.substr(1):t}function Nf(e){let o=e.sortRules;return!o||o.length===0?!1:!!o[0].descending}function Hf(e){return rd[e.type]}function _t(e){return ad[e]??""}function Ge(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(M.capitalize).join(" "))}function Vf(e,o){let t=o.name;return t==="id"?e.id:t==="meta.versionId"?e.meta?.versionId:t==="_lastUpdated"?(0,M.formatDateTime)(e.meta?.lastUpdated):o.elementDefinition&&`${e.resourceType}.${o.name}`===o.elementDefinition.path?sd(e,o.elementDefinition):o.searchParams&&o.searchParams.length===1&&o.name===o.searchParams[0].code?id(e,o.searchParams[0]):null}function sd(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 id(e,o){let t=(0,M.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 qf(e){let[o,t]=(0,$.useState)({search:JSON.parse((0,Zt.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??[],R=r.current?.value;if(R){let C=[...I,R];t({search:{...o.search,fields:C}})}}function u(){let I=o.search.fields??[],R=a.current?.value;if(R){let C=[...I];C.splice(C.indexOf(R),1),t({search:{...o.search,fields:C}})}}function d(){let I=o.search.fields??[],R=a.current?.value;if(!R)return;let C=[...I],L=C.indexOf(R);L<=0||(h(C,L,L-1),t({search:{...o.search,fields:C}}))}function c(){let I=o.search.fields??[],R=a.current?.value;if(!R)return;let C=[...I],L=C.indexOf(R);L>=C.length-1||(h(C,L,L+1),t({search:{...o.search,fields:C}}))}function h(I,R,C){let L=I[R];I[R]=I[C],I[C]=L}if(!e.visible)return null;let D=e.search.resourceType,F=(0,Zt.getDataType)(D),P=(0,Zt.getSearchParameters)(D),k=o.search.fields??[],A=ud(F,P).filter(I=>!k.includes(I)).sort((I,R)=>I.localeCompare(R));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},Ge(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},Ge(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 ud(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(Ge(n));if(o)for(let n of Object.keys(o)){let f=Ge(n);!r.has(n)&&!a.has(f)&&(t.push(n),r.add(n),a.add(Ge(n)))}return t}var Ye=require("@mantine/core"),Hr=require("@medplum/core"),O=m(require("react"));var po=require("@medplum/core"),Yt=m(require("react"));function Ea(e){let{resourceType:o,filter:t}=e,r=po.globalSchema.types[o].searchParams?.[t.code];if(r){if(r.type==="reference"&&(t.operator===po.Operator.EQUALS||t.operator===po.Operator.NOT_EQUALS))return Yt.default.createElement(co,{value:{reference:t.value}});let a=(0,po.getSearchParameterDetails)(o,r);if(t.code==="_lastUpdated"||a.type===po.SearchParameterType.DATETIME)return Yt.default.createElement(Yt.default.Fragment,null,(0,po.formatDateTime)(t.value))}return Yt.default.createElement(Yt.default.Fragment,null,t.value)}var er=require("@mantine/core"),qo=require("@medplum/core"),Yo=m(require("react"));function La(e){let o=(0,qo.getSearchParameterDetails)(e.resourceType,e.searchParam),t="filter-value";switch(o.type){case qo.SearchParameterType.REFERENCE:return Yo.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 qo.SearchParameterType.BOOLEAN:return Yo.default.createElement(er.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(er.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(ao,{name:t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:e.onChange});case qo.SearchParameterType.NUMBER:return Yo.default.createElement(er.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:dd(e.defaultValue),autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(`${r.value}`):e.onChange("")}});default:return Yo.default.createElement(er.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 dd(e){if(e){let[o,t,r]=e.split("|");if(o)return{value:parseFloat(o),system:t,unit:r}}}function Gf(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=Hr.globalSchema.types[s].searchParams??{},i=o.filters||[];return O.default.createElement(Ye.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(Us,{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(jt(n.current,h)),a(-1)},onCancel:()=>a(-1)}):O.default.createElement(cd,{key:`filter-${u.code}-${u.operator}-${u.value}-display`,resourceType:s,searchParams:l,filter:u,onEdit:()=>a(d),onDelete:()=>t(Df(n.current,d))})),O.default.createElement(Us,{resourceType:s,searchParams:l,okText:"Add",onOk:f})))),O.default.createElement(Ye.Group,{position:"right",mt:"xl"},O.default.createElement(Ye.Button,{onClick:()=>e.onOk(n.current)},"OK")))}function cd(e){let{filter:o}=e;return O.default.createElement("tr",null,O.default.createElement("td",null,Ge(o.code)),O.default.createElement("td",null,_t(o.operator)),O.default.createElement("td",null,O.default.createElement(Ea,{resourceType:e.resourceType,filter:o})),O.default.createElement("td",null,O.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),O.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function Us(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&&Hf(s);return O.default.createElement("tr",null,O.default.createElement("td",null,O.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:Ge(i)}))]})),O.default.createElement("td",null,l&&O.default.createElement(Ye.NativeSelect,{"data-testid":"filter-operation",defaultValue:o.operator,onChange:i=>n(i.currentTarget.value),data:["",...l.map(i=>({value:i,label:_t(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.value&&O.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:()=>{e.onOk(r.current),t({})}},e.okText),e.onCancel&&O.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}var et=require("@mantine/core"),vo=m(require("react"));function Qs(e){let[o,t]=(0,vo.useState)(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function r(){e.onOk({...e.filter,value:o})}return vo.default.createElement(et.Modal,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},vo.default.createElement(le,{onSubmit:r},vo.default.createElement(et.Grid,null,vo.default.createElement(et.Grid.Col,{span:10},vo.default.createElement(La,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:o,autoFocus:!0,onChange:t})),vo.default.createElement(et.Grid.Col,{span:2},vo.default.createElement(et.Button,{onClick:r,fullWidth:!0},"OK")))))}var w=require("@mantine/core"),ke=require("@medplum/core");var p=m(require("react"));function zs(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(md,{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},Ge(n.code))))}function md(e){switch(e.searchParam.type){case"date":return p.default.createElement(pd,{...e});case"number":case"quantity":return p.default.createElement(xd,{...e});case"reference":return p.default.createElement(Id,{...e});case"string":case"token":case"uri":return p.default.createElement(gd,{...e});default:return p.default.createElement(p.default.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function pd(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(Bt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,ke.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,ke.Operator.ENDS_BEFORE)},"Before..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(jr,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.STARTS_AFTER)},"After..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(rn,{size:14}),onClick:()=>e.onPrompt(o,ke.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(Bf(e.search,t))},"Tomorrow"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(kf(e.search,t))},"Today"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(Tf(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(wf(e.search,t))},"Next Month"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(Mf(e.search,t))},"This Month"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(Ff(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(Ef(e.search,t))},"Year to date"),p.default.createElement(Ra,{...e}))}function xd(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(Bt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,ke.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,ke.Operator.GREATER_THAN)},"Greater than..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(At,{size:14}),onClick:()=>e.onPrompt(o,ke.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,ke.Operator.LESS_THAN)},"Less than..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(At,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),p.default.createElement(Ra,{...e}))}function Id(e){let{searchParam:o}=e;return p.default.createElement(w.Menu.Dropdown,null,p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.NOT)},"Does not equal..."),p.default.createElement(Ra,{...e}))}function gd(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(Bt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.NOT)},"Does not equal..."),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(nn,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.CONTAINS)},"Contains..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(an,{size:14}),onClick:()=>e.onPrompt(o,ke.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(on,{size:14}),onClick:()=>e.onChange(wa(e.search,t))},"Missing"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(en,{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(Bn,{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(hd(o,r));return t}function hd(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 Na=class extends Event{constructor(t){super("change");this.definition=t}},Ha=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}},Cd=(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 Xs(e){let{classes:o}=Cd(),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 Ha(oe))}).catch(oe=>{u({...d.current,searchResponse:void 0}),f(oe)})},[t,s,c,l]),D=(0,y.useCallback)(()=>{u({...d.current,searchResponse:void 0}),h({cache:"reload"})},[h]);(0,y.useEffect)(()=>{h()},[h]);function F(B,oe){B.stopPropagation();let Ae=B.target.checked,Le={...d.current.selected};Ae?Le[oe]=!0:delete Le[oe],u({...d.current,selected:Le})}function P(B){B.stopPropagation();let he=B.target.checked,Ae={},Le=d.current.searchResponse;he&&Le?.entry&&Le.entry.forEach(ar=>{ar.resource?.id&&(Ae[ar.resource.id]=!0)}),u({...d.current,selected:Ae})}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 Na(B))}function I(B,oe){if(oa(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 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&&rt.globalSchema.types[e.search.resourceType]))return y.default.createElement(W.Center,{style:{width:"100%",height:"100%"}},y.default.createElement(W.Loader,null));let L=e.checkboxesEnabled,me=Ws(s),oo=s.resourceType,Be=i.searchResponse,b=Be?.entry?.map(B=>B.resource),U="subtle",lo="gray",Ne=16,nt=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:lo,leftIcon:y.default.createElement(sn,{size:Ne}),onClick:()=>u({...d.current,fieldEditorVisible:!0})},"Fields"),y.default.createElement(W.Button,{compact:!0,variant:U,color:lo,leftIcon:y.default.createElement(In,{size:Ne}),onClick:()=>u({...d.current,filterEditorVisible:!0})},"Filters"),e.onNew&&y.default.createElement(W.Button,{compact:!0,variant:U,color:lo,leftIcon:y.default.createElement(xn,{size:Ne}),onClick:e.onNew},"New..."),!nt&&R()&&y.default.createElement(W.Button,{compact:!0,variant:U,color:lo,leftIcon:y.default.createElement(kn,{size:Ne}),onClick:e.onExport?e.onExport:()=>u({...d.current,exportDialogVisible:!0})},"Export..."),!nt&&e.onDelete&&y.default.createElement(W.Button,{compact:!0,variant:U,color:lo,leftIcon:y.default.createElement(cr,{size:Ne}),onClick:()=>e.onDelete(Object.keys(i.selected))},"Delete..."),!nt&&e.onBulk&&y.default.createElement(W.Button,{compact:!0,variant:U,color:lo,leftIcon:y.default.createElement(tn,{size:Ne}),onClick:()=>e.onBulk(Object.keys(i.selected))},"Bulk...")),y.default.createElement(W.Group,{spacing:2},Be&&y.default.createElement(W.Text,{size:"xs",color:"dimmed"},Pd(s,Be.total),"-",Dd(s,Be.total)," of"," ",`${c==="estimate"?"~":""}${Be.total?.toLocaleString()}`),y.default.createElement(W.ActionIcon,{title:"Refresh",onClick:D},y.default.createElement(bn,{size:"1.125rem"})))),y.default.createElement(W.Table,{className:o.table},y.default.createElement("thead",null,y.default.createElement("tr",null,L&&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=>P(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"},Ge(B.name)),y.default.createElement(W.Center,{className:o.icon},y.default.createElement(_a,{size:14,stroke:1.5}))))),y.default.createElement(zs,{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,L&&y.default.createElement("th",null),me.map(B=>y.default.createElement("th",{key:B.name},B.searchParams&&y.default.createElement(vd,{resourceType:oo,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)},L&&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=>F(oe,B.id)})),me.map(oe=>y.default.createElement("td",{key:oe.name},Vf(B,oe))))))),b?.length===0&&y.default.createElement(Mo,null,y.default.createElement(W.Center,{style:{height:150}},y.default.createElement(W.Text,{size:"xl",color:"dimmed"},"No results"))),Be?.total!==void 0&&Be.total>0&&y.default.createElement(W.Center,{m:"md",p:"md"},y.default.createElement(W.Pagination,{value:Sd(s),total:bd(s,Be.total),onChange:B=>A(Lf(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(qf,{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(Gf,{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(Vs,{visible:d.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{u({...d.current,exportDialogVisible:!1})}}),y.default.createElement(Qs,{key:i.filterDialogSearchParam?.code,visible:d.current.filterDialogVisible,title:i.filterDialogSearchParam?.code?Ge(i.filterDialogSearchParam.code):"",resourceType:oo,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 yd=y.default.memo(Xs);function vd(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}`},_t(t.operator),"\xA0",y.default.createElement(Ea,{resourceType:e.resourceType,filter:t}))))}function Sd(e){return Math.floor((e.offset??0)/(e.count??rt.DEFAULT_SEARCH_COUNT))+1}function bd(e,o){let t=e.count??rt.DEFAULT_SEARCH_COUNT;return Math.ceil(o/t)}function Pd(e,o){return Math.min(o,(e.offset??0)+1)}function Dd(e,o){return Math.min(o,((e.offset??0)+1)*(e.count??rt.DEFAULT_SEARCH_COUNT))}function $s(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,Js.normalizeOperationOutcome)(I)))},[o,f]);function D(I,R){I.stopPropagation();let L=I.target.checked,me={...h.current};L?me[R]=!0:delete me[R],d(me)}function F(I){I.stopPropagation();let C=I.target.checked,L={},me=c.current?.data.ResourceList;C&&me&&me.forEach(oo=>{oo.id&&(L[oo.id]=!0)}),d(L)}function P(){let I=c.current?.data.ResourceList;if(!I||I.length===0)return!1;for(let R of I)if(R.id&&!h.current[R.id])return!1;return!0}function k(I,R){oa(I.target)||(Q(I),I.button!==1&&e.onClick&&e.onClick(new tt(R,I)),I.button===1&&e.onAuxClick&&e.onAuxClick(new tt(R,I)))}if((0,Y.useEffect)(()=>{o.requestSchema(e.resourceType).then(()=>r(!0)).catch(console.log)},[o,e.resourceType]),!t)return Y.default.createElement(or.Loader,null);let A=e.checkboxesEnabled;return Y.default.createElement("div",{onContextMenu:I=>Q(I),"data-testid":"search-control"},Y.default.createElement(or.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:P(),onChange:I=>F(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:R=>k(R,I),onAuxClick:R=>k(R,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:R=>D(R,I.id)})),s.map(R=>Y.default.createElement("td",{key:R.name},Y.default.createElement(Ns,{propertyType:R.propertyType,path:R.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(or.Button,{onClick:()=>e.onBulk(Object.keys(h.current))},"Bulk..."))}var Td=Y.default.memo($s);var Ks=require("@mantine/notifications"),Go=m(require("react"));function kd(e){let o=e.medplum,t=e.navigate??Bd,[r,a]=(0,Go.useState)({profile:o.getProfile(),loading:!1});(0,Go.useEffect)(()=>{function f(){a({...r,profile:o.getProfile()})}return o.addEventListener("change",f),()=>o.removeEventListener("change",f)},[o,r]),(0,Go.useEffect)(()=>{function f(){(0,Ks.showNotification)({color:"red",message:"No connection to server",autoClose:!1})}return o.addEventListener("offline",f),()=>o.removeEventListener("offline",f)},[o]);let n=(0,Go.useMemo)(()=>({...r,medplum:o,navigate:t}),[r,o,t]);return Go.default.createElement($r.Provider,{value:n},e.children)}function Bd(e){window.location.assign(e)}var Vr=require("@medplum/core"),Va=m(require("react"));function Ad(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(Vo,{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 Ue=require("@mantine/core"),js=require("@medplum/core"),E=m(require("react"));var _s=(0,Ue.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 Fd(e){let o=T(),t=re(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 h=(0,E.useRef)();if(h.current=i,(0,E.useEffect)(()=>{o.requestSchema("PlanDefinition").then(()=>a(!0)).catch(console.log)},[o]),(0,E.useEffect)(()=>(u(Rd(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 D(F,P){u({...h.current,[F]:P})}return E.default.createElement("div",null,E.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(i)},E.default.createElement(Ue.TextInput,{label:"Plan Title",defaultValue:i.title,onChange:F=>D("title",F.currentTarget.value)}),E.default.createElement(Zs,{actions:i.action||[],selectedKey:n,setSelectedKey:f,hoverKey:s,setHoverKey:l,onChange:F=>D("action",F)}),E.default.createElement(Ue.Button,{type:"submit"},"Save")))}function Zs(e){let{classes:o}=_s(),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(Md,{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(Ue.Anchor,{href:"#",onClick:f=>{Q(f),a({id:ei()})}},"Add action")))}function Md(e){let{classes:o,cx:t}=_s(),{action:r}=e,a=Ld(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(Od,{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(wd,{action:r,actionType:a}),E.default.createElement("div",{className:o.bottomActions},E.default.createElement(Ue.Anchor,{href:"#",onClick:u=>{u.preventDefault(),e.onRemove()}},"Remove")))}var Qf={path:"PlanDefinition.action.timing[x]",min:0,max:1,description:"",isArray:!1,constraints:[],type:["dateTime","Period","Range","Timing"].map(e=>({code:e}))};function wd(e){let{action:o,actionType:t}=e,[r,a]=Ys(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(Xo,{value:{reference:o.definitionCanonical}})),r&&E.default.createElement("div",null,E.default.createElement(we,{property:Qf,propertyType:a,value:r})))}function Od(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(Ue.Stack,{spacing:"xl"},E.default.createElement(Ue.TextInput,{name:`actionTitle-${o.id}`,label:"Title",defaultValue:o.title,onChange:n=>a("title",n.currentTarget.value)}),E.default.createElement(Ue.TextInput,{name:`actionDescription-${o.id}`,label:"Description",defaultValue:o.description,onChange:n=>a("description",n.currentTarget.value)}),E.default.createElement(Ue.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(Zs,{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($e,{title:"Timing",description:"When the action should take place."},E.default.createElement(Ed,{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,js.getReferenceString)(a)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function Ed(e){let o=e.action,t="timing",[r,a]=Ys(o);return E.default.createElement(Co,{property:Qf,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(n,f)=>{e.onChange(Dr(o,t,f??t,Qf,n))}})}function Ld(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task"}function Ys(e){return _e({type:"PlanDefinitionAction",value:e},"timing")}var Uf=1;function ei(e){if(e){if(e.startsWith("id-")){let o=parseInt(e.substring(3),10);isNaN(o)||(Uf=Math.max(Uf,o+1))}return e}return"id-"+Uf++}function Rd(e){return{...e,action:oi(e.action)}}function oi(e){if(e)return e.map(o=>({...o,id:ei(o.id),action:oi(o.action)}))}var J=require("@mantine/core"),Ua=require("@medplum/core");var S=m(require("react"));var be=require("@mantine/core"),ue=require("@medplum/core"),ce=m(require("react"));var eo=require("@medplum/core"),qr=(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))(qr||{});function zf(e){return e.type==="choice"||e.type==="open-choice"}function Wf(e,o){if(!e.enableWhen)return!0;let t=e.enableBehavior??"any";for(let r of e.enableWhen){let a=ti(o,r.question);if(r.operator==="exists"&&!r.answerBoolean&&!a?.length){if(t==="any")return!0;continue}let{anyMatch:n,allMatch:f}=Hd(r,a,t);if(t==="any"&&n)return!0;if(t==="all"&&!f)return!1}return t!=="any"}function Xf(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 ti(e,o){if(e)for(let t of e){if(t.linkId===o)return t.answer;if(t.item){let r=ti(t.item,o);if(r)return r}}}function Nd(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 Hd(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(Nd(l,a,i)?n=!0:f=!1,t==="any"&&n)break}return{anyMatch:n,allMatch:f}}function Gr(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 Ur(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 Ga(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=Ud(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=Kf(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(ao,{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(Ze,{name:n,defaultValue:s?.value,onChange:l=>r({valueQuantity:l},t),disableWheel:!0});case"choice":case"open-choice":return Qd(o)?ce.default.createElement(Vd,{name:n,item:o,initial:f,allResponses:e.allResponses,index:t,groupSequence:e.groupSequence,onChangeAnswer:l=>r(l,t)}):ce.default.createElement(qd,{name:n,item:o,initial:f,allResponses:e.allResponses,onChangeAnswer:l=>r(l,t)});default:return null}}function Vd(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(Jf(l))}let f=Kf(e.allResponses,t,e.index,e.groupSequence)??(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value");if(t.repeats){let{propertyName:s,data:l}=zd(e.item),i=Wd(e.allResponses,t,e.groupSequence);return ce.default.createElement(be.MultiSelect,{data:l,placeholder:"Select items",searchable:!0,defaultValue:i||[Jf(a)],onChange:u=>{let d=Xf(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)??Jf(a),data:n})}function qd(e){let{name:o,item:t,initial:r,onChangeAnswer:a,allResponses:n}=e;return t.answerValueSet?ce.default.createElement(Tr,{name:o,binding:t.answerValueSet,onChange:f=>a({valueCoding:f})}):ce.default.createElement(Gd,{name:o,item:t,initial:r,allResponses:n,onChangeAnswer:a})}function Gd(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}`,D=(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:c},"value");f&&(0,ue.stringify)(D)===(0,ue.stringify)(f)&&(l=h),s.push([h,D])}let i=Kf(e.allResponses,t,e.index,e.groupSequence),u=Xd(s,i);return ce.default.createElement(be.Radio.Group,{name:o,value:u??l,onChange:d=>{let c=s.find(h=>h[0]===d);if(c){let h=c[1],D="value"+(0,ue.capitalize)(h.type);a({[D]:h.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 Ud(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 Qd(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function zd(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:ri(n,r),label:ri(n,r)}));return{propertyName:r,data:a}}function ri(e,o){return(0,ue.formatCoding)(e.valueCoding)||e[o]?.toString()}function Jf(e){if(e)return e.type==="CodeableConcept"?e.value.coding[0].display:e.type==="Coding"?e.value.display:e.value.toString()}function $f(e,o){let t=[];for(let r of e)r.linkId===o&&t.push(r),r.item&&(t=t.concat($f(r.item,o)));return t}function ai(e){return(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemAnswer",value:e},"value")}function Kf(e,o,t=0,r=0){let n=$f(e,o.linkId??"")[r]?.answer;return ai(n?.[t]??{})}function Wd(e,o,t=0){let a=$f(e,o.linkId??"")[t]?.answer;return a?a.map(f=>ai(f)).map(f=>(0,ue.formatCoding)(f?.value)||f?.value):[]}function Xd(e,o){return e.find(t=>(0,ue.deepEquals)(t[1].value,o?.value))?.[0]}var Jd=(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 $d(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(ni,{item:n,selectedKey:s,setSelectedKey:l,hoverKey:i,setHoverKey:u,onChange:f}),S.default.createElement(J.Button,{type:"submit"},"Save")))}function ni(e){let{classes:o,cx:t}=Jd(),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,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 L=u.current;e.onChange({...L,item:L.item?.map(me=>me.id===C.id?C:me)})}function D(C){e.onChange({...e.item,item:[...e.item.item??[],C]})}function F(C){e.onChange({...e.item,item:e.item.item?.filter(L=>L!==C)})}function P(C,L){e.onChange({...u.current,[C]:L})}function k(C){e.onChange({...e.item,...C})}function A(C){e.onChange({...e.item,item:e.item.item?.map(L=>L===C?{...L,repeats:!L.repeats}:L)})}function I(C,L){let me=oc(e.item.item,C,L);e.onChange({...e.item,item:me})}let R=t(o.section,{[o.editing]:l,[o.hovering]:i&&!l});return S.default.createElement("div",{"data-testid":a.linkId,className:R,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=>P("title",C.currentTarget.value)}),!n&&S.default.createElement(J.Textarea,{autosize:!0,minRows:2,defaultValue:a.text,onChange:C=>P("text",C.currentTarget.value)}),a.type==="reference"&&S.default.createElement(_d,{item:a,onChange:k}),zf(a)&&S.default.createElement(Kd,{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(Ga,{item:a,index:0,allResponses:[],onChange:()=>{}}))),a.item?.map((C,L)=>S.default.createElement("div",{key:C.id},S.default.createElement(ni,{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:h,onRemove:()=>F(C),onRepeatable:A,onMoveUp:()=>I(L,-1),onMoveDown:()=>I(L,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=>P("linkId",C.currentTarget.value)}),!f&&S.default.createElement(J.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:a.type,onChange:C=>P("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(Ya,{"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(Za,{"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(),D({id:St(),linkId:Zf("q"),type:"string",text:"Question"})}},"Add item"),S.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),D({id:St(),linkId:Zf("g"),type:"group",text:"Group"})}},"Add group")),n&&S.default.createElement(J.Anchor,{href:"#",onClick:C=>{C.preventDefault(),D(ec())}},"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 Kd(e){let o=(0,Ua.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(jd,{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:St()}]})}},"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 jd(e){return S.default.createElement("div",null,e.options.map(o=>{let[t,r]=_e({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(Co,{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 _d(e){let o=Gr(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(Ur(e.item,o.map(n=>n===t?a:n)))}}),S.default.createElement(J.Anchor,{href:"#",onClick:a=>{Q(a),e.onChange(Ur(e.item,o.filter(n=>n!==t)))}},"Remove"))),S.default.createElement(J.Anchor,{href:"#",onClick:t=>{Q(t),e.onChange(Ur(e.item,[...o,""]))}},"Add Resource Type"))}var jf=1,_f=1;function Zf(e){return e+jf++}function St(){return"id-"+_f++}function Zd(e){return{...e,id:e.id||St(),item:fi(e.item)}}function fi(e){if(e)return e.forEach(o=>{o.id?.match(/^id-\d+$/)&&(_f=Math.max(_f,parseInt(o.id.substring(3),10)+1)),o.linkId?.match(/^q\d+$/)&&(jf=Math.max(jf,parseInt(o.linkId.substring(1),10)+1))}),e.map(o=>({...o,id:o.id||St(),item:fi(o.item),answerOption:Yd(o.answerOption)}))}function Yd(e){if(e)return e.map(o=>({...o,id:o.id||St()}))}function ec(){return{id:St(),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 oc(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 Yf(e){let o=T(),t=o.getProfile(),[r,a]=(0,N.useState)(!1),n=re(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?rc(n):void 0)},[n]);function u(D){let F=f?.item??[],k={resourceType:"QuestionnaireResponse",item:ui(F,D)};s(k)}if(!r||!n)return null;let d=lc(n),c=()=>i(D=>D+1),h=()=>i(D=>D-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(si,{items:n.item??[],allResponses:f?.item??[],onChange:u,renderPages:d>1,activePage:l}),N.default.createElement(tc,{activePage:l,numberOfPages:d,nextStep:c,prevStep:h,submitButtonText:e.submitButtonText}))}function si(e){let[o,t]=(0,N.useState)(el(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(li,{key:`${n.linkId}-${f}`,item:n,index:f,allResponses:e.allResponses,currentResponseItems:o,groupSequence:e.groupSequence,setResponseItem:r})):N.default.createElement(li,{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 li(e){return Wf(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($e,{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:uc(f,n),linkId:o.linkId,text:o.text,item:r})}return o.type==="group"?N.default.createElement(sc,{key:e.item.linkId,text:o.text??"",item:o??[],allResponses:e.allResponses,onChange:t}):N.default.createElement(ic,{item:e.item,key:e.item.linkId},({index:r})=>N.default.createElement(Ga,{...e,index:r}))}function tc(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 rc(e){return{resourceType:"QuestionnaireResponse",questionnaire:(0,bt.getReferenceString)(e),item:el(e.item)}}function el(e){return e?.map(ac)??[]}function ac(e){return{id:ii(),linkId:e.linkId,text:e.text,item:el(e.item),answer:e.initial?.map(fc)??[]}}var nc=1;function ii(){return"id-"+nc++}function fc(e){return{...e}}function lc(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 sc(e){let[o,t]=(0,N.useState)(dc(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(si,{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 ic(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 uc(e,o){return e.length===0||e.length<o+1?ii():e[o].id}function dc(e,o){let t=o.filter(r=>r.linkId===e.linkId).length;return t>0?t:1}function cc(e,o){let t=ui(e.item??[],o.item??[]);return{...o,item:t,answer:o.answer&&o.answer.length>0?o.answer:e.answer}}function mc(e,o){let t=[],r=Math.max(e.length,o.length);for(let a=0;a<r;a++)e[a]&&o[a]?t.push(cc(e[a],o[a])):o[a]&&t.push(o[a]);return t}function ui(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(mc(a,n))}return t}var ee=require("@mantine/core"),Qr=require("@medplum/core");var G=m(require("react"));var pc=(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"}})),xc=["gender","age","gestationalAge","context","appliesTo","category"],Ic={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function gc(e){e=Object.assign(Ic,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 D=Cc(o,s);r(yc(D.qualifiedInterval||[],n))},[o]),G.default.createElement(le,{testid:"reference-range-editor",onSubmit:l},G.default.createElement(ee.Stack,null,t.map(D=>G.default.createElement(di,{unit:Sc(o.quantitativeDetails?.unit),onChange:d,onAdd:c,onRemove:h,onRemoveGroup:u,key:`group-${D.id}`,intervalGroup:D}))),G.default.createElement(ee.ActionIcon,{title:"Add Group",size:"sm",onClick:D=>{Q(D),i({id:`group-id-${a}`,filters:{},intervals:[]}),n(F=>F+1)}},G.default.createElement(Tt,null)),G.default.createElement(ee.Group,{position:"right"},G.default.createElement(ee.Button,{type:"submit"},"Save")));function l(){let D=t.flatMap(F=>F.intervals).filter(F=>!bc(F));e.onSubmit({...o,qualifiedInterval:D})}function i(D){r(F=>[...F,D])}function u(D){r(F=>F.filter(P=>P.id!==D.id))}function d(D,F){r(P=>{P=[...P];let k=P.find(I=>I.id===D),A=k?.intervals.findIndex(I=>I.id===F.id);return A!==void 0&&k?.intervals[A]&&(k.intervals[A]=F),P})}function c(D,F){F.id===void 0&&(F.id=`id-${f}`,s(P=>P+1)),r(P=>{P=[...P];let k=P.findIndex(A=>A.id===D);if(k!==-1){let A={...P[k]};F={...F,...A.filters},A.intervals=[...A.intervals,F],P[k]=A}return P})}function h(D,F){r(P=>{P=[...P];let k=P.find(A=>A.id===D);return k&&(k.intervals=k.intervals.filter(A=>A.id!==F.id)),P})}}function di(e){let{intervalGroup:o,unit:t}=e,{classes:r}=pc();return G.default.createElement(Mo,{"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(hc,{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(Ut,{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(Tt,null))))}function hc(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(Ut,{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 Cc(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 yc(e,o){let t=1,r={};for(let a of e){let n=vc(a);n in r||(r[n]={id:`group-id-${t++}`,filters:Object.fromEntries(xc.map(f=>[f,a[f]])),intervals:[]}),r[n].intervals.push(a)}return o(t),Object.values(r)}function vc(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 Sc(e){return e&&((0,Qr.getCodeBySystem)(e,"http://unitsofmeasure.org")||e.text)}function bc(e){return e.range?.low?.value===void 0&&e.range?.high?.value===void 0}var So=require("@mantine/core"),za=require("@medplum/core");var Ie=m(require("react"));function Pc(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(So.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(So.Grid.Col,{span:1,p:"md"},d?.status==="completed"?Ie.default.createElement(fn,null):Ie.default.createElement(Dn,{color:"gray"})),Ie.default.createElement(So.Grid.Col,{span:9,p:"xs"},Ie.default.createElement(So.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(co,{value:d?.meta?.author}),"\xA0on\xA0",(0,za.formatDateTime)(d?.meta?.lastUpdated)),Ie.default.createElement("div",null,"Status: ",Ie.default.createElement(Er,{status:d?.status||"unknown"}))),Ie.default.createElement(So.Grid.Col,{span:2,p:"md"},c&&!h&&Ie.default.createElement(So.Button,{onClick:()=>e.onStart(d,c)},"Start"),c&&h&&Ie.default.createElement(So.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,za.getReferenceString)(u.resource))return u.resource}}var Ii=require("@mantine/core"),Pe=m(require("react"));var ci=require("@medplum/core");function Wa(e,o){let t=Dc(e,o);return Tc(t,e,o)}function Dc(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],D=s[c],F,P=0;i===-l||i!==l&&D.i<h.i?(P=h.i,F=h):(P=D.i+1,F=D),s[c]=void 0;let k=P-i,A={i:P,j:k,prev:kc(F),snake:!1};for(;P<t&&k<r&&e[P]===o[k];)P++,k++;if(P>A.i&&(A={i:P,j:k,prev:A,snake:!0}),s[u]=A,P>=t&&k>=r)return s[u]}s[f+l-1]=void 0}}function Tc(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 kc(e){return e&&!e.snake&&e.prev?e.prev:e}function mi(e){let o=e.entry.filter(r=>!!r.resource).map(r=>({meta:r.resource?.meta,lines:(0,ci.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 Bc(t,o),Ac(t),t}function Bc(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 Ac(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 pi(e,o){return`/${e.resourceType}/${e.id}/_history/${o}`}function xi(e){let o=Math.floor((Date.now()-Date.parse(e))/1e3),t=Math.floor(o/31536e3);if(t>0)return tr(t,"year");let r=Math.floor(o/2592e3);if(r>0)return tr(r,"month");let a=Math.floor(o/86400);if(a>0)return tr(a,"day");let n=Math.floor(o/3600);if(n>0)return tr(n,"hour");let f=Math.floor(o/60);return f>0?tr(f,"minute"):tr(o,"second")}function tr(e,o){return`${e} ${e===1?o:o+"s"} ago`}var Fc=(0,Ii.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 Mc(e){let{classes:o}=Fc(),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=mi(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(No,{value:s.meta.author,link:!0})),Pe.default.createElement("td",{className:o.dateTime,rowSpan:s.span},Pe.default.createElement(De,{to:pi(n,s.meta.versionId)},xi(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 gi=require("@mantine/core"),ol=require("@medplum/core"),Uo=m(require("react"));var wc=(0,gi.createStyles)(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function Oc(e){let o=e.original,t=e.revised;e.ignoreMeta&&(o={...o,meta:void 0},t={...t,meta:void 0});let r=(0,ol.stringify)(o,!0).match(/[^\r\n]+/g),a=(0,ol.stringify)(t,!0).match(/[^\r\n]+/g),n=Wa(r,a);return Uo.default.createElement("pre",{style:{color:"gray"}},n.map((f,s)=>Uo.default.createElement(Ec,{key:"delta"+s,delta:f})))}function Ec(e){let{classes:o}=wc();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 bo=require("@mantine/core"),hi=require("@medplum/core"),Ee=m(require("react"));function Lc(e){let o=T(),t=re(e.defaultValue),[r,a]=(0,Ee.useState)(!1),[n,f]=(0,Ee.useState)();return(0,Ee.useEffect)(()=>{t&&(f((0,hi.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(bo.Stack,{mb:"xl"},Ee.default.createElement($e,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},Ee.default.createElement(bo.TextInput,{name:"resourceType",defaultValue:n.resourceType,disabled:!0})),Ee.default.createElement($e,{title:"ID",htmlFor:"id",outcome:e.outcome},Ee.default.createElement(bo.TextInput,{name:"id",defaultValue:n.id,disabled:!0}))),Ee.default.createElement(zt,{typeName:n.resourceType,defaultValue:n,outcome:e.outcome,onChange:f}),Ee.default.createElement(bo.Group,{position:"right",mt:"xl"},Ee.default.createElement(bo.Button,{type:"submit"},"OK"),e.onDelete&&Ee.default.createElement(bo.Button,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(n)}},"Delete")))}var Ci=require("@mantine/core"),Xa=require("@medplum/core"),ge=m(require("react"));function Rc(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(Ci.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(Nc,{key:"entry-"+n,entry:a})))):ge.default.createElement("div",null,"Loading...")}function Nc(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,Xa.formatDateTime)(t.meta?.lastUpdated)),ge.default.createElement("td",null,ge.default.createElement(De,{to:Hc(t)},t.meta?.versionId))):ge.default.createElement("tr",null,ge.default.createElement("td",{colSpan:3},(0,Xa.normalizeErrorString)(o?.outcome)))}function Hc(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}var at=require("@mantine/core"),vi=require("@medplum/core"),_=m(require("react"));var Vc=(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 qc(e){let{classes:o}=Vc(),t=T(),r=re(e.schedule),a=re(e.questionnaire),[n,f]=(0,_.useState)(),s=(0,_.useRef)();s.current=n;let[l,i]=(0,_.useState)(Ta()),[u,d]=(0,_.useState)(),[c,h]=(0,_.useState)(),[D,F]=(0,_.useState)();if((0,_.useEffect)(()=>{r?(f([]),t.searchResources("Slot",new URLSearchParams([["_count",(30*24).toString()],["schedule",(0,vi.getReferenceString)(r)],["start","gt"+Gc(l)],["start","lt"+Uc(l)]])).then(f).catch(console.log)):f(void 0)},[t,r,l]),!r||!n||!a)return null;let P=r.actor?.[0];return _.default.createElement("div",{className:o.container,"data-testid":"scheduler"},_.default.createElement("div",{className:o.info},P&&_.default.createElement(Re,{value:P,size:"xl"}),P&&_.default.createElement(at.Text,{size:"xl",weight:500},_.default.createElement(co,{value:P})),_.default.createElement("p",null,"1 hour"),u&&_.default.createElement("p",null,u.toLocaleDateString()),c&&_.default.createElement("p",null,yi(new Date(c.start)))),_.default.createElement("div",{className:o.selection},!u&&_.default.createElement("div",null,_.default.createElement("h3",null,"Select date"),_.default.createElement(Cf,{slots:n,onChangeMonth:i,onClick:d})),u&&!c&&_.default.createElement("div",null,_.default.createElement("h3",null,"Select time"),_.default.createElement(at.Stack,null,n.map(k=>{let A=new Date(k.start);return A.getTime()>u.getTime()&&A.getTime()<u.getTime()+24*3600*1e3&&_.default.createElement("div",{key:k.id},_.default.createElement(at.Button,{variant:"outline",style:{width:150},onClick:()=>h(k)},yi(A)))}))),u&&c&&!D&&_.default.createElement(Yf,{questionnaire:a,submitButtonText:"Next",onSubmit:F}),u&&c&&D&&_.default.createElement("div",null,_.default.createElement("h3",null,"You're all set!"),_.default.createElement("p",null,"Check your email for a calendar invite."))))}function Gc(e){return Si(e.getTime())}function Uc(e){return Si(e.getTime()+31*24*60*60*1e3)}function Si(e){return new Date(Math.max(Date.now(),e)).toISOString()}function yi(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}var zr=require("@medplum/core"),bi=m(require("react"));function Qc(e){return bi.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,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})})}
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{contentType:o,url:t,title:r}=e.value??{};return t?Fo.default.createElement("div",{"data-testid":"attachment-display"},o?.startsWith("image/")&&Fo.default.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:t,alt:r}),o?.startsWith("video/")&&Fo.default.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},Fo.default.createElement("source",{type:o,src:t})),o==="application/pdf"&&Fo.default.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},Fo.default.createElement("iframe",{width:"100%",height:"400",src:t+"#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:t,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer",download:pu(r)},r||"Download"))):null}function pu(e){return e?.includes(".")?e:void 0}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")),xu=(0,da.createStyles)(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function wo(e){let{children:o,...t}=e,{classes:r}=xu();return El.default.createElement(da.Container,{className:r.root,...t},o)}var Lt=require("@mantine/core"),Ll=m(require("react")),Iu=(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%"}}})),gu={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",gu,e),{classes:s,cx:l}=Iu({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 hu(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(yu,{email:o,...e}):j.default.createElement(Cu,{setEmail:t,...e})}function Cu(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 yu(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 vu(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")),Su=(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}=Su();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=Pu(a);t(n),e.onChange&&e.onChange(n)}return va.default.createElement(Mt,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&bu(o),maxSelectedValues:1,onChange:r})}function bu(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function Pu(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&&Du(n);t(f),e.onChange&&e.onChange(f)}return Sa.default.createElement(Mt,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&Tu(o),maxSelectedValues:1,onChange:r})}function Tu(e){return{system:e.system,code:e.code,display:e.display}}function Du(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:ku(),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 ku(){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")),Bu=["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:Bu,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,required:e.required,"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:Au(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 Au(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 Fu={Observation:"code",User:"email:contains"},Mu=["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 wu(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=Eu(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,required:e.required,itemComponent:Ou,defaultValue:n,placeholder:e.placeholder,maxSelectedValues:1,toKey:Fr.getReferenceString,toOption:wu,loadOptions:s,onChange:l,clearable:!0})}var Ou=(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 Eu(e){return Fu[e]??(Mu.includes(e)?"name":"_id")}function Ct(e){let o=Lu(e.targetTypes),t=Ru(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",required:e.required,placeholder:e.placeholder,defaultValue:r,onChange:l=>{s(l?(0,Cs.createReference)(l):void 0)}}))}function Lu(e){if(!(!e||e.length===0||e.length===1&&e[0]==="Resource"))return e}function Ru(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 Nu=["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(Hu,{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 Hu(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"},Nu.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:Vu(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 Vu(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 qu=(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}=qu(),{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)(()=>Gu(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 Gu(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:Uu(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 Uu(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")),Qu=(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}=Qu();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")),zu={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:zu[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(Wu,{value:t}),r&&!e.hideSpecimenInfo&&Xu(r),t.result&&h.default.createElement(Fs,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&h.default.createElement(bf,{value:n}))}function Wu({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 Xu(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(Ju,{key:`obs-${(0,no.isReference)(o)?o.reference:o.id}`,value:o,ancestorIds:e.ancestorIds,hideObservationNotes:e.hideObservationNotes})))}function Ju(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=ju(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(Ku,{value:r})),h.default.createElement("td",null,h.default.createElement($u,{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 Ku(e){let o=e.value;return h.default.createElement(h.default.Fragment,null,(0,no.formatObservationValue)(o))}function $u(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 ju(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 _u=(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}=_u(),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 Zu=(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:nd(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(Yu,{key:U,history:f,resource:v,onDetails:Te});switch(v.resourceType){case"AuditEvent":return S.default.createElement(rd,{key:U,resource:v,onDetails:C});case"Communication":return S.default.createElement(od,{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(ad,{key:U,resource:v,onDetails:C,onEdit:L,onDelete:ge});case"Media":return S.default.createElement(td,{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 Yu(e){let o=ed(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 ed(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 od(e){let{classes:o}=Zu(),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 td(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 rd(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 ad(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 nd(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 fd(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 ld(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 sd={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]},id={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 ud(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 dd(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 cd(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 sd[e.type]}function Zt(e){return id[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?md(e,o.elementDefinition):o.searchParams&&o.searchParams.length===1&&o.name===o.searchParams[0].code?pd(e,o.searchParams[0]):null}function md(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 pd(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=xd(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 xd(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:Id(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 Id(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(gd,{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 gd(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(hd,{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 hd(e){switch(e.searchParam.type){case"date":return p.default.createElement(Cd,{...e});case"number":case"quantity":return p.default.createElement(yd,{...e});case"reference":return p.default.createElement(vd,{...e});case"string":case"token":case"uri":return p.default.createElement(Sd,{...e});default:return p.default.createElement(p.default.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function Cd(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 yd(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 vd(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 Sd(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(bd(o,r));return t}function bd(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}},Pd=(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}=Pd(),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"},Ad(s,Te.total),"-",Fd(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(Dd,{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:kd(s),total:Bd(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 Td=y.default.memo(_s);function Dd(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 kd(e){return Math.floor((e.offset??0)/(e.count??tr.DEFAULT_SEARCH_COUNT))+1}function Bd(e,o){let t=e.count??tr.DEFAULT_SEARCH_COUNT;return Math.ceil(o/t)}function Ad(e,o){return Math.min(o,(e.offset??0)+1)}function Fd(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 Md=Z.default.memo(Ys);var ei=require("@mantine/notifications"),Uo=m(require("react"));function wd(e){let o=e.medplum,t=e.navigate??Od,[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 Od(e){window.location.assign(e)}var Vr=require("@medplum/core"),Va=m(require("react"));function Ed(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 Ld(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(Gd(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(Rd,{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 Rd(e){let{classes:o,cx:t}=ti(),{action:r}=e,a=qd(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(Hd,{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(Nd,{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 Nd(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 Hd(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(Vd,{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 Vd(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 qd(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 Gd(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}=Qd(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 Ud(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 Qd(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(Ud(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=Jd(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,required:o.required,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,required:o.required,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,required:o.required,defaultValue:s?.value,onChange:l=>r({valueDate:l.currentTarget.value},t)});case"dateTime":return ce.default.createElement(ro,{name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueDateTime:l},t)});case"time":return ce.default.createElement(be.TextInput,{type:"time",id:n,name:n,required:o.required,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,required:o.required,defaultValue:s?.value,onChange:l=>r({valueString:l.currentTarget.value},t)});case"text":return ce.default.createElement(be.Textarea,{id:n,name:n,required:o.required,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,required:o.required,targetTypes:Gr(o),defaultValue:s?.value,onChange:l=>r({valueReference:l},t)});case"quantity":return ce.default.createElement(je,{name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueQuantity:l},t),disableWheel:!0});case"choice":case"open-choice":return Kd(o)?ce.default.createElement(zd,{name:n,item:o,initial:f,allResponses:e.allResponses,index:t,groupSequence:e.groupSequence,onChangeAnswer:l=>r(l,t)}):ce.default.createElement(Wd,{name:n,item:o,initial:f,allResponses:e.allResponses,onChangeAnswer:l=>r(l,t)});default:return null}}function zd(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}=$d(e.item),i=jd(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 Wd(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(Xd,{name:o,item:t,initial:r,allResponses:n,onChangeAnswer:a})}function Xd(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=_d(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 Jd(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 Kd(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function $d(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 jd(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 _d(e,o){return e.find(t=>(0,ue.deepEquals)(t[1].value,o?.value))?.[0]}var Zd=(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 Yd(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(rc(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}=Zd(),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=fc(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(tc,{item:a,onChange:A}),Xf(a)&&b.default.createElement(ec,{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(nc())}},"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 ec(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(oc,{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 oc(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 tc(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 rc(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:ac(o.answerOption)}))}function ac(e){if(e)return e.map(o=>({...o,id:o.id||St()}))}function nc(){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 fc(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?sc(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=cc(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(lc,{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,withAsterisk:e.item.required},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:xc(f,n),linkId:o.linkId,text:o.text,item:r})}return o.type==="group"?N.default.createElement(mc,{key:e.item.linkId,text:o.text??"",item:o??[],allResponses:e.allResponses,onChange:t}):N.default.createElement(pc,{item:e.item,key:e.item.linkId},({index:r})=>N.default.createElement(Ga,{...e,index:r}))}function lc(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:a=>{a.currentTarget.closest("form").reportValidity()&&e.nextStep()}},"Next"),r&&N.default.createElement(Oe.Button,{type:"submit"},e.submitButtonText??"Submit"))}function sc(e){return{resourceType:"QuestionnaireResponse",questionnaire:(0,bt.getReferenceString)(e),item:tl(e.item)}}function tl(e){return e?.map(ic)??[]}function ic(e){return{id:pi(),linkId:e.linkId,text:e.text,item:tl(e.item),answer:e.initial?.map(dc)??[]}}var uc=1;function pi(){return"id-"+uc++}function dc(e){return{...e}}function cc(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 mc(e){let[o,t]=(0,N.useState)(Ic(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 pc(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 xc(e,o){return e.length===0||e.length<o+1?pi():e[o].id}function Ic(e,o){let t=o.filter(r=>r.linkId===e.linkId).length;return t>0?t:1}function gc(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 hc(e,o){let t=[],r=Math.max(e.length,o.length);for(let a=0;a<r;a++)e[a]&&o[a]?t.push(gc(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(hc(a,n))}return t}var Y=require("@mantine/core"),Qr=require("@medplum/core");var G=m(require("react"));var Cc=(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"}})),yc=["gender","age","gestationalAge","context","appliesTo","category"],vc={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function Sc(e){e=Object.assign(vc,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=Pc(o,s);r(Tc(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:kc(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=>!Bc(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}=Cc();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(bc,{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 bc(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 Pc(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 Tc(e,o){let t=1,r={};for(let a of e){let n=Dc(a);n in r||(r[n]={id:`group-id-${t++}`,filters:Object.fromEntries(yc.map(f=>[f,a[f]])),intervals:[]}),r[n].intervals.push(a)}return o(t),Object.values(r)}function Dc(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 kc(e){return e&&((0,Qr.getCodeBySystem)(e,"http://unitsofmeasure.org")||e.text)}function Bc(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 Ac(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=Fc(e,o);return Mc(t,e,o)}function Fc(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:wc(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 Mc(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 wc(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 Oc(t,o),Ec(t),t}function Oc(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 Ec(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 Lc=(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 Rc(e){let{classes:o}=Lc(),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 Nc=(0,Si.createStyles)(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function Hc(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(Vc,{key:"delta"+s,delta:f})))}function Vc(e){let{classes:o}=Nc();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 qc(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 Gc(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(Uc,{key:"entry-"+n,entry:a})))):Ie.default.createElement("div",null,"Loading...")}function Uc(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:Qc(t)},t.meta?.versionId))):Ie.default.createElement("tr",null,Ie.default.createElement("td",{colSpan:3},(0,Xa.normalizeErrorString)(o?.outcome)))}function Qc(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 zc(e,o){return nl("search",e,o)}function Wc(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 Xc=(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 Jc(e){let{classes:o}=Xc(),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"+Kc(a)],["start","lt"+$c(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 Kc(e){return Di(e.getTime())}function $c(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 jc(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