@medplum/react 2.1.3 → 2.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var pi=Object.create;var qr=Object.defineProperty;var xi=Object.getOwnPropertyDescriptor;var Ii=Object.getOwnPropertyNames;var gi=Object.getPrototypeOf,hi=Object.prototype.hasOwnProperty;var yi=(e,o)=>{for(var t in o)qr(e,t,{get:o[t],enumerable:!0})},Jf=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of Ii(o))!hi.call(e,a)&&a!==t&&qr(e,a,{get:()=>o[a],enumerable:!(r=xi(o,a))||r.enumerable});return e};var m=(e,o,t)=>(t=e!=null?pi(gi(e)):{},Jf(o||!e||!e.__esModule?qr(t,"default",{value:e,enumerable:!0}):t,e)),Ci=e=>Jf(qr({},"__esModule",{value:!0}),e);var Oc={};yi(Oc,{AddressDisplay:()=>Ga,AddressInput:()=>Qa,AnnotationInput:()=>za,AppShell:()=>eu,AsyncAutocomplete:()=>ut,AttachmentArrayDisplay:()=>Fn,AttachmentArrayInput:()=>On,AttachmentButton:()=>ct,AttachmentDisplay:()=>uo,AttachmentInput:()=>mr,BackboneElementDisplay:()=>wt,BackboneElementInput:()=>Lt,CalendarInput:()=>nf,CheckboxFormSection:()=>yr,CodeInput:()=>cr,CodeableConceptDisplay:()=>mt,CodeableConceptInput:()=>$n,CodingDisplay:()=>Vn,CodingInput:()=>Kn,ContactDetailDisplay:()=>Un,ContactDetailInput:()=>jn,ContactPointDisplay:()=>pr,ContactPointInput:()=>vr,Container:()=>Ro,DateTimeInput:()=>no,DefaultResourceTimeline:()=>Qu,DescriptionList:()=>Ln,DescriptionListEntry:()=>Rn,DiagnosticReportDisplay:()=>Ia,Document:()=>Ar,ElementDefinitionInputSelector:()=>jl,ElementDefinitionTypeInput:()=>af,EncounterTimeline:()=>zu,ErrorBoundary:()=>st,FhirPathTable:()=>As,Form:()=>le,FormSection:()=>$e,Header:()=>kn,HumanNameDisplay:()=>ur,HumanNameInput:()=>Zn,IdentifierDisplay:()=>Gn,IdentifierInput:()=>Yn,Loading:()=>Xr,Logo:()=>Uo,MedplumLink:()=>ke,MedplumProvider:()=>vi,MemoizedFhirPathTable:()=>pd,MemoizedSearchControl:()=>sd,MoneyDisplay:()=>zn,MoneyInput:()=>ef,Navbar:()=>Mn,ObservationTable:()=>ns,OperationOutcomeAlert:()=>vt,Panel:()=>ht,PatientTimeline:()=>xd,PlanDefinitionBuilder:()=>Id,QuantityDisplay:()=>Ft,QuantityInput:()=>eo,QuestionnaireBuilder:()=>Od,QuestionnaireForm:()=>Vf,QuestionnaireItemType:()=>wa,QuestionnaireRepeatWrapper:()=>Hf,RangeDisplay:()=>xr,RangeInput:()=>Vt,ReferenceDisplay:()=>Xo,ReferenceInput:()=>gt,ReferenceRangeEditor:()=>tc,ReferenceRangeGroupEditor:()=>Xs,RegisterForm:()=>Ac,RequestGroupDisplay:()=>ic,ResourceArrayDisplay:()=>Jn,ResourceArrayInput:()=>tf,ResourceAvatar:()=>Ne,ResourceBadge:()=>No,ResourceBlame:()=>Ic,ResourceDiff:()=>yc,ResourceForm:()=>tu,ResourceHistoryTable:()=>vc,ResourceInput:()=>Dr,ResourceName:()=>po,ResourcePropertyDisplay:()=>Me,ResourcePropertyInput:()=>yo,ResourceTable:()=>ga,ResourceTimeline:()=>Vo,Scheduler:()=>Dc,SearchChangeEvent:()=>Ta,SearchClickEvent:()=>ot,SearchControl:()=>Ts,SearchFieldEditor:()=>Bf,SearchFilterEditor:()=>Af,SearchLoadEvent:()=>Ba,ServiceRequestTimeline:()=>Bc,SignInForm:()=>wc,StatusBadge:()=>Br,Timeline:()=>sf,TimelineItem:()=>Ho,TimingInput:()=>rf,addDateFilterBetween:()=>ya,addField:()=>$u,addFilter:()=>Ct,addLastMonthFilter:()=>hf,addMissingFilter:()=>Ca,addNextMonthFilter:()=>Cf,addThisMonthFilter:()=>yf,addTodayFilter:()=>xf,addTomorrowFilter:()=>If,addYearToDateFilter:()=>Sf,addYesterdayFilter:()=>pf,buildFieldNameString:()=>qe,clearFilters:()=>Ju,clearFiltersOnField:()=>wr,convertIsoToLocal:()=>Rl,convertLocalToIso:()=>Nl,createScriptTag:()=>Hr,deleteFilter:()=>mf,getErrorsForInput:()=>Fe,getIssuesForExpression:()=>Cr,getMonthString:()=>Zl,getOpString:()=>Kt,getRecaptcha:()=>Qf,getSearchOperators:()=>kf,getSortField:()=>Pf,getStartMonth:()=>ma,getTimeString:()=>js,getValueAndType:()=>Je,initRecaptcha:()=>Gf,isChoiceQuestion:()=>wf,isQuestionEnabled:()=>Of,isSortDescending:()=>Df,parseForm:()=>Tn,renderValue:()=>Tf,setFilters:()=>$t,setOffset:()=>Ss,setPage:()=>bf,setPropertyValue:()=>Et,setSort:()=>va,sortByDateAndPriority:()=>uf,toggleSort:()=>Ku,useMedplum:()=>T,useMedplumContext:()=>bt,useMedplumNavigate:()=>Do,useMedplumProfile:()=>rr,useResource:()=>re});module.exports=Ci(Oc);var $f=require("@medplum/core"),Ua=m(require("react"));function Ga(e){let o=e.value;return o?Ua.default.createElement(Ua.default.Fragment,null,(0,$f.formatAddress)(o)):null}var io=require("@mantine/core"),Ze=m(require("react"));function Kf(e,o){return e.line&&e.line.length>o?e.line[o]:""}function jf(e,o,t){let r=e.line||[];for(;r.length<=o;)r.push("");return r[o]=t,{...e,line:r}}function Qa(e){let[o,t]=(0,Ze.useState)(e.defaultValue||{}),r=(0,Ze.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 l(c){a(jf(r.current||{},0,c))}function s(c){a(jf(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 Ze.default.createElement(io.Group,{spacing:"xs",grow:!0,noWrap:!0},Ze.default.createElement(io.NativeSelect,{"data-testid":"address-use",defaultValue:o.use,onChange:c=>n(c.currentTarget.value),data:["","home","work","temp","old","billing"]}),Ze.default.createElement(io.NativeSelect,{"data-testid":"address-type",defaultValue:o.type,onChange:c=>f(c.currentTarget.value),data:["","postal","physical","both"]}),Ze.default.createElement(io.TextInput,{placeholder:"Line 1",defaultValue:Kf(o,0),onChange:c=>l(c.currentTarget.value)}),Ze.default.createElement(io.TextInput,{placeholder:"Line 2",defaultValue:Kf(o,1),onChange:c=>s(c.currentTarget.value)}),Ze.default.createElement(io.TextInput,{placeholder:"City",defaultValue:o.city,onChange:c=>i(c.currentTarget.value)}),Ze.default.createElement(io.TextInput,{placeholder:"State",defaultValue:o.state,onChange:c=>u(c.currentTarget.value)}),Ze.default.createElement(io.TextInput,{placeholder:"Postal Code",defaultValue:o.postalCode,onChange:c=>d(c.currentTarget.value)}))}var Yf=require("@mantine/core"),el=require("@medplum/core"),Pt=m(require("react"));var _f=require("@mantine/notifications"),Ye=m(require("react")),Zf=(0,Ye.createContext)(void 0);function vi(e){let o=e.medplum,t=e.navigate??Si,[r,a]=(0,Ye.useState)({profile:o.getProfile(),loading:!1});(0,Ye.useEffect)(()=>{function f(){a({...r,profile:o.getProfile()})}return o.addEventListener("change",f),()=>o.removeEventListener("change",f)},[o,r]),(0,Ye.useEffect)(()=>{function f(){(0,_f.showNotification)({color:"red",message:"No connection to server",autoClose:!1})}return o.addEventListener("offline",f),()=>o.removeEventListener("offline",f)},[o]);let n=(0,Ye.useMemo)(()=>({...r,medplum:o,navigate:t}),[r,o,t]);return Ye.default.createElement(Zf.Provider,{value:n},e.children)}function bt(){return(0,Ye.useContext)(Zf)}function T(){return bt().medplum}function Do(){return bt().navigate}function rr(){return bt().profile}function Si(e){window.location.assign(e)}function za(e){let o=rr(),[t,r]=(0,Pt.useState)(e.defaultValue||{}),a=(0,Pt.useRef)();a.current=t;function n(f){let l=f?{text:f,authorReference:o&&(0,el.createReference)(o),time:new Date().toISOString()}:{};r(l),e.onChange&&e.onChange(l)}return Pt.default.createElement(Yf.TextInput,{name:e.name,placeholder:"Annotation text",defaultValue:t.text,onChange:f=>n(f.currentTarget.value)})}var oa=require("@mantine/core"),ao=m(require("react"));var fl=require("@mantine/core"),ll=require("@medplum/core");var ar=require("react"),Qo=m(require("prop-types"));var ol={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 bi=Object.defineProperty,Pi=Object.defineProperties,Di=Object.getOwnPropertyDescriptors,Ur=Object.getOwnPropertySymbols,al=Object.prototype.hasOwnProperty,nl=Object.prototype.propertyIsEnumerable,tl=(e,o,t)=>o in e?bi(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,rl=(e,o)=>{for(var t in o||(o={}))al.call(o,t)&&tl(e,t,o[t]);if(Ur)for(var t of Ur(o))nl.call(o,t)&&tl(e,t,o[t]);return e},ki=(e,o)=>Pi(e,Di(o)),Ti=(e,o)=>{var t={};for(var r in e)al.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Ur)for(var r of Ur(e))o.indexOf(r)<0&&nl.call(e,r)&&(t[r]=e[r]);return t},x=(e,o,t)=>{let r=(0,ar.forwardRef)((a,n)=>{var f=a,{color:l="currentColor",size:s=24,stroke:i=2,children:u}=f,d=Ti(f,["color","size","stroke","children"]);return(0,ar.createElement)("svg",rl(ki(rl({ref:n},ol),{width:s,height:s,stroke:l,strokeWidth:i,className:`tabler-icon tabler-icon-${e}`}),d),[...t.map(([c,y])=>(0,ar.createElement)(c,y)),...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 Wa=x("adjustments-horizontal","IconAdjustmentsHorizontal",[["path",{d:"M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M4 6l8 0",key:"svg-1"}],["path",{d:"M16 6l4 0",key:"svg-2"}],["path",{d:"M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M4 12l2 0",key:"svg-4"}],["path",{d:"M10 12l10 0",key:"svg-5"}],["path",{d:"M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-6"}],["path",{d:"M4 18l11 0",key:"svg-7"}],["path",{d:"M19 18l1 0",key:"svg-8"}]]);var lt=x("alert-circle","IconAlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);var Xa=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 Ja=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 $a=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 Ka=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 ja=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 _a=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 Za=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 Ya=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 ko=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 nr=x("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]);var en=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 on=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 Dt=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 fr=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 tn=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 rn=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 an=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 nn=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 fn=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 Tt=x("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);var ln=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 sn=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 un=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 dn=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 cn=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 Gr=x("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]);var Qr=x("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]);var mn=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 pn=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 xn=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 In=x("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);var gn=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 hn=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 Bt=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 lr=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 sr=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 yn=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 Cn=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 vn=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 ir=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 Sn=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")),st=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(fl.Alert,{icon:zr.default.createElement(lt,{size:16}),title:"Something went wrong",color:"red"},(0,ll.normalizeErrorString)(this.state.error)):this.props.children}};var Wr=require("@mantine/core"),bn=m(require("react"));function Xr(){return bn.default.createElement(Wr.Center,{style:{width:"100%",height:"100vh"}},bn.default.createElement(Wr.Loader,null))}var K=require("@mantine/core"),dr=require("@medplum/core");var W=m(require("react"));var sl=require("@medplum/core"),Pn=m(require("react"));function ur(e){let o=e.value;return o?Pn.default.createElement(Pn.default.Fragment,null,(0,sl.formatHumanName)(o,e.options)):null}var Dn=require("@mantine/core"),jr=require("@medplum/core"),Kr=m(require("react"));var ul=require("@mantine/core"),$r=require("@medplum/core"),dl=m(require("react"));function U(e){e.preventDefault(),e.stopPropagation()}function Jr(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 ke(e){let o=Do(),{to:t,suffix:r,label:a,onClick:n,children:f,...l}=e,s=Bi(t);return r&&(s+="/"+r),dl.default.createElement(ul.Anchor,{href:s,"aria-label":a,onClick:i=>{U(i),n?n(i):t&&o(s)},...l},f)}function Bi(e){if(e){if(typeof e=="string")return Ai(e);if((0,$r.isResource)(e))return Mi(e);if((0,$r.isReference)(e))return Fi(e)}return"#"}function Ai(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e}function Mi(e){return`/${e.resourceType}/${e.id}`}function Fi(e){return`/${e.reference}`}var To=require("@medplum/core"),it=require("react");function re(e,o){let t=T(),[r,a]=(0,it.useState)(cl(t,e)),n=(0,it.useCallback)(f=>{(0,To.deepEquals)(f,r)||a(f)},[r,a]);return(0,it.useEffect)(()=>{n(cl(t,e))},[t,e,n]),(0,it.useEffect)(()=>{let f=!0;return(0,To.isReference)(e)&&t.readReference(e).then(l=>{f&&n(l)}).catch(l=>{f&&(n(void 0),o&&o((0,To.normalizeOperationOutcome)(l)))}),()=>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 Ne(e){let o=re(e.value),t=o?(0,jr.getDisplayString)(o):e.alt??"",r=(o&&(0,jr.getImageSrc)(o))??e.src,a=e.radius??"xl",n={...e};return delete n.value,delete n.link,e.link?Kr.default.createElement(ke,{to:o},Kr.default.createElement(Dn.Avatar,{src:r,alt:t,radius:a,...n})):Kr.default.createElement(Dn.Avatar,{src:r,alt:t,radius:a,...n})}var dt=require("@mantine/core"),Bo=require("@medplum/core");var We=m(require("react"));var _r=require("@mantine/core"),fe=m(require("react")),ml=require("@mantine/notifications"),pl=require("@medplum/core");function ut(e){let{defaultValue:o,toKey:t,toOption:r,loadOptions:a,onChange:n,onCreate:f,creatable:l,...s}=e,i=wi(o),u=(0,fe.useRef)(null),[d,c]=(0,fe.useState)(void 0),[y,S]=(0,fe.useState)(),[M,D]=(0,fe.useState)(),[A,g]=(0,fe.useState)(),[z,k]=(0,fe.useState)(i.map(r)),[I,X]=(0,fe.useState)([]),Ce=(0,fe.useRef)();Ce.current=d;let Le=(0,fe.useRef)();Le.current=y;let ve=(0,fe.useRef)();ve.current=M;let er=(0,fe.useRef)();er.current=A;let P=(0,fe.useRef)();P.current=I;let q=(0,fe.useCallback)(()=>{S(void 0);let Ie=u.current?.value.trim()||"";if(Ie===Ce.current)return;c(Ie);let Ae=new AbortController;D(Ae),a(Ie,Ae.signal).then(Re=>{Ae.signal.aborted||(X(Re.map(r)),D(void 0),er.current&&(Re.length>0&&n(Re.slice(0,1)),g(!1)))}).catch(Re=>{Ae.signal.aborted||Re.message.includes("aborted")||(0,ml.showNotification)({color:"red",message:(0,pl.normalizeErrorString)(Re)})})},[a,n,r]),so=(0,fe.useCallback)(()=>{ve.current&&(ve.current.abort(),D(void 0)),Le.current!==void 0&&window.clearTimeout(Le.current);let Ie=window.setTimeout(()=>q(),100);S(Ie)},[q]),He=(0,fe.useCallback)(Ie=>{let Ae=[],Re=[];for(let or of Ie){let Vr=P.current?.find(mi=>mi.value===or),tr=Vr?.resource;!tr&&l!==!1&&f&&(tr=f(or),Vr=r(tr)),tr&&Ae.push(tr),Vr&&Re.push(Vr)}n(Ae),k(Re)},[l,n,f,r]),ft=(0,fe.useCallback)(Ie=>{Ie.key==="Enter"&&(!Le.current&&!ve.current?(U(Ie),P.current&&P.current.length>0&&(X(P.current.slice(0,1)),He([P.current[0].value]))):g(!0))},[He]),B=(0,fe.useCallback)(Ie=>{let Ae=r(f(Ie));return X([...P.current,Ae]),Ae},[f,X,r]),oe=(0,fe.useCallback)((Ie,Ae)=>!Ae,[]);return(0,fe.useEffect)(()=>()=>{ve.current&&ve.current.abort()},[]),fe.default.createElement(_r.MultiSelect,{...s,ref:u,defaultValue:i.map(t),searchable:!0,onKeyDown:ft,onSearchChange:so,data:[...z,...I],onFocus:q,onChange:He,onCreate:B,rightSectionWidth:40,rightSection:M?fe.default.createElement(_r.Loader,{size:16}):null,filter:oe,creatable:!0})}function wi(e){return e?Array.isArray(e)?e:[e]:[]}var Oi=(0,dt.createStyles)(()=>({searchInput:{input:{width:220,transition:"width 0.2s"},"input:focus":{width:400},"@media (max-width: 800px)":{input:{width:150},"input:focus":{width:150}}}}));function Ei(e){return e.id}function Li(e){return{value:e.id,label:(0,Bo.getDisplayString)(e),resource:e}}function gl(e){let{classes:o}=Oi(),t=Do(),r=T(),a=(0,We.useCallback)(async(f,l)=>{let s=Ni(f),i={signal:l},u=await r.graphql(s,void 0,void 0,i);return Hi(u,f)},[r]),n=(0,We.useCallback)(f=>{f.length>0&&t(`/${(0,Bo.getReferenceString)(f[0])}`)},[t]);return We.default.createElement(ut,{key:`${e.pathname}?${e.searchParams}`,size:"sm",radius:"md",className:o.searchInput,icon:We.default.createElement(hn,{size:16}),placeholder:"Search",itemComponent:Ri,toKey:Ei,toOption:Li,onChange:n,loadOptions:a,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var Ri=(0,We.forwardRef)(({resource:e,...o},t)=>{let r;return e.resourceType==="Patient"?r=e.birthDate:e.resourceType==="ServiceRequest"&&(r=e.subject?.display),We.default.createElement("div",{ref:t,...o},We.default.createElement(dt.Group,{noWrap:!0},We.default.createElement(Ne,{value:e}),We.default.createElement("div",null,We.default.createElement(dt.Text,null,(0,Bo.getDisplayString)(e)),We.default.createElement(dt.Text,{size:"xs",color:"dimmed"},r))))});function Ni(e){let o=JSON.stringify(e);return(0,Bo.isUUID)(e)?`{
|
|
1
|
+
"use strict";var Ii=Object.create;var qr=Object.defineProperty;var gi=Object.getOwnPropertyDescriptor;var hi=Object.getOwnPropertyNames;var yi=Object.getPrototypeOf,Ci=Object.prototype.hasOwnProperty;var vi=(e,o)=>{for(var t in o)qr(e,t,{get:o[t],enumerable:!0})},Kf=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of hi(o))!Ci.call(e,a)&&a!==t&&qr(e,a,{get:()=>o[a],enumerable:!(r=gi(o,a))||r.enumerable});return e};var m=(e,o,t)=>(t=e!=null?Ii(yi(e)):{},Kf(o||!e||!e.__esModule?qr(t,"default",{value:e,enumerable:!0}):t,e)),Si=e=>Kf(qr({},"__esModule",{value:!0}),e);var Nc={};vi(Nc,{AddressDisplay:()=>Ua,AddressInput:()=>Ga,AnnotationInput:()=>Qa,AppShell:()=>tu,AsyncAutocomplete:()=>ut,AttachmentArrayDisplay:()=>Mn,AttachmentArrayInput:()=>wn,AttachmentButton:()=>ct,AttachmentDisplay:()=>io,AttachmentInput:()=>mr,BackboneElementDisplay:()=>wt,BackboneElementInput:()=>Lt,CalendarInput:()=>af,CheckboxFormSection:()=>yr,CodeInput:()=>cr,CodeableConceptDisplay:()=>mt,CodeableConceptInput:()=>Jn,CodingDisplay:()=>Hn,CodingInput:()=>$n,ContactDetailDisplay:()=>qn,ContactDetailInput:()=>Kn,ContactPointDisplay:()=>pr,ContactPointInput:()=>vr,Container:()=>Lo,DateTimeInput:()=>ao,DefaultResourceTimeline:()=>Wu,DescriptionList:()=>En,DescriptionListEntry:()=>Ln,DiagnosticReportDisplay:()=>Ia,Document:()=>Ar,ElementDefinitionInputSelector:()=>Zl,ElementDefinitionTypeInput:()=>rf,EncounterTimeline:()=>Xu,ErrorBoundary:()=>st,FhirPathTable:()=>Fs,Form:()=>le,FormSection:()=>Je,Header:()=>Dn,HumanNameDisplay:()=>ur,HumanNameInput:()=>_n,IdentifierDisplay:()=>Un,IdentifierInput:()=>Zn,Loading:()=>Xr,Logo:()=>qo,MedplumLink:()=>ke,MedplumProvider:()=>bi,MemoizedFhirPathTable:()=>Id,MemoizedSearchControl:()=>ud,MoneyDisplay:()=>Qn,MoneyInput:()=>Yn,Navbar:()=>An,ObservationTable:()=>ls,OperationOutcomeAlert:()=>vt,Panel:()=>ht,PatientTimeline:()=>gd,PlanDefinitionBuilder:()=>hd,QuantityDisplay:()=>Ft,QuantityInput:()=>Ye,QuestionnaireBuilder:()=>Nd,QuestionnaireForm:()=>Uf,QuestionnaireItemType:()=>Lr,QuestionnaireRepeatWrapper:()=>qf,RangeDisplay:()=>xr,RangeInput:()=>Vt,ReferenceDisplay:()=>Wo,ReferenceInput:()=>gt,ReferenceRangeEditor:()=>fc,ReferenceRangeGroupEditor:()=>$s,RegisterForm:()=>Oc,RequestGroupDisplay:()=>mc,ResourceArrayDisplay:()=>Xn,ResourceArrayInput:()=>of,ResourceAvatar:()=>Ne,ResourceBadge:()=>Ro,ResourceBlame:()=>Cc,ResourceDiff:()=>bc,ResourceForm:()=>au,ResourceHistoryTable:()=>Dc,ResourceInput:()=>Dr,ResourceName:()=>mo,ResourcePropertyDisplay:()=>Me,ResourcePropertyInput:()=>ho,ResourceTable:()=>ga,ResourceTimeline:()=>Ho,Scheduler:()=>Ac,SearchChangeEvent:()=>Ta,SearchClickEvent:()=>et,SearchControl:()=>As,SearchFieldEditor:()=>Tf,SearchFilterEditor:()=>Bf,SearchLoadEvent:()=>Ba,ServiceRequestTimeline:()=>wc,SignInForm:()=>Rc,StatusBadge:()=>Br,Timeline:()=>lf,TimelineItem:()=>No,TimingInput:()=>tf,addDateFilterBetween:()=>ya,addField:()=>ju,addFilter:()=>Ct,addLastMonthFilter:()=>gf,addMissingFilter:()=>Ca,addNextMonthFilter:()=>yf,addThisMonthFilter:()=>hf,addTodayFilter:()=>pf,addTomorrowFilter:()=>xf,addYearToDateFilter:()=>vf,addYesterdayFilter:()=>mf,buildFieldNameString:()=>qe,clearFilters:()=>Ku,clearFiltersOnField:()=>wr,convertIsoToLocal:()=>Hl,convertLocalToIso:()=>Vl,createScriptTag:()=>Hr,deleteFilter:()=>cf,getErrorsForInput:()=>Fe,getIssuesForExpression:()=>Cr,getMonthString:()=>es,getNewMultiSelectValues:()=>Of,getOpString:()=>Kt,getRecaptcha:()=>Wf,getSearchOperators:()=>Df,getSortField:()=>bf,getStartMonth:()=>ma,getTimeString:()=>Zs,getValueAndType:()=>Xe,initRecaptcha:()=>zf,isChoiceQuestion:()=>Ff,isQuestionEnabled:()=>wf,isSortDescending:()=>Pf,parseForm:()=>kn,renderValue:()=>kf,setFilters:()=>$t,setOffset:()=>Ps,setPage:()=>Sf,setPropertyValue:()=>Et,setSort:()=>va,sortByDateAndPriority:()=>sf,toggleSort:()=>_u,useMedplum:()=>T,useMedplumContext:()=>bt,useMedplumNavigate:()=>Po,useMedplumProfile:()=>rr,useResource:()=>re});module.exports=Si(Nc);var jf=require("@medplum/core"),qa=m(require("react"));function Ua(e){let o=e.value;return o?qa.default.createElement(qa.default.Fragment,null,(0,jf.formatAddress)(o)):null}var so=require("@mantine/core"),_e=m(require("react"));function _f(e,o){return e.line&&e.line.length>o?e.line[o]:""}function Zf(e,o,t){let r=e.line||[];for(;r.length<=o;)r.push("");return r[o]=t,{...e,line:r}}function Ga(e){let[o,t]=(0,_e.useState)(e.defaultValue||{}),r=(0,_e.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(Zf(r.current||{},0,c))}function l(c){a(Zf(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 _e.default.createElement(so.Group,{spacing:"xs",grow:!0,noWrap:!0},_e.default.createElement(so.NativeSelect,{"data-testid":"address-use",defaultValue:o.use,onChange:c=>n(c.currentTarget.value),data:["","home","work","temp","old","billing"]}),_e.default.createElement(so.NativeSelect,{"data-testid":"address-type",defaultValue:o.type,onChange:c=>f(c.currentTarget.value),data:["","postal","physical","both"]}),_e.default.createElement(so.TextInput,{placeholder:"Line 1",defaultValue:_f(o,0),onChange:c=>s(c.currentTarget.value)}),_e.default.createElement(so.TextInput,{placeholder:"Line 2",defaultValue:_f(o,1),onChange:c=>l(c.currentTarget.value)}),_e.default.createElement(so.TextInput,{placeholder:"City",defaultValue:o.city,onChange:c=>i(c.currentTarget.value)}),_e.default.createElement(so.TextInput,{placeholder:"State",defaultValue:o.state,onChange:c=>u(c.currentTarget.value)}),_e.default.createElement(so.TextInput,{placeholder:"Postal Code",defaultValue:o.postalCode,onChange:c=>d(c.currentTarget.value)}))}var ol=require("@mantine/core"),tl=require("@medplum/core"),Pt=m(require("react"));var Yf=require("@mantine/notifications"),Ze=m(require("react")),el=(0,Ze.createContext)(void 0);function bi(e){let o=e.medplum,t=e.navigate??Pi,[r,a]=(0,Ze.useState)({profile:o.getProfile(),loading:!1});(0,Ze.useEffect)(()=>{function f(){a({...r,profile:o.getProfile()})}return o.addEventListener("change",f),()=>o.removeEventListener("change",f)},[o,r]),(0,Ze.useEffect)(()=>{function f(){(0,Yf.showNotification)({color:"red",message:"No connection to server",autoClose:!1})}return o.addEventListener("offline",f),()=>o.removeEventListener("offline",f)},[o]);let n=(0,Ze.useMemo)(()=>({...r,medplum:o,navigate:t}),[r,o,t]);return Ze.default.createElement(el.Provider,{value:n},e.children)}function bt(){return(0,Ze.useContext)(el)}function T(){return bt().medplum}function Po(){return bt().navigate}function rr(){return bt().profile}function Pi(e){window.location.assign(e)}function Qa(e){let o=rr(),[t,r]=(0,Pt.useState)(e.defaultValue||{}),a=(0,Pt.useRef)();a.current=t;function n(f){let s=f?{text:f,authorReference:o&&(0,tl.createReference)(o),time:new Date().toISOString()}:{};r(s),e.onChange&&e.onChange(s)}return Pt.default.createElement(ol.TextInput,{name:e.name,placeholder:"Annotation text",defaultValue:t.text,onChange:f=>n(f.currentTarget.value)})}var oa=require("@mantine/core"),ro=m(require("react"));var sl=require("@mantine/core"),il=require("@medplum/core");var ar=require("react"),Go=m(require("prop-types"));var rl={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 Di=Object.defineProperty,ki=Object.defineProperties,Ti=Object.getOwnPropertyDescriptors,Ur=Object.getOwnPropertySymbols,fl=Object.prototype.hasOwnProperty,ll=Object.prototype.propertyIsEnumerable,al=(e,o,t)=>o in e?Di(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,nl=(e,o)=>{for(var t in o||(o={}))fl.call(o,t)&&al(e,t,o[t]);if(Ur)for(var t of Ur(o))ll.call(o,t)&&al(e,t,o[t]);return e},Bi=(e,o)=>ki(e,Ti(o)),Ai=(e,o)=>{var t={};for(var r in e)fl.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Ur)for(var r of Ur(e))o.indexOf(r)<0&&ll.call(e,r)&&(t[r]=e[r]);return t},x=(e,o,t)=>{let r=(0,ar.forwardRef)((a,n)=>{var f=a,{color:s="currentColor",size:l=24,stroke:i=2,children:u}=f,d=Ai(f,["color","size","stroke","children"]);return(0,ar.createElement)("svg",nl(Bi(nl({ref:n},rl),{width:l,height:l,stroke:s,strokeWidth:i,className:`tabler-icon tabler-icon-${e}`}),d),[...t.map(([c,y])=>(0,ar.createElement)(c,y)),...u||[]])});return r.propTypes={color:Go.default.string,size:Go.default.oneOfType([Go.default.string,Go.default.number]),stroke:Go.default.oneOfType([Go.default.string,Go.default.number])},r.displayName=`${o}`,r};var za=x("adjustments-horizontal","IconAdjustmentsHorizontal",[["path",{d:"M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M4 6l8 0",key:"svg-1"}],["path",{d:"M16 6l4 0",key:"svg-2"}],["path",{d:"M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M4 12l2 0",key:"svg-4"}],["path",{d:"M10 12l10 0",key:"svg-5"}],["path",{d:"M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-6"}],["path",{d:"M4 18l11 0",key:"svg-7"}],["path",{d:"M19 18l1 0",key:"svg-8"}]]);var lt=x("alert-circle","IconAlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);var Wa=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 Xa=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 Ja=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 $a=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 Ka=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 ja=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 _a=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 Za=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 nr=x("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]);var Ya=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 en=x("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]);var Qo=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 Dt=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 fr=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 on=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 tn=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 rn=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 an=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 nn=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 Tt=x("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);var fn=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 ln=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 sn=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 un=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 dn=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 Gr=x("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]);var Qr=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 mn=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 pn=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 xn=x("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);var In=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 gn=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 Bt=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 lr=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 sr=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 hn=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 yn=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 Cn=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 ir=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 vn=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")),st=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(sl.Alert,{icon:zr.default.createElement(lt,{size:16}),title:"Something went wrong",color:"red"},(0,il.normalizeErrorString)(this.state.error)):this.props.children}};var Wr=require("@mantine/core"),Sn=m(require("react"));function Xr(){return Sn.default.createElement(Wr.Center,{style:{width:"100%",height:"100vh"}},Sn.default.createElement(Wr.Loader,null))}var K=require("@mantine/core"),dr=require("@medplum/core");var W=m(require("react"));var ul=require("@medplum/core"),bn=m(require("react"));function ur(e){let o=e.value;return o?bn.default.createElement(bn.default.Fragment,null,(0,ul.formatHumanName)(o,e.options)):null}var Pn=require("@mantine/core"),jr=require("@medplum/core"),Kr=m(require("react"));var cl=require("@mantine/core"),$r=require("@medplum/core"),ml=m(require("react"));function U(e){e.preventDefault(),e.stopPropagation()}function Jr(e){if(dl(e))return!0;if(e instanceof HTMLTableCellElement){let o=e.children;if(o.length===1&&dl(o[0]))return!0}return!1}function dl(e){return e instanceof HTMLInputElement&&e.type==="checkbox"}function ke(e){let o=Po(),{to:t,suffix:r,label:a,onClick:n,children:f,...s}=e,l=Mi(t);return r&&(l+="/"+r),ml.default.createElement(cl.Anchor,{href:l,"aria-label":a,onClick:i=>{U(i),n?n(i):t&&o(l)},...s},f)}function Mi(e){if(e){if(typeof e=="string")return Fi(e);if((0,$r.isResource)(e))return wi(e);if((0,$r.isReference)(e))return Oi(e)}return"#"}function Fi(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e}function wi(e){return`/${e.resourceType}/${e.id}`}function Oi(e){return`/${e.reference}`}var ko=require("@medplum/core"),it=require("react");function re(e,o){let t=T(),[r,a]=(0,it.useState)(pl(t,e)),n=(0,it.useCallback)(f=>{(0,ko.deepEquals)(f,r)||a(f)},[r,a]);return(0,it.useEffect)(()=>{n(pl(t,e))},[t,e,n]),(0,it.useEffect)(()=>{let f=!0;return(0,ko.isReference)(e)&&t.readReference(e).then(s=>{f&&n(s)}).catch(s=>{f&&(n(void 0),o&&o((0,ko.normalizeOperationOutcome)(s)))}),()=>f=!1},[t,r,e,n,o]),r}function pl(e,o){if(o){if((0,ko.isResource)(o))return o;if((0,ko.isReference)(o))return e.getCachedReference(o)}}function Ne(e){let o=re(e.value),t=o?(0,jr.getDisplayString)(o):e.alt??"",r=(o&&(0,jr.getImageSrc)(o))??e.src,a=e.radius??"xl",n={...e};return delete n.value,delete n.link,e.link?Kr.default.createElement(ke,{to:o},Kr.default.createElement(Pn.Avatar,{src:r,alt:t,radius:a,...n})):Kr.default.createElement(Pn.Avatar,{src:r,alt:t,radius:a,...n})}var dt=require("@mantine/core"),To=require("@medplum/core");var ze=m(require("react"));var _r=require("@mantine/core"),fe=m(require("react")),xl=require("@mantine/notifications"),Il=require("@medplum/core");function ut(e){let{defaultValue:o,toKey:t,toOption:r,loadOptions:a,onChange:n,onCreate:f,creatable:s,...l}=e,i=Ei(o),u=(0,fe.useRef)(null),[d,c]=(0,fe.useState)(void 0),[y,b]=(0,fe.useState)(),[M,D]=(0,fe.useState)(),[A,g]=(0,fe.useState)(),[z,k]=(0,fe.useState)(i.map(r)),[I,X]=(0,fe.useState)([]),ve=(0,fe.useRef)();ve.current=d;let Le=(0,fe.useRef)();Le.current=y;let Se=(0,fe.useRef)();Se.current=M;let er=(0,fe.useRef)();er.current=A;let P=(0,fe.useRef)();P.current=I;let q=(0,fe.useCallback)(()=>{b(void 0);let ge=u.current?.value.trim()||"";if(ge===ve.current)return;c(ge);let Ae=new AbortController;D(Ae),a(ge,Ae.signal).then(Re=>{Ae.signal.aborted||(X(Re.map(r)),D(void 0),er.current&&(Re.length>0&&n(Re.slice(0,1)),g(!1)))}).catch(Re=>{Ae.signal.aborted||Re.message.includes("aborted")||(0,xl.showNotification)({color:"red",message:(0,Il.normalizeErrorString)(Re)})})},[a,n,r]),lo=(0,fe.useCallback)(()=>{Se.current&&(Se.current.abort(),D(void 0)),Le.current!==void 0&&window.clearTimeout(Le.current);let ge=window.setTimeout(()=>q(),100);b(ge)},[q]),He=(0,fe.useCallback)(ge=>{let Ae=[],Re=[];for(let or of ge){let Vr=P.current?.find(xi=>xi.value===or),tr=Vr?.resource;!tr&&s!==!1&&f&&(tr=f(or),Vr=r(tr)),tr&&Ae.push(tr),Vr&&Re.push(Vr)}n(Ae),k(Re)},[s,n,f,r]),ft=(0,fe.useCallback)(ge=>{ge.key==="Enter"&&(!Le.current&&!Se.current?(U(ge),P.current&&P.current.length>0&&(X(P.current.slice(0,1)),He([P.current[0].value]))):g(!0))},[He]),B=(0,fe.useCallback)(ge=>{let Ae=r(f(ge));return X([...P.current,Ae]),Ae},[f,X,r]),oe=(0,fe.useCallback)((ge,Ae)=>!Ae,[]);return(0,fe.useEffect)(()=>()=>{Se.current&&Se.current.abort()},[]),fe.default.createElement(_r.MultiSelect,{...l,ref:u,defaultValue:i.map(t),searchable:!0,onKeyDown:ft,onSearchChange:lo,data:[...z,...I],onFocus:q,onChange:He,onCreate:B,rightSectionWidth:40,rightSection:M?fe.default.createElement(_r.Loader,{size:16}):null,filter:oe,creatable:!0})}function Ei(e){return e?Array.isArray(e)?e:[e]:[]}var Li=(0,dt.createStyles)(()=>({searchInput:{input:{width:220,transition:"width 0.2s"},"input:focus":{width:400},"@media (max-width: 800px)":{input:{width:150},"input:focus":{width:150}}}}));function Ri(e){return e.id}function Ni(e){return{value:e.id,label:(0,To.getDisplayString)(e),resource:e}}function yl(e){let{classes:o}=Li(),t=Po(),r=T(),a=(0,ze.useCallback)(async(f,s)=>{let l=Vi(f),i={signal:s},u=await r.graphql(l,void 0,void 0,i);return qi(u,f)},[r]),n=(0,ze.useCallback)(f=>{f.length>0&&t(`/${(0,To.getReferenceString)(f[0])}`)},[t]);return ze.default.createElement(ut,{key:`${e.pathname}?${e.searchParams}`,size:"sm",radius:"md",className:o.searchInput,icon:ze.default.createElement(gn,{size:16}),placeholder:"Search",itemComponent:Hi,toKey:Ri,toOption:Ni,onChange:n,loadOptions:a,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var Hi=(0,ze.forwardRef)(({resource:e,...o},t)=>{let r;return e.resourceType==="Patient"?r=e.birthDate:e.resourceType==="ServiceRequest"&&(r=e.subject?.display),ze.default.createElement("div",{ref:t,...o},ze.default.createElement(dt.Group,{noWrap:!0},ze.default.createElement(Ne,{value:e}),ze.default.createElement("div",null,ze.default.createElement(dt.Text,null,(0,To.getDisplayString)(e)),ze.default.createElement(dt.Text,{size:"xs",color:"dimmed"},r))))});function Vi(e){let o=JSON.stringify(e);return(0,To.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 Hi(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),qi(Vi(t),o).slice(0,5)}function Vi(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 qi(e,o){return e.sort((t,r)=>xl(r,o)-xl(t,o))}function xl(e,o){let t=0;if(e.identifier)for(let r of e.identifier)t=Math.max(t,Il(r.value,o));if(e.resourceType==="Patient"&&e.name)for(let r of e.name)t=Math.max(t,Il((0,Bo.formatHumanName)(r),o));return t}function Il(e,o){if(!e)return 0;let t=e.toLowerCase().indexOf(o.toLowerCase());return t<0?0:100-t}var Ui=(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 kn(e){let o=bt(),{medplum:t,profile:r,navigate:a}=o,n=t.getLogins(),{classes:f,cx:l}=Ui(),[s,i]=(0,W.useState)(!1);return W.default.createElement(K.Header,{height:60,p:8,style:{zIndex:101}},W.default.createElement(K.Group,{position:"apart"},W.default.createElement(K.Group,{spacing:"xs"},W.default.createElement(K.UnstyledButton,{className:f.logoButton,onClick:e.navbarToggle},e.logo),W.default.createElement(gl,{pathname:e.pathname,searchParams:e.searchParams})),W.default.createElement(K.Menu,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:s,onClose:()=>i(!1)},W.default.createElement(K.Menu.Target,null,W.default.createElement(K.UnstyledButton,{className:l(f.user,{[f.userActive]:s}),onClick:()=>i(u=>!u)},W.default.createElement(K.Group,{spacing:7},W.default.createElement(Ne,{value:r,radius:"xl",size:24}),W.default.createElement(K.Text,{size:"sm",className:f.userName},(0,dr.formatHumanName)(r?.name?.[0])),W.default.createElement(on,{size:12,stroke:1.5})))),W.default.createElement(K.Menu.Dropdown,null,W.default.createElement(K.Stack,{align:"center",p:"xl"},W.default.createElement(Ne,{size:"xl",radius:100,value:o.profile}),W.default.createElement(ur,{value:o.profile?.name?.[0]}),W.default.createElement(K.Text,{color:"dimmed",size:"xs"},t.getActiveLogin()?.project.display)),n.length>1&&W.default.createElement(K.Menu.Divider,null),n.map(u=>u.profile.reference!==(0,dr.getReferenceString)(o.profile)&&W.default.createElement(K.Menu.Item,{key:u.profile.reference,onClick:()=>{t.setActiveLogin(u).then(()=>window.location.reload()).catch(console.log)}},W.default.createElement(K.Group,null,W.default.createElement(K.Avatar,{radius:"xl"}),W.default.createElement("div",{style:{flex:1}},W.default.createElement(K.Text,{size:"sm",weight:500},u.profile.display),W.default.createElement(K.Text,{color:"dimmed",size:"xs"},u.project.display))))),W.default.createElement(K.Menu.Divider,null),W.default.createElement(K.Menu.Item,{icon:W.default.createElement(Cn,{size:14,stroke:1.5}),onClick:()=>a("/signin")},"Add another account"),W.default.createElement(K.Menu.Item,{icon:W.default.createElement(Bt,{size:14,stroke:1.5}),onClick:()=>a(`/${(0,dr.getReferenceString)(r)}`)},"Account settings"),W.default.createElement(K.Menu.Item,{icon:W.default.createElement(cn,{size:14,stroke:1.5}),onClick:async()=>{await t.signOut(),a("/signin")}},"Sign out"),W.default.createElement(K.Text,{size:"xs",color:"dimmed",align:"center"},e.version)))))}var Xe=require("@mantine/core");var ge=m(require("react"));var ro=require("@mantine/core"),Bn=require("@mantine/notifications"),Zr=require("@medplum/core"),Ao=m(require("react"));var hl=m(require("react"));function Tn(e){let o={};for(let t of Array.from(e.elements))t instanceof HTMLInputElement?Gi(o,t):t instanceof HTMLTextAreaElement?o[t.name]=t.value:t instanceof HTMLSelectElement&&Qi(o,t);return o}function Gi(e,o){o.disabled||(o.type==="checkbox"||o.type==="radio")&&!o.checked||(e[o.name]=o.value)}function Qi(e,o){e[o.name]=o.value}function le(e){return hl.default.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:o=>{o.preventDefault();let t=Tn(o.target);e.onSubmit&&e.onSubmit(t)}},e.children)}function yl(e){let o=T(),t=o.getUserConfiguration();function r(a){let{menuname:n,bookmarkname:f}=a,l=`${e.pathname}?${e.searchParams.toString()}`,s=(0,Zr.deepClone)(t);s.menu?.find(({title:u})=>u===n)?.link?.push({name:f,target:l}),o.updateResource(s).then(u=>{t.menu=u.menu,o.dispatchEvent({type:"change"}),(0,Bn.showNotification)({color:"green",message:"Success"}),e.onOk()}).catch(u=>{(0,Bn.showNotification)({color:"red",message:(0,Zr.normalizeErrorString)(u)})})}return Ao.default.createElement(ro.Modal,{title:"Add Bookmark",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},Ao.default.createElement(le,{onSubmit:r},Ao.default.createElement(ro.Stack,null,Ao.default.createElement(zi,{config:t}),Ao.default.createElement(ro.TextInput,{label:"Bookmark Name",type:"text",name:"bookmarkname",placeholder:"bookmark name",withAsterisk:!0}),Ao.default.createElement(ro.Group,{position:"right"},Ao.default.createElement(ro.Button,{mt:"sm",type:"submit"},"OK")))))}function zi(e){function o(r){return r?.menu?.map(a=>a.title)}let t=o(e.config);return Ao.default.createElement(ro.NativeSelect,{name:"menuname",defaultValue:t[0],label:"Select Menu Option",placeholder:"Menu",data:t,withAsterisk:!0})}var ea=m(require("react"));var Yr=m(require("react"));function An(e){return typeof e.code=="string"?e.code:JSON.stringify(e)}function Wi(e){return typeof e.display=="string"?e.display:An(e)}function Xi(e){return{value:An(e),label:Wi(e),resource:e}}function Ji(e){return{code:e,display:e}}function Wo(e){let o=T(),{elementDefinition:t,creatable:r,clearable:a,...n}=e,f=(0,Yr.useCallback)(async(l,s)=>{if(!t.binding)return[];let i=t.binding.valueSet,d=(await o.searchValueSet(i,l,{signal:s})).expansion?.contains,c=[];for(let y of d)y.code&&!c.some(S=>S.code===y.code)&&c.push(y);return c},[o,t]);return Yr.default.createElement(ut,{...n,creatable:r??!0,clearable:a??!0,toKey:An,toOption:Xi,loadOptions:f,onCreate:Ji,getCreateLabel:r===!1?void 0:l=>`+ Create ${l}`})}function cr(e){let[o,t]=(0,ea.useState)(e.defaultValue);function r(a){let n=a[0],f=Ki(n);t(f),e.onChange&&e.onChange(f)}return ea.default.createElement(Wo,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:$i(o),onChange:r,creatable:e.creatable,maxSelectedValues:e.maxSelectedValues??1,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable})}function $i(e){return e?{code:e}:void 0}function Ki(e){return e?.code}var Cl=(0,Xe.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 Mn(e){let{classes:o}=Cl(),t=Do(),r=Zi(e.pathname,e.searchParams,e.menus),[a,n]=(0,ge.useState)(!1);function f(s,i){s.stopPropagation(),s.preventDefault(),t(i),window.innerWidth<768&&e.closeNavbar()}function l(s){s&&t(`/${s}`)}return ge.default.createElement(ge.default.Fragment,null,ge.default.createElement(Xe.Navbar,{width:{sm:250},p:"xs"},ge.default.createElement(Xe.ScrollArea,null,ge.default.createElement(Xe.Navbar.Section,{mb:"sm"},ge.default.createElement(cr,{key:window.location.pathname,name:"resourceType",placeholder:"Resource Type",property:{binding:{valueSet:"https://medplum.com/fhir/ValueSet/resource-types"}},onChange:s=>l(s),creatable:!1,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})),ge.default.createElement(Xe.Navbar.Section,{grow:!0},e.menus?.map(s=>ge.default.createElement(ge.default.Fragment,{key:`menu-${s.title}`},ge.default.createElement(Xe.Text,{className:o.menuTitle},s.title),s.links?.map(i=>ge.default.createElement(ji,{key:i.href,to:i.href,active:i.href===r?.href,onClick:u=>f(u,i.href)},ge.default.createElement(_i,{to:i.href,icon:i.icon}),ge.default.createElement("span",null,i.label))))),e.displayAddBookmark&&ge.default.createElement(Xe.Button,{variant:"subtle",size:"xs",mt:"xl",leftIcon:ge.default.createElement(In,{size:"0.75rem"}),onClick:()=>n(!0)},"Add Bookmark")))),e.pathname&&e.searchParams&&ge.default.createElement(yl,{pathname:e.pathname,searchParams:e.searchParams,visible:a,onOk:()=>n(!1),onCancel:()=>n(!1)}))}function ji(e){let{classes:o,cx:t}=Cl();return ge.default.createElement(ke,{onClick:e.onClick,to:e.to,className:t(o.link,{[o.linkActive]:e.active})},e.children)}function _i(e){return e.icon?e.icon:ge.default.createElement(Xe.Space,{w:30})}function Zi(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 l=Yi(e,o,f.href);l>a&&(a=l,r=f)}return r}function Yi(e,o,t){let r=new URL(t,"https://example.com");if(e!==r.pathname)return 0;let a=["_count","_offset"];for(let[f,l]of r.searchParams.entries())if(!a.includes(f)&&o.get(f)!==l)return 0;let n=1;for(let[f,l]of o.entries())a.includes(f)||r.searchParams.get(f)===l&&n++;return n}function eu(e){let o=(0,oa.useMantineTheme)(),[t,r]=(0,ao.useState)(localStorage.navbarOpen==="true"),a=T(),n=rr();function f(i){localStorage.navbarOpen=i.toString(),r(i)}function l(){f(!1)}function s(){f(!t)}return a.isLoading()?ao.default.createElement(Xr,null):ao.default.createElement(oa.AppShell,{styles:{main:{background:o.colorScheme==="dark"?o.colors.dark[8]:o.colors.gray[0]}},padding:0,fixed:!0,header:n&&ao.default.createElement(kn,{pathname:e.pathname,searchParams:e.searchParams,logo:e.logo,version:e.version,navbarToggle:s}),navbar:n&&t?ao.default.createElement(Mn,{pathname:e.pathname,searchParams:e.searchParams,menus:e.menus,closeNavbar:l,displayAddBookmark:e.displayAddBookmark}):void 0},ao.default.createElement(st,{key:`${e.pathname}?${e.searchParams?.toString()}`},ao.default.createElement(ao.Suspense,{fallback:ao.default.createElement(Xr,null)},e.children)))}var ta=m(require("react"));var vl=require("@mantine/core"),Mo=m(require("react"));function uo(e){let o=e.value,{contentType:t,url:r,title:a}=o??{};return r?Mo.default.createElement("div",{"data-testid":"attachment-display"},t?.startsWith("image/")&&Mo.default.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:r,alt:o?.title}),t?.startsWith("video/")&&Mo.default.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},Mo.default.createElement("source",{type:t,src:r})),t==="application/pdf"&&!a?.endsWith(".pdf")&&Mo.default.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},Mo.default.createElement("iframe",{width:"100%",height:"400",src:r+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),Mo.default.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},Mo.default.createElement(vl.Anchor,{href:o?.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},o?.title||"Download"))):null}function Fn(e){return ta.default.createElement("div",null,e.values?.map((o,t)=>ta.default.createElement("div",{key:"attatchment-"+t},ta.default.createElement(uo,{value:o,maxWidth:e.maxWidth}))))}var wn=require("@mantine/core");var de=m(require("react"));var At=m(require("react"));function ct(e){let o=T(),t=(0,At.useRef)(null);function r(f){U(f),t.current?.click()}function a(f){U(f);let l=f.target.files;l&&Array.from(l).forEach(n)}function n(f){if(!f||!f.name)return;e.onUploadStart&&e.onUploadStart();let s=f.name,i=f.type||"application/octet-stream";o.createBinary(f,s,i,e.onUploadProgress).then(u=>{e.onUpload({contentType:u.contentType,url:u.url,title:s})}).catch(u=>{alert(u.issue?.[0]?.details?.text)})}return At.default.createElement(At.default.Fragment,null,At.default.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:t,onChange:f=>a(f)}),e.children({onClick:r}))}function On(e){let[o,t]=(0,de.useState)(e.defaultValue??[]),r=(0,de.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return de.default.createElement("table",{style:{width:"100%"}},de.default.createElement("colgroup",null,de.default.createElement("col",{width:"97%"}),de.default.createElement("col",{width:"3%"})),de.default.createElement("tbody",null,o.map((n,f)=>de.default.createElement("tr",{key:`${f}-${o.length}`},de.default.createElement("td",null,de.default.createElement(uo,{value:n,maxWidth:200})),de.default.createElement("td",null,de.default.createElement(wn.ActionIcon,{title:"Remove",size:"sm",onClick:l=>{U(l);let s=o.slice();s.splice(f,1),a(s)}},de.default.createElement(zo,null))))),de.default.createElement("tr",null,de.default.createElement("td",null),de.default.createElement("td",null,de.default.createElement(ct,{onUpload:n=>{a([...r.current,n])}},n=>de.default.createElement(wn.ActionIcon,{...n,title:"Add",size:"sm",color:"green"},de.default.createElement(fr,{size:16})))))))}var En=require("@mantine/core"),Fo=m(require("react"));function mr(e){let[o,t]=(0,Fo.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return o?Fo.default.createElement(Fo.default.Fragment,null,Fo.default.createElement(uo,{value:o,maxWidth:200}),Fo.default.createElement(En.Button,{onClick:a=>{U(a),r(void 0)}},"Remove")):Fo.default.createElement(ct,{onUpload:r},a=>Fo.default.createElement(En.Button,{...a},"Upload..."))}var fa=require("@medplum/core"),Ot=m(require("react"));var ra=["meta","implicitRules","language","text","contained","extension","modifierExtension"];var Sl=require("@mantine/core"),Mt=m(require("react")),ou=(0,Sl.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 Ln(e){let{children:o,compact:t}=e,{classes:r,cx:a}=ou();return Mt.default.createElement("dl",{className:a(r.root,{[r.compact]:t})},o)}function Rn(e){return Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("dt",null,e.term),Mt.default.createElement("dd",null,e.children))}var Jo=require("@mantine/core"),R=require("@medplum/core");var H=m(require("react"));var bl=require("@medplum/core"),Nn=m(require("react"));function mt(e){return Nn.default.createElement(Nn.default.Fragment,null,(0,bl.formatCodeableConcept)(e.value))}var Pl=require("@medplum/core"),Hn=m(require("react"));function Vn(e){return Hn.default.createElement(Hn.default.Fragment,null,(0,Pl.formatCoding)(e.value))}var aa=m(require("react"));var qn=m(require("react"));function pr(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("]")),qn.default.createElement(qn.default.Fragment,null,t.join("").trim())}function Un(e){let o=e.value;return o?aa.default.createElement(aa.default.Fragment,null,o.name,o.name&&": ",o.telecom?.map(t=>aa.default.createElement(pr,{key:`telecom-${o.name}-${t.value}`,value:t}))):null}var Dl=m(require("react"));function Gn(e){return Dl.default.createElement("div",null,e.value?.system,": ",e.value?.value)}var kl=require("@medplum/core"),Qn=m(require("react"));function zn(e){return Qn.default.createElement(Qn.default.Fragment,null,(0,kl.formatMoney)(e.value))}var Tl=require("@medplum/core"),Wn=m(require("react"));function Ft(e){return Wn.default.createElement(Wn.default.Fragment,null,(0,Tl.formatQuantity)(e.value))}var Bl=require("@medplum/core"),Xn=m(require("react"));function xr(e){return Xn.default.createElement(Xn.default.Fragment,null,(0,Bl.formatRange)(e.value))}var Ir=m(require("react"));function Al(e){let o=e.value;return o?Ir.default.createElement(Ir.default.Fragment,null,Ir.default.createElement(Ft,{value:o.numerator}),"\xA0/\xA0",Ir.default.createElement(Ft,{value:o.denominator})):null}var Ml=require("@medplum/core"),na=m(require("react"));function Xo(e){if(!e.value)return null;let o=e.value.display||e.value.reference||(0,Ml.stringify)(e.value);return e.link!==!1&&e.value.reference?na.default.createElement(ke,{to:e.value},o):na.default.createElement(na.default.Fragment,null,o)}var gr=m(require("react"));function Jn(e){let o=e.property,t=e.values??[],r=o.type?.[0]?.code;return gr.default.createElement(gr.default.Fragment,null,t.map((a,n)=>gr.default.createElement("div",{key:`${n}-${t.length}`},gr.default.createElement(Me,{arrayElement:!0,property:o,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))))}function Me(e){let{property:o,propertyType:t,value:r}=e;if(o?.path?.endsWith(".id"))return H.default.createElement(Jo.Box,{component:"div",sx:{display:"flex",gap:3,alignItems:"center"}},r,H.default.createElement(Jo.CopyButton,{value:r,timeout:2e3},({copied:n,copy:f})=>H.default.createElement(Jo.Tooltip,{label:n?"Copied":"Copy",withArrow:!0,position:"right"},H.default.createElement(Jo.ActionIcon,{color:n?"teal":"gray",onClick:f},n?H.default.createElement(nr,{size:"1rem"}):H.default.createElement(rn,{size:"1rem"})))));if(o?.max==="*"&&!e.arrayElement)return t===R.PropertyType.Attachment?H.default.createElement(Fn,{values:r,maxWidth:e.maxWidth}):H.default.createElement(Jn,{property:o,values:r,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(t){case R.PropertyType.boolean:return H.default.createElement(H.default.Fragment,null,r===void 0?"":(!!r).toString());case R.PropertyType.SystemString:case R.PropertyType.string:return H.default.createElement("div",{style:{whiteSpace:"pre-wrap"}},r);case R.PropertyType.code:case R.PropertyType.date:case R.PropertyType.decimal:case R.PropertyType.integer:case R.PropertyType.positiveInt:case R.PropertyType.unsignedInt:case R.PropertyType.uri:case R.PropertyType.url:return H.default.createElement(H.default.Fragment,null,r);case R.PropertyType.canonical:return H.default.createElement(Xo,{value:{reference:r},link:e.link});case R.PropertyType.dateTime:case R.PropertyType.instant:return H.default.createElement(H.default.Fragment,null,(0,R.formatDateTime)(r));case R.PropertyType.markdown:return H.default.createElement("pre",null,r);case R.PropertyType.Address:return H.default.createElement(Ga,{value:r});case R.PropertyType.Annotation:return H.default.createElement(H.default.Fragment,null,r?.text);case R.PropertyType.Attachment:return H.default.createElement(uo,{value:r,maxWidth:e.maxWidth});case R.PropertyType.CodeableConcept:return H.default.createElement(mt,{value:r});case R.PropertyType.Coding:return H.default.createElement(Vn,{value:r});case R.PropertyType.ContactDetail:return H.default.createElement(Un,{value:r});case R.PropertyType.ContactPoint:return H.default.createElement(pr,{value:r});case R.PropertyType.HumanName:return H.default.createElement(ur,{value:r});case R.PropertyType.Identifier:return H.default.createElement(Gn,{value:r});case R.PropertyType.Money:return H.default.createElement(zn,{value:r});case R.PropertyType.Period:return H.default.createElement(H.default.Fragment,null,(0,R.formatPeriod)(r));case R.PropertyType.Quantity:case R.PropertyType.Duration:return H.default.createElement(Ft,{value:r});case R.PropertyType.Range:return H.default.createElement(xr,{value:r});case R.PropertyType.Ratio:return H.default.createElement(Al,{value:r});case R.PropertyType.Reference:return H.default.createElement(Xo,{value:r,link:e.link});case R.PropertyType.Timing:return H.default.createElement(H.default.Fragment,null,(0,R.formatTiming)(r));case R.PropertyType.Dosage:case R.PropertyType.UsageContext:return H.default.createElement(wt,{value:{type:t,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues});default:if(!o?.path)throw Error(`Displaying property of type ${e.propertyType} requires element definition path`);return H.default.createElement(wt,{value:{type:(0,R.getElementDefinitionTypeName)(o),value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}function Je(e,o){let t=(0,R.getTypedPropertyValue)(e,o);return t?Array.isArray(t)?[t.map(r=>r.value),t[0].type]:[t.value,t.type]:[void 0,"undefined"]}function wt(e){let o=e.value,t=o.value;if(!t)return null;let r=o.type,a=fa.globalSchema.types[r];return a?typeof t=="object"&&"name"in t&&Object.keys(t).length===1&&typeof t.name=="string"?Ot.default.createElement("div",null,t.name):Ot.default.createElement(Ln,{compact:e.compact},Object.entries(a.properties).map(n=>{let f=n[0];if(ra.includes(f))return null;let l=n[1];l.path||(l.path=r+"."+f);let[s,i]=Je(o,f);return e.ignoreMissingValues&&(!s||Array.isArray(s)&&s.length===0)?null:Ot.default.createElement(Rn,{key:f,term:(0,fa.getPropertyDisplayName)(f)},Ot.default.createElement(Me,{property:l,propertyType:i,value:s,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))})):Ot.default.createElement("div",null,r,"\xA0not implemented")}var _l=require("@mantine/core"),kr=require("@medplum/core"),Eo=m(require("react"));var la=require("@mantine/core"),hr=m(require("react"));function yr(e){return hr.default.createElement(la.Group,{noWrap:!0},hr.default.createElement("div",null,e.children),hr.default.createElement("div",null,hr.default.createElement(la.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk},(()=>null)())))}var wl=require("@mantine/core"),Ol=m(require("react"));function Fe(e,o){return e?.issue?.filter(t=>Fl(t.expression?.[0],o))?.map(t=>t.details?.text)?.join(`
|
|
65
|
-
`)}function Cr(e,o){return e?.issue?.filter(t=>Fl(t.expression?.[0],o))}function Fl(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 $e(e){return Ol.default.createElement(wl.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk,error:Fe(e.outcome,e.htmlFor)},e.children)}var go=require("@mantine/core"),sa=require("@medplum/core"),we=m(require("react"));function tu(e){let o=T(),t=re(e.defaultValue),[r,a]=(0,we.useState)(),[n,f]=(0,we.useState)();return(0,we.useEffect)(()=>{t&&(f((0,sa.deepClone)(t)),o.requestSchema(t.resourceType).then(a).catch(console.log))},[o,t]),!r||!n?we.default.createElement("div",null,"Loading..."):we.default.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:l=>{l.preventDefault(),e.onSubmit&&e.onSubmit(n)}},we.default.createElement(go.Stack,{mb:"xl"},we.default.createElement($e,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},we.default.createElement(go.TextInput,{name:"resourceType",defaultValue:n.resourceType,disabled:!0})),we.default.createElement($e,{title:"ID",htmlFor:"id",outcome:e.outcome},we.default.createElement(go.TextInput,{name:"id",defaultValue:n.id,disabled:!0}))),we.default.createElement(Lt,{typeName:n.resourceType,defaultValue:n,outcome:e.outcome,onChange:f}),we.default.createElement(go.Group,{position:"right",mt:"xl"},we.default.createElement(go.Button,{type:"submit"},"OK"),e.onDelete&&we.default.createElement(go.Button,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(n)}},"Delete")))}function Et(e,o,t,r,a){let n=r.type;if(n.length>1)for(let f of n){let l=o.replace("[x]",(0,sa.capitalize)(f.code));l in e&&delete e[l]}return e[t]=a,e}var fo=require("@mantine/core"),N=require("@medplum/core"),G=m(require("react"));var ia=m(require("react"));function $n(e){let[o,t]=(0,ia.useState)(e.defaultValue);function r(a){let n=au(a);t(n),e.onChange&&e.onChange(n)}return ia.default.createElement(Wo,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:o&&ru(o),maxSelectedValues:1,onChange:r})}function ru(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function au(e){if(e.length!==0)return{coding:e.map(o=>({system:o.system,code:o.code,display:o.display}))}}var ua=m(require("react"));function Kn(e){let[o,t]=(0,ua.useState)(e.defaultValue);function r(a){let n=a[0],f=n&&fu(n);t(f),e.onChange&&e.onChange(f)}return ua.default.createElement(Wo,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:o&&nu(o),maxSelectedValues:1,onChange:r})}function nu(e){return{system:e.system,code:e.code,display:e.display}}function fu(e){return{system:e.system,code:e.code,display:e.display}}var da=require("@mantine/core"),$o=m(require("react"));var pt=require("@mantine/core"),wo=m(require("react"));function vr(e){let[o,t]=(0,wo.useState)(e.defaultValue),r=(0,wo.useRef)();r.current=o;function a(s){s&&Object.keys(s).length===0&&(s=void 0),t(s),e.onChange&&e.onChange(s)}function n(s){let i={...r.current,system:s};s||delete i.system,a(i)}function f(s){let i={...r.current,use:s};s||delete i.use,a(i)}function l(s){let i={...r.current,value:s};s||delete i.value,a(i)}return wo.default.createElement(pt.Group,{spacing:"xs",grow:!0,noWrap:!0},wo.default.createElement(pt.NativeSelect,{"data-testid":"system",defaultValue:o?.system,onChange:s=>n(s.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),wo.default.createElement(pt.NativeSelect,{"data-testid":"use",defaultValue:o?.use,onChange:s=>f(s.currentTarget.value),data:["","home","work","temp","old","mobile"]}),wo.default.createElement(pt.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:s=>l(s.currentTarget.value)}))}function jn(e){let[o,t]=(0,$o.useState)(e.defaultValue),r=(0,$o.useRef)();r.current=o;function a(l){t(l),e.onChange&&e.onChange(l)}function n(l){let s={...r.current,name:l};l||delete s.name,a(s)}function f(l){let s={...r.current,telecom:l&&[l]};l||delete s.telecom,a(s)}return $o.default.createElement(da.Group,{spacing:"xs",grow:!0,noWrap:!0},$o.default.createElement(da.TextInput,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:o?.name,onChange:l=>n(l.currentTarget.value)}),$o.default.createElement(vr,{name:e.name+"-telecom",defaultValue:o?.telecom?.[0],onChange:f}))}var El=require("@mantine/core"),_n=require("@medplum/core"),Ll=m(require("react"));function no(e){return Ll.default.createElement(El.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:lu(),defaultValue:Rl(e.defaultValue),autoFocus:e.autoFocus,error:Fe(e.outcome,e.name),onChange:o=>{if(e.onChange){let t=o.currentTarget.value;e.onChange(Nl(t))}}})}function Rl(e){if(!e)return"";let o=new Date(e);return(0,_n.isValidDate)(o)?o.toLocaleDateString("sv")+"T"+o.toLocaleTimeString("sv"):""}function Nl(e){if(!e)return"";let o=new Date(e);return(0,_n.isValidDate)(o)?o.toISOString():""}function lu(){return"datetime-local"}var Hl=require("@mantine/core"),Vl=require("@medplum/core"),ql=m(require("react"));function Ul(e){return ql.default.createElement(Hl.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:(0,Vl.stringify)(e.defaultValue),deserialize:JSON.parse,onChange:o=>{e.onChange&&e.onChange(JSON.parse(o))}})}var Oo=require("@mantine/core"),co=m(require("react"));function Zn(e){let[o,t]=(0,co.useState)(e.defaultValue),r=(0,co.useRef)();r.current=o;function a(u){t(u),e.onChange&&e.onChange(u)}function n(u){a({...r.current,use:u||void 0})}function f(u){a({...r.current,prefix:u?u.split(" "):void 0})}function l(u){a({...r.current,given:u?u.split(" "):void 0})}function s(u){a({...r.current,family:u||void 0})}function i(u){a({...r.current,suffix:u?u.split(" "):void 0})}return co.default.createElement(Oo.Group,{spacing:"xs",grow:!0,noWrap:!0},co.default.createElement(Oo.NativeSelect,{defaultValue:o?.use,name:e.name+"-use","data-testid":"use",onChange:u=>n(u.currentTarget.value),data:["","temp","old","usual","official","nickname","anonymous","maiden"]}),co.default.createElement(Oo.TextInput,{placeholder:"Prefix",name:e.name+"-prefix",defaultValue:o?.prefix?.join(" "),onChange:u=>f(u.currentTarget.value)}),co.default.createElement(Oo.TextInput,{placeholder:"Given",name:e.name+"-given",defaultValue:o?.given?.join(" "),onChange:u=>l(u.currentTarget.value)}),co.default.createElement(Oo.TextInput,{name:e.name+"-family",placeholder:"Family",defaultValue:o?.family,onChange:u=>s(u.currentTarget.value)}),co.default.createElement(Oo.TextInput,{placeholder:"Suffix",name:e.name+"-suffix",defaultValue:o?.suffix?.join(" "),onChange:u=>i(u.currentTarget.value)}))}var Sr=require("@mantine/core"),Rt=m(require("react"));function Yn(e){let[o,t]=(0,Rt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Rt.default.createElement(Sr.Group,{spacing:"xs",grow:!0,noWrap:!0},Rt.default.createElement(Sr.TextInput,{placeholder:"System",defaultValue:o?.system,onChange:a=>r({...o,system:a.currentTarget.value})}),Rt.default.createElement(Sr.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:a=>r({...o,value:a.currentTarget.value})}))}var ca=require("@mantine/core");var ho=m(require("react")),su=["USD","EUR","CAD","GBP","AUD"];function ef(e){let{onChange:o}=e,[t,r]=(0,ho.useState)(e.defaultValue),a=(0,ho.useCallback)(s=>{r(s),o&&o(s)},[o]),n=(0,ho.useCallback)(s=>{a({...t,currency:s.currentTarget.value})},[t,a]),f=(0,ho.useCallback)(s=>{a({...t,value:s.currentTarget.valueAsNumber})},[t,a]),l=ho.default.createElement(ca.NativeSelect,{defaultValue:t?.currency,data:su,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:n});return ho.default.createElement(ca.TextInput,{type:"number",label:e.label,placeholder:e.placeholder??"Value",defaultValue:t?.value?.toString()??"USD",icon:ho.default.createElement(an,{size:14}),rightSection:l,rightSectionWidth:92,onChange:f})}var Gl=require("@mantine/core"),Nt=m(require("react"));function Ql(e){let[o,t]=(0,Nt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Nt.default.createElement(Gl.Group,{spacing:"xs",grow:!0,noWrap:!0},Nt.default.createElement(no,{name:e.name+".start",placeholder:"Start",defaultValue:o?.start,onChange:a=>r({...o,start:a})}),Nt.default.createElement(no,{name:e.name+".end",placeholder:"End",defaultValue:o?.end,onChange:a=>r({...o,end:a})}))}var It=require("@mantine/core"),xt=m(require("react"));function eo(e){let[o,t]=(0,xt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return xt.default.createElement(It.Group,{spacing:"xs",grow:!0,noWrap:!0},xt.default.createElement(It.NativeSelect,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:o?.comparator,data:["","<","<=",">=",">"],onChange:a=>r({...o,comparator:a.currentTarget.value})}),xt.default.createElement(It.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:iu(a.currentTarget.value)})}}),xt.default.createElement(It.TextInput,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:o?.unit,onChange:a=>r({...o,unit:a.currentTarget.value})}))}function iu(e){if(e)return parseFloat(e)}var zl=require("@mantine/core"),Ht=m(require("react"));function Vt(e){let[o,t]=(0,Ht.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Ht.default.createElement(zl.Group,{spacing:"xs",grow:!0,noWrap:!0},Ht.default.createElement(eo,{name:e.name+"-low",defaultValue:o?.low,onChange:a=>r({...o,low:a})}),Ht.default.createElement(eo,{name:e.name+"-high",defaultValue:o?.high,onChange:a=>r({...o,high:a})}))}var Wl=require("@mantine/core"),qt=m(require("react"));function Xl(e){let[o,t]=(0,qt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return qt.default.createElement(Wl.Group,{spacing:"xs",grow:!0,noWrap:!0},qt.default.createElement(eo,{name:e.name+"-numerator",defaultValue:o?.numerator,onChange:a=>r({...o,numerator:a})}),qt.default.createElement(eo,{name:e.name+"-denominator",defaultValue:o?.denominator,onChange:a=>r({...o,denominator:a})}))}var Ut=require("@mantine/core"),Jl=require("@medplum/core"),mo=m(require("react"));var br=require("@mantine/core"),Pr=require("@medplum/core"),Ve=m(require("react"));var uu={Observation:"code",User:"email:contains"},du=["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 cu(e){return{value:(0,Pr.getReferenceString)(e),label:(0,Pr.getDisplayString)(e),resource:e}}function Dr(e){let o=T(),t=e.resourceType,[r,a]=(0,Ve.useState)(),n=re(e.defaultValue,a),f=e.onChange,l=(0,Ve.useCallback)(async(i,u)=>{let d=pu(t),c=new URLSearchParams({[d]:i,_count:"10"});return await o.searchResources(t,c,{signal:u})},[o,t]),s=(0,Ve.useCallback)(i=>{f&&f(i[0])},[f]);return e.defaultValue&&!r&&!n?null:Ve.default.createElement(ut,{name:e.name,itemComponent:mu,defaultValue:n,placeholder:e.placeholder,maxSelectedValues:1,toKey:Pr.getReferenceString,toOption:cu,loadOptions:l,onChange:s,clearable:!0})}var mu=(0,Ve.forwardRef)(({label:e,resource:o,...t},r)=>Ve.default.createElement("div",{ref:r,...t},Ve.default.createElement(br.Group,{noWrap:!0},Ve.default.createElement(Ne,{value:o}),Ve.default.createElement("div",null,Ve.default.createElement(br.Text,null,e),Ve.default.createElement(br.Text,{size:"xs",color:"dimmed"},o.birthDate)))));function pu(e){return uu[e]??(du.includes(e)?"name":"_id")}function gt(e){let o=xu(e.targetTypes),t=Iu(e.defaultValue,o),[r,a]=(0,mo.useState)(e.defaultValue),[n,f]=(0,mo.useState)(t),l=(0,mo.useRef)();l.current=r;let s=(0,mo.useRef)();s.current=n;function i(u){a(u),e.onChange&&e.onChange(u)}return mo.default.createElement(Ut.Group,{spacing:"xs",grow:!0,noWrap:!0},o?mo.default.createElement(Ut.NativeSelect,{"data-autofocus":e.autoFocus,"data-testid":"reference-input-resource-type-select",defaultValue:n,autoFocus:e.autoFocus,onChange:u=>f(u.currentTarget.value),data:o}):mo.default.createElement(Ut.TextInput,{"data-autofocus":e.autoFocus,"data-testid":"reference-input-resource-type-input",defaultValue:n,autoFocus:e.autoFocus,onChange:u=>f(u.currentTarget.value)}),mo.default.createElement(Dr,{resourceType:n,name:e.name+"-id",placeholder:e.placeholder,defaultValue:r,onChange:u=>{i(u?(0,Jl.createReference)(u):void 0)}}))}function xu(e){if(!(!e||e.length===0||e.length===1&&e[0]==="Resource"))return e}function Iu(e,o){let t=e?.reference?.split("/")[0];if(t)return t;if(o&&o.length>0)return o[0]}var of=require("@mantine/core");var he=m(require("react"));function tf(e){let[o,t]=(0,he.useState)(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),r=(0,he.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return he.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},he.default.createElement("colgroup",null,he.default.createElement("col",{width:"97%"}),he.default.createElement("col",{width:"3%"})),he.default.createElement("tbody",null,o.map((n,f)=>he.default.createElement("tr",{key:`${f}-${o.length}`},he.default.createElement("td",null,he.default.createElement(yo,{arrayElement:!0,property:e.property,name:e.name+"."+f,defaultValue:n,onChange:l=>{let s=[...r.current];s[f]=l,a(s)}})),he.default.createElement("td",{style:{textAlign:"right"}},he.default.createElement(of.ActionIcon,{title:"Remove",size:"sm",onClick:l=>{U(l);let s=[...r.current];s.splice(f,1),a(s)}},he.default.createElement(zo,null))))),he.default.createElement("tr",null,he.default.createElement("td",null),he.default.createElement("td",{style:{textAlign:"right"}},he.default.createElement(of.ActionIcon,{title:"Add",size:"sm",color:"green",onClick:n=>{U(n);let f=[...r.current];f.push(void 0),a(f)}},he.default.createElement(Dt,null))))))}var ye=require("@mantine/core"),Kl=require("@medplum/core"),Z=m(require("react"));var gu=["sun","mon","tue","wed","thu","fri","sat"];function rf(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(ye.Group,{spacing:"xs",grow:!0,noWrap:!0},Z.default.createElement("span",null,(0,Kl.formatTiming)(n.current)||"No repeat"),Z.default.createElement(ye.Button,{onClick:()=>a(!0)},"Edit")),Z.default.createElement(hu,{visible:r,defaultValue:n.current,onOk:f=>{e.onChange&&e.onChange(f),t(f),a(!1)},onCancel:()=>a(!1)}))}var $l={repeat:{period:1,periodUnit:"d"}};function hu(e){let[o,t]=(0,Z.useState)(e.defaultValue||$l),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 l(i){n({...r.current?.repeat,periodUnit:i})}function s(i){n({...r.current?.repeat,dayOfWeek:i})}return Z.default.createElement(ye.Modal,{title:"Timing",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>e.onCancel()},Z.default.createElement(ye.Stack,null,Z.default.createElement($e,{title:"Starts on",htmlFor:"timing-dialog-start"},Z.default.createElement(no,{name:"timing-dialog-start",onChange:i=>a(i)})),Z.default.createElement(ye.Switch,{label:"Repeat",checked:!!o.repeat,onChange:i=>n(i.currentTarget.checked?$l.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(ye.Group,{spacing:"xs",grow:!0,noWrap:!0},Z.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)}),Z.default.createElement(ye.NativeSelect,{id:"timing-dialog-periodUnit",name:"timing-dialog-periodUnit",defaultValue:o.repeat.periodUnit,onChange:i=>l(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(ye.Chip.Group,{multiple:!0,onChange:s},Z.default.createElement(ye.Group,{position:"apart",mt:"md",spacing:"xs"},gu.map(i=>Z.default.createElement(ye.Chip,{key:i,value:i,size:"xs",radius:"xl"},i.charAt(0).toUpperCase())))))),Z.default.createElement(ye.Group,{position:"right"},Z.default.createElement(ye.Button,{onClick:()=>e.onOk(o)},"OK"))))}function yo(e){let o=e.property,t=e.defaultPropertyType??o.type?.[0]?.code,r=e.name,a=e.defaultValue;if(o.max==="*"&&!e.arrayElement)return t===N.PropertyType.Attachment?G.default.createElement(On,{name:r,defaultValue:a,onChange:e.onChange}):G.default.createElement(tf,{property:o,name:r,defaultValue:a,onChange:e.onChange});let n=o.type;return n.length>1?G.default.createElement(jl,{elementDefinitionTypes:n,...e}):G.default.createElement(af,{elementDefinitionType:n[0],...e})}function jl(e){let o=e.elementDefinitionTypes,t;e.defaultPropertyType&&(t=o.find(n=>n.code===e.defaultPropertyType)),t||(t=o[0]);let[r,a]=(0,G.useState)(t);return G.default.createElement(fo.Group,{spacing:"xs",grow:!0,noWrap:!0},G.default.createElement(fo.NativeSelect,{style:{width:"200px"},defaultValue:r.code,onChange:n=>{a(o.find(f=>f.code===n.currentTarget.value))},data:o.map(n=>({value:n.code,label:n.code}))}),G.default.createElement(af,{...e,elementDefinitionType:r,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",(0,N.capitalize)(r.code)))}}))}function af(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 N.PropertyType.SystemString:case N.PropertyType.canonical:case N.PropertyType.string:case N.PropertyType.time:case N.PropertyType.uri:case N.PropertyType.url:return G.default.createElement(fo.TextInput,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)},error:Fe(e.outcome,r)});case N.PropertyType.date:return G.default.createElement(fo.TextInput,{type:"date",id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)},error:Fe(e.outcome,r)});case N.PropertyType.dateTime:case N.PropertyType.instant:return G.default.createElement(no,{name:r,defaultValue:a,onChange:e.onChange,outcome:e.outcome});case N.PropertyType.decimal:case N.PropertyType.integer:case N.PropertyType.positiveInt:case N.PropertyType.unsignedInt:return G.default.createElement(fo.TextInput,{type:"number",step:t===N.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 N.PropertyType.code:return G.default.createElement(cr,{property:o,name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.boolean:return G.default.createElement(fo.Checkbox,{id:r,name:r,"data-testid":r,defaultChecked:!!a,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.checked)}});case N.PropertyType.markdown:return G.default.createElement(fo.Textarea,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)}});case N.PropertyType.Address:return G.default.createElement(Qa,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Annotation:return G.default.createElement(za,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Attachment:return G.default.createElement(mr,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.CodeableConcept:return G.default.createElement($n,{property:o,name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Coding:return G.default.createElement(Kn,{property:o,name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.ContactDetail:return G.default.createElement(jn,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.ContactPoint:return G.default.createElement(vr,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Extension:return G.default.createElement(Ul,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.HumanName:return G.default.createElement(Zn,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Identifier:return G.default.createElement(Yn,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Money:return G.default.createElement(ef,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Period:return G.default.createElement(Ql,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Duration:case N.PropertyType.Quantity:return G.default.createElement(eo,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Range:return G.default.createElement(Vt,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Ratio:return G.default.createElement(Xl,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Reference:return G.default.createElement(gt,{name:r,defaultValue:a,targetTypes:yu(o),onChange:e.onChange});case N.PropertyType.Timing:return G.default.createElement(rf,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Dosage:case N.PropertyType.UsageContext:return G.default.createElement(Lt,{typeName:t,defaultValue:a,onChange:e.onChange,outcome:e.outcome});default:return G.default.createElement(Lt,{typeName:(0,N.getElementDefinitionTypeName)(o),defaultValue:a,onChange:e.onChange,outcome:e.outcome})}}function yu(e){return e?.type?.[0]?.targetProfile?.map(o=>o.split("/").pop())}function Lt(e){let[o,t]=(0,Eo.useState)(e.defaultValue??{});function r(l){t(l),e.onChange&&e.onChange(l)}let a=e.typeName,n=kr.globalSchema.types[a];if(!n)return Eo.default.createElement("div",null,a,"\xA0not implemented");let f={type:a,value:o};return Eo.default.createElement(_l.Stack,null,Object.entries(n.properties).map(l=>{let s=l[0];if(s==="id"||ra.includes(s))return null;let i=l[1];if(!i.type)return null;let[u,d]=Je(f,s),c=i.min!==void 0&&i.min>0;return i.type.length===1&&i.type[0].code==="boolean"?Eo.default.createElement(yr,{key:s,title:(0,kr.getPropertyDisplayName)(s),description:i.definition,htmlFor:s},Eo.default.createElement(yo,{property:i,name:s,defaultValue:u,defaultPropertyType:d,outcome:e.outcome,onChange:(y,S)=>{r(Et(o,s,S??s,l[1],y))}})):Eo.default.createElement($e,{key:s,title:(0,kr.getPropertyDisplayName)(s),description:i.definition,withAsterisk:c,htmlFor:s,outcome:e.outcome},Eo.default.createElement(yo,{property:i,name:s,defaultValue:u,defaultPropertyType:d,onChange:(y,S)=>{r(Et(o,s,S??s,l[1],y))}}))}))}var Lo=require("@mantine/core"),se=m(require("react")),Cu=(0,Lo.createStyles)(e=>({table:{width:350,"& th":{fontWeight:"normal",fontSize:11,padding:8,textAlign:"center"},"& td":{padding:"2px 4px"},"& td button":{width:44,height:44,color:e.colors[e.primaryColor][5],fontSize:16,fontWeight:500,textAlign:"center",padding:0,backgroundColor:e.colors[e.primaryColor][0],border:0,borderRadius:"50%",cursor:"pointer"},"& td button:hover":{backgroundColor:e.colors[e.primaryColor][1]},"& td button:disabled":{backgroundColor:"transparent",cursor:"default",color:e.colors.gray[4],fontWeight:"normal"}}}));function Zl(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function nf(e){let{classes:o}=Cu(),{onChangeMonth:t,onClick:r}=e,[a,n]=(0,se.useState)(ma);function f(s){n(i=>{let u=new Date(i.getTime());return u.setMonth(i.getMonth()+s),t(u),u})}let l=(0,se.useMemo)(()=>vu(a,e.slots),[a,e.slots]);return se.default.createElement("div",null,se.default.createElement(Lo.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},se.default.createElement("p",{style:{flex:1}},Zl(a)),se.default.createElement(Lo.Group,{position:"right",spacing:"xs"},se.default.createElement(Lo.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>f(-1)},"<"),se.default.createElement(Lo.Button,{variant:"outline","aria-label":"Next month",onClick:()=>f(1)},">"))),se.default.createElement("table",{className:o.table},se.default.createElement("thead",null,se.default.createElement("tr",null,se.default.createElement("th",null,"SUN"),se.default.createElement("th",null,"MON"),se.default.createElement("th",null,"TUE"),se.default.createElement("th",null,"WED"),se.default.createElement("th",null,"THU"),se.default.createElement("th",null,"FRI"),se.default.createElement("th",null,"SAT"))),se.default.createElement("tbody",null,l.map((s,i)=>se.default.createElement("tr",{key:"week-"+i},s.map((u,d)=>se.default.createElement("td",{key:"day-"+d},u&&se.default.createElement(Lo.Button,{disabled:!u.available,onClick:()=>r(u.date)},u.date.getDate()))))))))}function ma(){let e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}function vu(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:Su(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 Su(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 pa=require("@mantine/core"),Yl=m(require("react")),bu=(0,pa.createStyles)(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function Ro(e){let{children:o,...t}=e,{classes:r}=bu();return Yl.default.createElement(pa.Container,{className:r.root,...t},o)}var ps=m(require("react"));var ie=require("@mantine/core"),Xt=require("@mantine/notifications"),jo=require("@medplum/core");var b=m(require("react"));var te=require("@mantine/core"),lo=require("@medplum/core"),h=m(require("react"));var Gt=require("@mantine/core"),ff=m(require("react")),Pu=(0,Gt.createStyles)(e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));function lf({value:e}){let{classes:o}=Pu();return e?ff.default.createElement(Gt.Stack,{justify:"flex-start",spacing:"xs"},e.map(t=>t.text&&ff.default.createElement(Gt.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 os=require("@mantine/core"),xa=m(require("react"));var es=require("@mantine/core"),Qt=require("@medplum/core"),Tr=m(require("react"));function po(e){let{value:o,link:t,...r}=e,[a,n]=(0,Tr.useState)(),f=re(o,n),l;if(a&&!(0,Qt.isOk)(a))l=`[${(0,Qt.normalizeErrorString)(a)}]`;else if(f)l=(0,Qt.getDisplayString)(f);else return null;return t?Tr.default.createElement(ke,{to:o,...r},l):Tr.default.createElement(es.Text,{component:"span",...r},l)}function No(e){return xa.default.createElement(os.Group,{spacing:"xs"},xa.default.createElement(Ne,{size:24,radius:12,value:e.value,link:e.link}),xa.default.createElement(po,{value:e.value,link:e.link}))}var ts=require("@mantine/core"),rs=m(require("react")),Du={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 Br(e){return rs.default.createElement(ts.Badge,{color:Du[e.status]},e.status)}var as=(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}}));Ia.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};function Ia(e){let o=T(),t=re(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(l=>l.status==="fulfilled").map(l=>l.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(te.Stack,null,h.default.createElement(te.Title,null,"Diagnostic Report"),h.default.createElement(ku,{value:t}),!e.hideSpecimenInfo&&Tu(r),t.result&&h.default.createElement(ns,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&h.default.createElement(lf,{value:n}))}function ku({value:e}){return h.default.createElement(te.Group,{mt:"md",spacing:30},e.subject&&h.default.createElement("div",null,h.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),h.default.createElement(te.Text,null,h.default.createElement(No,{value:e.subject,link:!0}))),e.resultsInterpreter?.map(o=>h.default.createElement("div",{key:o.reference},h.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),h.default.createElement(te.Text,null,h.default.createElement(No,{value:o,link:!0})))),e.performer?.map(o=>h.default.createElement("div",{key:o.reference},h.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Performer"),h.default.createElement(te.Text,null,h.default.createElement(No,{value:o,link:!0})))),e.issued&&h.default.createElement("div",null,h.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),h.default.createElement(te.Text,null,(0,lo.formatDateTime)(e.issued))),e.status&&h.default.createElement("div",null,h.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),h.default.createElement(te.Text,null,(0,lo.capitalize)(e.status))))}function Tu(e){return h.default.createElement(te.Stack,{spacing:"xs"},h.default.createElement(te.Title,{order:2,size:"h6"},"Specimens"),h.default.createElement(te.List,{type:"ordered"},e?.map(o=>h.default.createElement(te.List.Item,{ml:"sm",key:`specimen-${o.id}`},h.default.createElement(te.Group,{spacing:20},h.default.createElement(te.Group,{spacing:5},h.default.createElement(te.Text,{fw:500},"Collected:")," ",(0,lo.formatDateTime)(o.collection?.collectedDateTime)),h.default.createElement(te.Group,{spacing:5},h.default.createElement(te.Text,{fw:500},"Received:")," ",(0,lo.formatDateTime)(o.receivedTime)))))))}function ns(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(fs,{value:e.value,hideObservationNotes:e.hideObservationNotes})))}function fs(e){return h.default.createElement(h.default.Fragment,null,e.value?.map(o=>h.default.createElement(Bu,{key:`obs-${(0,lo.isReference)(o)?o.reference:o.id}`,hideObservationNotes:e.hideObservationNotes,value:o})))}function Bu(e){let{classes:o,cx:t}=as(),r=re(e.value);if(!r)return null;let a=!e.hideObservationNotes&&r.note,n=Fu(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(mt,{value:r.code}))),h.default.createElement("td",null,h.default.createElement(Au,{value:r})),h.default.createElement("td",null,h.default.createElement(Mu,{value:r.referenceRange})),h.default.createElement("td",null,r.interpretation&&r.interpretation.length>0&&h.default.createElement(mt,{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,lo.formatCodeableConcept)(f)}`},h.default.createElement(mt,{value:f}))))),h.default.createElement("td",null,r.performer?.map(f=>h.default.createElement(Xo,{key:f.reference,value:f}))),h.default.createElement("td",null,r.status&&h.default.createElement(Br,{status:r.status}))),r.hasMember&&h.default.createElement(fs,{value:r.hasMember,hideObservationNotes:e.hideObservationNotes}),a&&h.default.createElement("tr",null,h.default.createElement("td",{colSpan:6},h.default.createElement(lf,{value:r.note}))))}function Au(e){let o=e.value;return h.default.createElement(h.default.Fragment,null,(0,lo.formatObservationValue)(o))}function Mu(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(xr,{value:o}):null}function Fu(e){let o=e.interpretation?.[0]?.coding?.[0]?.code;return o==="AA"||o==="LL"||o==="HH"||o==="A"}var zt=require("@mantine/core"),ls=m(require("react")),wu=(0,zt.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%"}}})),Ou={shadow:"xs",radius:"md",withBorder:!0};function ht(e){let{className:o,children:t,width:r,fill:a,unstyled:n,...f}=(0,zt.useComponentDefaultProps)("Panel",Ou,e),{classes:l,cx:s}=wu({width:r,fill:a},{name:"Panel",unstyled:n});return ls.default.createElement(zt.Paper,{className:s(l.paper,o),...f},t)}var is=require("@mantine/core"),Ko=require("@medplum/core"),ce=m(require("react"));var Eu=(0,is.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 us(e){let{classes:o}=Eu(),t=T(),[r,a]=(0,ce.useState)();if((0,ce.useEffect)(()=>{t.requestSchema(e.original.resourceType).then(a).catch(console.log)},[t,e.original.resourceType]),!r)return null;let n=r.types[e.original.resourceType];return n?ce.default.createElement("table",{className:o.root},ce.default.createElement("colgroup",null,ce.default.createElement("col",{style:{width:"30%"}}),ce.default.createElement("col",{style:{width:"35%"}}),ce.default.createElement("col",{style:{width:"35%"}})),ce.default.createElement("thead",null,ce.default.createElement("tr",null,ce.default.createElement("th",null,"Property"),ce.default.createElement("th",null,"Before"),ce.default.createElement("th",null,"After"))),ce.default.createElement("tbody",null,Object.entries(n.properties).map(f=>{let l=f[0];if(l==="id"||l==="meta")return null;let s=f[1],[i,u]=Je((0,Ko.toTypedValue)(e.original),l),[d,c]=Je((0,Ko.toTypedValue)(e.revised),l);return ss(i)&&ss(d)||(0,Ko.stringify)(i)===(0,Ko.stringify)(d)?null:ce.default.createElement("tr",{key:l},ce.default.createElement("td",null,(0,Ko.getPropertyDisplayName)(l)),ce.default.createElement("td",{className:o.removed},ce.default.createElement(Me,{property:s,propertyType:u,value:i,ignoreMissingValues:!0})),ce.default.createElement("td",{className:o.added},ce.default.createElement(Me,{property:s,propertyType:c,value:d,ignoreMissingValues:!0})))}))):null}function ss(e){return!e||Array.isArray(e)&&e.length===0||typeof e=="object"&&Object.keys(e).length===0}var Wt=m(require("react"));function ga(e){let o=T(),t=re(e.value),[r,a]=(0,Wt.useState)();return(0,Wt.useEffect)(()=>{t&&o.requestSchema(t.resourceType).then(a).catch(console.log)},[o,t]),!r||!t?null:Wt.default.createElement(wt,{value:{type:t.resourceType,value:e.forceUseInput?e.value:t},ignoreMissingValues:e.ignoreMissingValues})}var xo=require("@mantine/core"),ha=require("@medplum/core");var Se=m(require("react"));function sf(e){return Se.default.createElement(Ro,null,e.children)}function Ho(e){let{resource:o,profile:t,padding:r,popupMenuItems:a,...n}=e,f=t??o.meta?.author,l=e.dateTime??o.meta?.lastUpdated;return Se.default.createElement(ht,{"data-testid":"timeline-item",fill:!0,...n},Se.default.createElement(xo.Group,{position:"apart",spacing:8,mx:"xs",my:"sm"},Se.default.createElement(Ne,{value:f,link:!0,size:"md"}),Se.default.createElement("div",{style:{flex:1}},Se.default.createElement(xo.Text,{size:"sm"},Se.default.createElement(po,{color:"dark",weight:500,value:f,link:!0})),Se.default.createElement(xo.Text,{size:"xs"},Se.default.createElement(ke,{color:"dimmed",to:e.resource},(0,ha.formatDateTime)(l)),Se.default.createElement(xo.Text,{component:"span",color:"dimmed",mx:8},"\xB7"),Se.default.createElement(ke,{color:"dimmed",to:e.resource},e.resource.resourceType))),a&&Se.default.createElement(xo.Menu,{position:"bottom-end",shadow:"md",width:200},Se.default.createElement(xo.Menu.Target,null,Se.default.createElement(xo.ActionIcon,{radius:"xl","aria-label":`Actions for ${(0,ha.getReferenceString)(e.resource)}`},Se.default.createElement(nn,null))),a)),Se.default.createElement(st,null,r&&Se.default.createElement("div",{style:{padding:"0 16px 16px 16px"}},e.children),!r&&Se.default.createElement(Se.default.Fragment,null,e.children)))}function uf(e,o){e.sort((t,r)=>{let a=ds(t,o),n=ds(r,o);return a>n?1:a<n?-1:cs(t,o)-cs(r,o)})}function ds(e,o){if(!ms(e,o)){let t=e.priority;if(typeof t=="string")return{stat:4,asap:3,urgent:2}[t]??0}return 0}function cs(e,o){if(!ms(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 ms(e,o){return!!o&&e.resourceType===o.resourceType&&e.id===o.id}var Lu=(0,ie.createStyles)(e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}}));function Vo(e){let o=T(),t=Do(),r=o.getProfile(),a=(0,b.useRef)(null),n=re(e.value),[f,l]=(0,b.useState)(),[s,i]=(0,b.useState)([]),u=e.loadTimelineResources,d=(0,b.useRef)(s);d.current=s;let c=(0,b.useCallback)(P=>{uf(P,n),P.reverse(),i(P)},[n]),y=(0,b.useCallback)(P=>{let q=[];for(let so of P){if(so.status!=="fulfilled")continue;let He=so.value;if(He.type==="history"&&l(He),He.entry)for(let ft of He.entry)q.push(ft.resource)}c(q)},[c]),S=(0,b.useCallback)(P=>c([...d.current,P]),[c]),M=(0,b.useCallback)(()=>{let P,q;"resourceType"in e.value?(P=e.value.resourceType,q=e.value.id):[P,q]=e.value.reference?.split("/"),u(o,P,q).then(y).catch(console.log)},[o,e.value,u,y]);(0,b.useEffect)(()=>M(),[M]);function D(P){!n||!e.createCommunication||o.createResource(e.createCommunication(n,r,P)).then(q=>S(q)).catch(console.log)}function A(P){!n||!e.createMedia||o.createResource(e.createMedia(n,r,P)).then(q=>S(q)).then(()=>(0,Xt.updateNotification)({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:b.default.createElement(nr,{size:16}),autoClose:2e3})).catch(q=>(0,Xt.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,jo.normalizeErrorString)(q),icon:b.default.createElement(ln,{size:16}),autoClose:2e3}))}function g(P,q){return o.updateResource({...P,priority:q})}function z(P){g(P,"stat").then(M).catch(console.log)}function k(P){g(P,"routine").then(M).catch(console.log)}function I(P){t(`/${P.resourceType}/${P.id}`)}function X(P){t(`/${P.resourceType}/${P.id}/edit`)}function Ce(P){t(`/${P.resourceType}/${P.id}/delete`)}function Le(P){t(`/${P.resourceType}/${P.id}/_history/${P.meta?.versionId}`)}function ve(){(0,Xt.showNotification)({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})}function er(P){(0,Xt.updateNotification)({id:"upload-notification",loading:!0,title:"Uploading...",message:Gu(P),autoClose:!1,withCloseButton:!1})}return n?b.default.createElement(sf,null,e.createCommunication&&b.default.createElement(ht,null,b.default.createElement(le,{testid:"timeline-form",onSubmit:P=>{D(P.text);let q=a.current;q&&(q.value="",q.focus())}},b.default.createElement(ie.Group,{spacing:"xs",noWrap:!0,style:{width:"100%"}},b.default.createElement(Ne,{value:r}),b.default.createElement(ie.TextInput,{name:"text",ref:a,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),b.default.createElement(ie.ActionIcon,{type:"submit",radius:"xl",color:"blue",variant:"filled"},b.default.createElement(mn,{size:16})),b.default.createElement(ct,{onUpload:A,onUploadStart:ve,onUploadProgress:er},P=>b.default.createElement(ie.ActionIcon,{...P,radius:"xl",color:"blue",variant:"filled"},b.default.createElement(fr,{size:16})))))),s.map(P=>{if(!P)return null;let q=`${P.resourceType}/${P.id}/${P.meta?.versionId}`;if(P.resourceType===n.resourceType&&P.id===n.id)return b.default.createElement(Ru,{key:q,history:f,resource:P,onDetails:Le});switch(P.resourceType){case"AuditEvent":return b.default.createElement(qu,{key:q,resource:P,onDetails:I});case"Communication":return b.default.createElement(Hu,{key:q,resource:P,onPin:P.priority!=="stat"?z:void 0,onUnpin:P.priority==="stat"?k:void 0,onDetails:I,onEdit:X,onDelete:Ce});case"DiagnosticReport":return b.default.createElement(Uu,{key:q,resource:P,onDetails:I,onEdit:X,onDelete:Ce});case"Media":return b.default.createElement(Vu,{key:q,resource:P,onDetails:I,onEdit:X,onDelete:Ce});default:return b.default.createElement(Ho,{key:q,resource:P,padding:!0},b.default.createElement(ga,{value:P,ignoreMissingValues:!0}))}})):b.default.createElement(ie.Center,{style:{width:"100%",height:"100%"}},b.default.createElement(ie.Loader,null))}function Jt(e){return b.default.createElement(ie.Menu.Dropdown,null,b.default.createElement(ie.Menu.Label,null,"Resource"),e.onPin&&b.default.createElement(ie.Menu.Item,{icon:b.default.createElement(pn,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${(0,jo.getReferenceString)(e.resource)}`},"Pin"),e.onUnpin&&b.default.createElement(ie.Menu.Item,{icon:b.default.createElement(xn,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${(0,jo.getReferenceString)(e.resource)}`},"Unpin"),e.onDetails&&b.default.createElement(ie.Menu.Item,{icon:b.default.createElement(dn,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${(0,jo.getReferenceString)(e.resource)}`},"Details"),e.onEdit&&b.default.createElement(ie.Menu.Item,{icon:b.default.createElement(fn,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${(0,jo.getReferenceString)(e.resource)}`},"Edit"),e.onDelete&&b.default.createElement(b.default.Fragment,null,b.default.createElement(ie.Menu.Divider,null),b.default.createElement(ie.Menu.Label,null,"Danger zone"),b.default.createElement(ie.Menu.Item,{color:"red",icon:b.default.createElement(ir,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${(0,jo.getReferenceString)(e.resource)}`},"Delete")))}function Ru(e){let o=Nu(e.history,e.resource);return o?b.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:b.default.createElement(Jt,{...e})},b.default.createElement(us,{original:o,revised:e.resource})):b.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:b.default.createElement(Jt,{...e})},b.default.createElement("h3",null,"Created"),b.default.createElement(ga,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0}))}function Nu(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 Hu(e){let{classes:o}=Lu(),r=!e.resource.priority||e.resource.priority==="routine"?void 0:o.pinnedComment;return b.default.createElement(Ho,{resource:e.resource,profile:e.resource.sender,dateTime:e.resource.sent,padding:!0,className:r,popupMenuItems:b.default.createElement(Jt,{...e})},b.default.createElement("p",null,e.resource.payload?.[0]?.contentString))}function Vu(e){let o=e.resource.content?.contentType,t=o&&!o.startsWith("image/")&&!o.startsWith("video/")&&o!=="application/pdf";return b.default.createElement(Ho,{resource:e.resource,padding:!!t,popupMenuItems:b.default.createElement(Jt,{...e})},b.default.createElement(uo,{value:e.resource.content}))}function qu(e){return b.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:b.default.createElement(Jt,{...e})},b.default.createElement(ie.ScrollArea,null,b.default.createElement("pre",null,e.resource.outcomeDesc)))}function Uu(e){return b.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:b.default.createElement(Jt,{...e})},b.default.createElement(Ia,{value:e.resource}))}function Gu(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 Qu(e){return ps.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 cf=m(require("react"));function Ar(e){let{children:o,...t}=e;return cf.default.createElement(Ro,null,cf.default.createElement(ht,{...t},o))}var Mr=require("@medplum/core"),xs=m(require("react"));function zu(e){return xs.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,Mr.createReference)(o),subject:o.subject,sender:(0,Mr.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",encounter:(0,Mr.createReference)(o),subject:o.subject,operator:(0,Mr.createReference)(t),issued:new Date().toISOString(),content:r})})}var Zt=require("@mantine/core"),Bs=require("@medplum/core"),Y=m(require("react"));var Is=require("@medplum/core"),gs=m(require("react"));function hs(e){let o;try{o=(0,Is.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(Me,{value:o[0]||"",propertyType:e.propertyType})}var Q=require("@mantine/core"),tt=require("@medplum/core");var C=m(require("react"));var _o=require("@mantine/core"),yt=m(require("react"));function Cs(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(ys,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&yt.default.createElement(ys,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})),yt.default.createElement(_o.Text,{sx:{marginTop:"10px",marginLeft:"2px"}},"Limited to 1000 records"))}function ys(e){return yt.default.createElement(_o.Button,{onClick:()=>{e.exportLogic(),e.onCancel()}},`Export as ${e.text}`)}var Zo=require("@mantine/core"),Sa=require("@medplum/core"),J=m(require("react"));var F=require("@medplum/core"),Fr=m(require("react"));var Wu={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]},Xu={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 Ju(e){return $t(e,[])}function wr(e,o){return $t(e,(e.filters??[]).filter(t=>t.code!==o))}function Ct(e,o,t,r,a){a&&(e=wr(e,o));let n=[];return e.filters&&n.push(...e.filters),n.push({code:o,operator:t,value:r??""}),$t(e,n)}function $u(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 mf(e,o){if(!e.filters)return e;let t=[...e.filters];return t.splice(o,1),{...e,filters:t,name:void 0}}function pf(e,o){return gf(e,o,-1)}function xf(e,o){return gf(e,o,0)}function If(e,o){return gf(e,o,1)}function gf(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),ya(e,o,r,a)}function hf(e,o){return vf(e,o,-1)}function yf(e,o){return vf(e,o,0)}function Cf(e,o){return vf(e,o,1)}function vf(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),ya(e,o,r,a)}function Sf(e,o){let t=new Date;return t.setMonth(0),t.setDate(1),t.setHours(0,0,0,0),ya(e,o,t,new Date)}function ya(e,o,t,r){return e=wr(e,o),e=vs(e,o,F.Operator.GREATER_THAN_OR_EQUALS,t),e=vs(e,o,F.Operator.LESS_THAN_OR_EQUALS,r),e}function vs(e,o,t,r){return Ct(e,o,t,r.toISOString())}function Ca(e,o,t=!0){return Ct(e,o,F.Operator.MISSING,t.toString())}function Ss(e,o){return e.offset===o?e:{...e,offset:o,name:void 0}}function bf(e,o){let t=e.count??F.DEFAULT_SEARCH_COUNT,r=(o-1)*t;return Ss(e,r)}function va(e,o,t){return o===Pf(e)&&t!==void 0&&t===Df(e)?e:{...e,sortRules:[{code:o,descending:!!t}],name:void 0}}function Ku(e,o){let t=!1;return Pf(e)===o&&(t=!Df(e)),va(e,o,t)}function Pf(e){let o=e.sortRules;if(!o||o.length===0)return;let t=o[0].code;return t.startsWith("-")?t.substr(1):t}function Df(e){let o=e.sortRules;return!o||o.length===0?!1:!!o[0].descending}function kf(e){return Wu[e.type]}function Kt(e){return Xu[e]??""}function qe(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 Tf(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?ju(e,o.elementDefinition):o.searchParams&&o.searchParams.length===1&&o.name===o.searchParams[0].code?_u(e,o.searchParams[0]):null}function ju(e,o){let t=o.path?.split(".")?.pop()?.replaceAll("[x]","")??"",[r,a]=Je({type:e.resourceType,value:e},t);return r?Fr.default.createElement(Me,{property:o,propertyType:a,value:r,maxWidth:200,ignoreMissingValues:!0,link:!1}):null}function _u(e,o){let t=(0,F.evalFhirPathTyped)(o.expression,[{type:e.resourceType,value:e}]);return!t||t.length===0?null:Fr.default.createElement(Fr.default.Fragment,null,t.map((r,a)=>Fr.default.createElement(Me,{key:`${a}-${t.length}`,propertyType:r.type,value:r.value,maxWidth:200,ignoreMissingValues:!0,link:!1})))}function Bf(e){let[o,t]=(0,J.useState)({search:JSON.parse((0,Sa.stringify)(e.search))}),r=(0,J.useRef)(null),a=(0,J.useRef)(null);(0,J.useEffect)(()=>{t({search:e.search})},[e.search]);function n(g){g.key==="Enter"&&i()}function f(){i()}function l(g){g.key==="Enter"&&u()}function s(){u()}function i(){let g=o.search.fields??[],z=r.current?.value;if(z){let k=[...g,z];t({search:{...o.search,fields:k}})}}function u(){let g=o.search.fields??[],z=a.current?.value;if(z){let k=[...g];k.splice(k.indexOf(z),1),t({search:{...o.search,fields:k}})}}function d(){let g=o.search.fields??[],z=a.current?.value;if(!z)return;let k=[...g],I=k.indexOf(z);I<=0||(y(k,I,I-1),t({search:{...o.search,fields:k}}))}function c(){let g=o.search.fields??[],z=a.current?.value;if(!z)return;let k=[...g],I=k.indexOf(z);I>=k.length-1||(y(k,I,I+1),t({search:{...o.search,fields:k}}))}function y(g,z,k){let I=g[z];g[z]=g[k],g[k]=I}if(!e.visible)return null;let S=e.search.resourceType,M=Sa.globalSchema.types[S],D=o.search.fields??[],A=Zu(M).filter(g=>!D.includes(g)).sort((g,z)=>g.localeCompare(z));return J.default.createElement(Zo.Modal,{title:"Fields",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},J.default.createElement("div",null,J.default.createElement("table",{style:{margin:"auto"}},J.default.createElement("thead",null,J.default.createElement("tr",null,J.default.createElement("th",{colSpan:2,align:"center"},"Available"),J.default.createElement("th",{colSpan:2,align:"center"},"Selected"))),J.default.createElement("tbody",null,J.default.createElement("tr",null,J.default.createElement("td",{colSpan:2,align:"center"},J.default.createElement("select",{ref:r,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:g=>n(g),onDoubleClick:()=>f(),"data-testid":"available"},A.map(g=>J.default.createElement("option",{key:g,value:g},qe(g))))),J.default.createElement("td",{colSpan:2,align:"center"},J.default.createElement("select",{ref:a,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:g=>l(g),onDoubleClick:()=>s(),"data-testid":"selected"},D.map(g=>J.default.createElement("option",{key:g,value:g},qe(g))))))),J.default.createElement("tfoot",null,J.default.createElement("tr",null,J.default.createElement("td",{align:"center"},J.default.createElement(Zo.Button,{compact:!0,variant:"outline",onClick:i},"Add")),J.default.createElement("td",{align:"center"},J.default.createElement(Zo.Button,{compact:!0,variant:"outline",onClick:u},"Remove")),J.default.createElement("td",{align:"center"},J.default.createElement(Zo.Button,{compact:!0,variant:"outline",onClick:d},"Up")),J.default.createElement("td",{align:"center"},J.default.createElement(Zo.Button,{compact:!0,variant:"outline",onClick:c},"Down")))))),J.default.createElement(Zo.Button,{onClick:()=>e.onOk(o.search)},"OK"))}function Zu(e){let o=[],t=new Set,r=new Set;for(let a of Object.keys(e.properties))o.push(a),t.add(a.toLowerCase()),r.add(qe(a));if(e.searchParams)for(let a of Object.keys(e.searchParams)){let n=qe(a);!t.has(a)&&!r.has(n)&&(o.push(a),t.add(a),r.add(qe(a)))}return o}var oo=require("@mantine/core"),Or=require("@medplum/core"),E=m(require("react"));var Io=require("@medplum/core"),jt=m(require("react"));function ba(e){let{resourceType:o,filter:t}=e,r=Io.globalSchema.types[o].searchParams?.[t.code];if(r){if(r.type==="reference"&&(t.operator===Io.Operator.EQUALS||t.operator===Io.Operator.NOT_EQUALS))return jt.default.createElement(po,{value:{reference:t.value}});let a=(0,Io.getSearchParameterDetails)(o,r);if(t.code==="_lastUpdated"||a.type===Io.SearchParameterType.DATETIME)return jt.default.createElement(jt.default.Fragment,null,(0,Io.formatDateTime)(t.value))}return jt.default.createElement(jt.default.Fragment,null,t.value)}var _t=require("@mantine/core"),qo=require("@medplum/core"),Yo=m(require("react"));function Pa(e){let o=(0,qo.getSearchParameterDetails)(e.resourceType,e.searchParam),t="filter-value";switch(o.type){case qo.SearchParameterType.REFERENCE:return Yo.default.createElement(gt,{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(_t.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(_t.TextInput,{type:"date",name:t,"data-autofocus":e.autoFocus,"data-testid":t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:r=>e.onChange(r.currentTarget.value)});case qo.SearchParameterType.DATETIME:return Yo.default.createElement(no,{name:t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:e.onChange});case qo.SearchParameterType.NUMBER:return Yo.default.createElement(_t.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(eo,{name:t,defaultValue:Yu(e.defaultValue),autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(`${r.value}`):e.onChange("")}});default:return Yo.default.createElement(_t.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 Yu(e){if(e){let[o,t,r]=e.split("|");if(o)return{value:parseFloat(o),system:t,unit:r}}}function Af(e){let[o,t]=(0,E.useState)(JSON.parse((0,Or.stringify)(e.search))),[r,a]=(0,E.useState)(-1),n=(0,E.useRef)(o);n.current=o,(0,E.useEffect)(()=>{t(JSON.parse((0,Or.stringify)(e.search)))},[e.search]);function f(u){t(Ct(n.current,u.code,u.operator,u.value))}if(!e.visible)return null;let l=e.search.resourceType,s=Or.globalSchema.types[l].searchParams??{},i=o.filters||[];return E.default.createElement(oo.Modal,{title:"Filters",closeButtonProps:{"aria-label":"Close"},size:900,opened:e.visible,onClose:e.onCancel},E.default.createElement("div",null,E.default.createElement("table",null,E.default.createElement("colgroup",null,E.default.createElement("col",{style:{width:200}}),E.default.createElement("col",{style:{width:200}}),E.default.createElement("col",{style:{width:380}}),E.default.createElement("col",{style:{width:120}})),E.default.createElement("thead",null,E.default.createElement("tr",null,E.default.createElement("th",null,"Field"),E.default.createElement("th",null,"Operation"),E.default.createElement("th",null,"Value"),E.default.createElement("th",null,"Actions"))),E.default.createElement("tbody",null,i.map((u,d)=>d===r?E.default.createElement(bs,{key:`filter-${u.code}-${u.operator}-${u.value}-input`,resourceType:l,searchParams:s,defaultValue:u,okText:"Save",onOk:c=>{let y=[...i];y[d]=c,t($t(n.current,y)),a(-1)},onCancel:()=>a(-1)}):E.default.createElement(ed,{key:`filter-${u.code}-${u.operator}-${u.value}-display`,resourceType:l,searchParams:s,filter:u,onEdit:()=>a(d),onDelete:()=>t(mf(n.current,d))})),E.default.createElement(bs,{resourceType:l,searchParams:s,okText:"Add",onOk:f})))),E.default.createElement(oo.Group,{position:"right",mt:"xl"},E.default.createElement(oo.Button,{onClick:()=>e.onOk(n.current)},"OK")))}function ed(e){let{filter:o}=e;return E.default.createElement("tr",null,E.default.createElement("td",null,qe(o.code)),E.default.createElement("td",null,Kt(o.operator)),E.default.createElement("td",null,E.default.createElement(ba,{resourceType:e.resourceType,filter:o})),E.default.createElement("td",null,E.default.createElement(oo.Button,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),E.default.createElement(oo.Button,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function bs(e){let[o,t]=(0,E.useState)(e.defaultValue??{}),r=(0,E.useRef)(o);r.current=o;function a(i){t({...r.current,code:i})}function n(i){t({...r.current,operator:i})}function f(i){t({...r.current,value:i})}let l=e.searchParams[o.code],s=l&&kf(l);return E.default.createElement("tr",null,E.default.createElement("td",null,E.default.createElement(oo.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:qe(i)}))]})),E.default.createElement("td",null,s&&E.default.createElement(oo.NativeSelect,{"data-testid":"filter-operation",defaultValue:o.operator,onChange:i=>n(i.currentTarget.value),data:["",...s.map(i=>({value:i,label:Kt(i)}))]})),E.default.createElement("td",null,l&&o.operator&&E.default.createElement(Pa,{resourceType:e.resourceType,searchParam:l,defaultValue:o.value,onChange:f})),E.default.createElement("td",null,o.code&&o.operator&&o.value&&E.default.createElement(oo.Button,{compact:!0,variant:"outline",onClick:()=>{e.onOk(r.current),t({})}},e.okText),e.onCancel&&E.default.createElement(oo.Button,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}var et=require("@mantine/core"),Co=m(require("react"));function Ps(e){let[o,t]=(0,Co.useState)(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function r(){e.onOk({...e.filter,value:o})}return Co.default.createElement(et.Modal,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},Co.default.createElement(le,{onSubmit:r},Co.default.createElement(et.Grid,null,Co.default.createElement(et.Grid.Col,{span:10},Co.default.createElement(Pa,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:o,autoFocus:!0,onChange:t})),Co.default.createElement(et.Grid.Col,{span:2},Co.default.createElement(et.Button,{onClick:r,fullWidth:!0},"OK")))))}var w=require("@mantine/core"),Te=require("@medplum/core");var p=m(require("react"));function Ds(e){if(!e.searchParams)return null;function o(n,f){a(va(e.search,n.code,f))}function t(n){a(wr(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(od,{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},qe(n.code))))}function od(e){switch(e.searchParam.type){case"date":return p.default.createElement(td,{...e});case"number":case"quantity":return p.default.createElement(rd,{...e});case"reference":return p.default.createElement(ad,{...e});case"string":case"token":case"uri":return p.default.createElement(nd,{...e});default:return p.default.createElement(p.default.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function td(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(lr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Oldest to Newest"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(sr,{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(Tt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT_EQUALS)},"Does not equal..."),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Qr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.ENDS_BEFORE)},"Before..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Gr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.STARTS_AFTER)},"After..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(_a,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS)},"Between..."),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(ko,{size:14}),onClick:()=>e.onChange(If(e.search,t))},"Tomorrow"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(ko,{size:14}),onClick:()=>e.onChange(xf(e.search,t))},"Today"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(ko,{size:14}),onClick:()=>e.onChange(pf(e.search,t))},"Yesterday"),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(ko,{size:14}),onClick:()=>e.onChange(Cf(e.search,t))},"Next Month"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(ko,{size:14}),onClick:()=>e.onChange(yf(e.search,t))},"This Month"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(ko,{size:14}),onClick:()=>e.onChange(hf(e.search,t))},"Last Month"),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(ko,{size:14}),onClick:()=>e.onChange(Sf(e.search,t))},"Year to date"),p.default.createElement(Da,{...e}))}function rd(e){let{searchParam:o}=e;return p.default.createElement(w.Menu.Dropdown,null,p.default.createElement(w.Menu.Item,{icon:p.default.createElement(lr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Smallest to Largest"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(sr,{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(Tt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT_EQUALS)},"Does not equal..."),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Gr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.GREATER_THAN)},"Greater than..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Qr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.LESS_THAN)},"Less than..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),p.default.createElement(Da,{...e}))}function ad(e){let{searchParam:o}=e;return p.default.createElement(w.Menu.Dropdown,null,p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Tt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT)},"Does not equal..."),p.default.createElement(Da,{...e}))}function nd(e){let{searchParam:o}=e;return p.default.createElement(w.Menu.Dropdown,null,p.default.createElement(w.Menu.Item,{icon:p.default.createElement(lr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort A to Z"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(sr,{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(Tt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT)},"Does not equal..."),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Ya,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.CONTAINS)},"Contains..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Za,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS)},"Does not contain..."),p.default.createElement(Da,{...e}))}function Da(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(Ka,{size:14}),onClick:()=>e.onChange(Ca(e.search,t))},"Missing"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement($a,{size:14}),onClick:()=>e.onChange(Ca(e.search,t,!1))},"Not missing"),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Sn,{size:14}),onClick:()=>e.onClear(o)},"Clear filters"))}var ka=require("@medplum/core");function ks(e){let o=e.resourceType,t=[];for(let r of e.fields||["id","_lastUpdated"])t.push(fd(o,r));return t}function fd(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=ka.globalSchema.types[e],r=t.properties[o],a=t.searchParams?.[o.toLowerCase()];if(r&&a)return{name:o,elementDefinition:r,searchParams:[a]};if(r){let n;if(t.searchParams){let f=`${e}.${o.replaceAll("[x]","")}`;n=Object.values(t.searchParams).filter(l=>l.expression?.includes(f)),n.length===0&&(n=void 0)}return{name:o,elementDefinition:r,searchParams:n}}if(a){let n=(0,ka.getSearchParameterDetails)(e,a);return{name:o,elementDefinition:n.elementDefinitions?.[0],searchParams:[a]}}return{name:o}}var Ta=class extends Event{constructor(t){super("change");this.definition=t}},Ba=class extends Event{constructor(t){super("load");this.response=t}},ot=class extends Event{constructor(t,r){super("click");this.resource=t,this.browserEvent=r}},ld=(0,Q.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 Ts(e){let{classes:o}=ld(),t=T(),[r,a]=(0,C.useState)(!1),[n,f]=(0,C.useState)(),{search:l,onLoad:s}=e,[i,u]=(0,C.useState)({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,exportDialogVisible:!1,filterDialogVisible:!1}),d=(0,C.useRef)(i);d.current=i;let c=l.total??"accurate",y=(0,C.useCallback)(B=>{f(void 0),t.search(l.resourceType,(0,tt.formatSearchQuery)({...l,total:c,fields:void 0}),B).then(oe=>{u({...d.current,searchResponse:oe}),s&&s(new Ba(oe))}).catch(oe=>{u({...d.current,searchResponse:void 0}),f(oe)})},[t,l,c,s]),S=(0,C.useCallback)(()=>{u({...d.current,searchResponse:void 0}),y({cache:"reload"})},[y]);(0,C.useEffect)(()=>{y()},[y]);function M(B,oe){B.stopPropagation();let Ae=B.target.checked,Re={...d.current.selected};Ae?Re[oe]=!0:delete Re[oe],u({...d.current,selected:Re})}function D(B){B.stopPropagation();let Ie=B.target.checked,Ae={},Re=d.current.searchResponse;Ie&&Re?.entry&&Re.entry.forEach(or=>{or.resource?.id&&(Ae[or.resource.id]=!0)}),u({...d.current,selected:Ae})}function A(){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 g(B){e.onChange&&e.onChange(new Ta(B))}function z(B,oe){if(Jr(B.target)||B.button===2)return;U(B);let Ie=B.button===1||B.ctrlKey||B.metaKey;!Ie&&e.onClick&&e.onClick(new ot(oe,B)),Ie&&e.onAuxClick&&e.onAuxClick(new ot(oe,B))}function k(){return!!(e.onExport??e.onExportCsv??e.onExportTransactionBundle)}if((0,C.useEffect)(()=>{a(!1),t.requestSchema(e.search.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.search.resourceType]),!(r&&tt.globalSchema.types[e.search.resourceType]))return C.default.createElement(Q.Center,{style:{width:"100%",height:"100%"}},C.default.createElement(Q.Loader,null));let X=e.checkboxesEnabled,Ce=ks(l),Le=l.resourceType,ve=i.searchResponse,P=ve?.entry?.map(B=>B.resource),q="subtle",so="gray",He=16,ft=window.innerWidth<768;return C.default.createElement("div",{className:o.root,"data-testid":"search-control"},!e.hideToolbar&&C.default.createElement(Q.Group,{position:"apart",mb:"xl"},C.default.createElement(Q.Group,{spacing:2},C.default.createElement(Q.Button,{compact:!0,variant:q,color:so,leftIcon:C.default.createElement(tn,{size:He}),onClick:()=>u({...d.current,fieldEditorVisible:!0})},"Fields"),C.default.createElement(Q.Button,{compact:!0,variant:q,color:so,leftIcon:C.default.createElement(un,{size:He}),onClick:()=>u({...d.current,filterEditorVisible:!0})},"Filters"),e.onNew&&C.default.createElement(Q.Button,{compact:!0,variant:q,color:so,leftIcon:C.default.createElement(sn,{size:He}),onClick:e.onNew},"New..."),!ft&&k()&&C.default.createElement(Q.Button,{compact:!0,variant:q,color:so,leftIcon:C.default.createElement(vn,{size:He}),onClick:e.onExport?e.onExport:()=>u({...d.current,exportDialogVisible:!0})},"Export..."),!ft&&e.onDelete&&C.default.createElement(Q.Button,{compact:!0,variant:q,color:so,leftIcon:C.default.createElement(ir,{size:He}),onClick:()=>e.onDelete(Object.keys(i.selected))},"Delete..."),!ft&&e.onBulk&&C.default.createElement(Q.Button,{compact:!0,variant:q,color:so,leftIcon:C.default.createElement(ja,{size:He}),onClick:()=>e.onBulk(Object.keys(i.selected))},"Bulk...")),C.default.createElement(Q.Group,{spacing:2},ve&&C.default.createElement(Q.Text,{size:"xs",color:"dimmed"},cd(l,ve.total),"-",md(l,ve.total)," of"," ",`${c==="estimate"?"~":""}${ve.total?.toLocaleString()}`),C.default.createElement(Q.ActionIcon,{title:"Refresh",onClick:S},C.default.createElement(gn,{size:"1.125rem"})))),C.default.createElement(Q.Table,{className:o.table},C.default.createElement("thead",null,C.default.createElement("tr",null,X&&C.default.createElement("th",null,C.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:A(),onChange:B=>D(B)})),Ce.map(B=>C.default.createElement("th",{key:B.name},C.default.createElement(Q.Menu,{shadow:"md",width:240,position:"bottom-end"},C.default.createElement(Q.Menu.Target,null,C.default.createElement(Q.UnstyledButton,{className:o.control},C.default.createElement(Q.Group,{position:"apart",noWrap:!0},C.default.createElement(Q.Text,{weight:500,size:"sm"},qe(B.name)),C.default.createElement(Q.Center,{className:o.icon},C.default.createElement(Wa,{size:14,stroke:1.5}))))),C.default.createElement(Ds,{search:e.search,searchParams:B.searchParams,onPrompt:(oe,Ie)=>{u({...d.current,filterDialogVisible:!0,filterDialogSearchParam:oe,filterDialogFilter:Ie})},onChange:oe=>{g(oe)}}))))),!e.hideFilters&&C.default.createElement("tr",null,X&&C.default.createElement("th",null),Ce.map(B=>C.default.createElement("th",{key:B.name},B.searchParams&&C.default.createElement(id,{resourceType:Le,searchParams:B.searchParams,filters:e.search.filters}))))),C.default.createElement("tbody",null,P?.map(B=>B&&C.default.createElement("tr",{key:B.id,className:o.tr,"data-testid":"search-control-row",onClick:oe=>z(oe,B),onAuxClick:oe=>z(oe,B)},X&&C.default.createElement("td",null,C.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${B.id}`,checked:!!i.selected[B.id],onChange:oe=>M(oe,B.id)})),Ce.map(oe=>C.default.createElement("td",{key:oe.name},Tf(B,oe))))))),P?.length===0&&C.default.createElement(Ro,null,C.default.createElement(Q.Center,{style:{height:150}},C.default.createElement(Q.Text,{size:"xl",color:"dimmed"},"No results"))),ve?.total!==void 0&&ve.total>0&&C.default.createElement(Q.Center,{m:"md",p:"md"},C.default.createElement(Q.Pagination,{value:ud(l),total:dd(l,ve.total),onChange:B=>g(bf(l,B)),getControlProps:B=>{switch(B){case"previous":return{"aria-label":"Previous page"};case"next":return{"aria-label":"Next page"};default:return{}}}})),n&&C.default.createElement("div",{"data-testid":"search-error"},C.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(n,void 0,2))),C.default.createElement(Bf,{search:e.search,visible:d.current.fieldEditorVisible,onOk:B=>{g(B),u({...d.current,fieldEditorVisible:!1})},onCancel:()=>{u({...d.current,fieldEditorVisible:!1})}}),C.default.createElement(Af,{search:e.search,visible:d.current.filterEditorVisible,onOk:B=>{g(B),u({...d.current,filterEditorVisible:!1})},onCancel:()=>{u({...d.current,filterEditorVisible:!1})}}),C.default.createElement(Cs,{visible:d.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{u({...d.current,exportDialogVisible:!1})}}),C.default.createElement(Ps,{key:i.filterDialogSearchParam?.code,visible:d.current.filterDialogVisible,title:i.filterDialogSearchParam?.code?qe(i.filterDialogSearchParam.code):"",resourceType:Le,searchParam:i.filterDialogSearchParam,filter:i.filterDialogFilter,defaultValue:"",onOk:B=>{g(Ct(e.search,B.code,B.operator,B.value)),u({...d.current,filterDialogVisible:!1})},onCancel:()=>{u({...d.current,filterDialogVisible:!1})}}))}var sd=C.default.memo(Ts);function id(e){let o=(e.filters??[]).filter(t=>e.searchParams.find(r=>r.code===t.code));return o.length===0?C.default.createElement("span",null,"no filters"):C.default.createElement(C.default.Fragment,null,o.map(t=>C.default.createElement("div",{key:`filter-${t.code}-${t.operator}-${t.value}`},Kt(t.operator),"\xA0",C.default.createElement(ba,{resourceType:e.resourceType,filter:t}))))}function ud(e){return Math.floor((e.offset??0)/(e.count??tt.DEFAULT_SEARCH_COUNT))+1}function dd(e,o){let t=e.count??tt.DEFAULT_SEARCH_COUNT;return Math.ceil(o/t)}function cd(e,o){return Math.min(o,(e.offset??0)+1)}function md(e,o){return Math.min(o,((e.offset??0)+1)*(e.count??tt.DEFAULT_SEARCH_COUNT))}function As(e){let o=T(),[t,r]=(0,Y.useState)(),[a,n]=(0,Y.useState)(),{query:f,fields:l}=e,[s,i]=(0,Y.useState)(),[u,d]=(0,Y.useState)({}),c=(0,Y.useRef)();c.current=s;let y=(0,Y.useRef)({});y.current=u,(0,Y.useEffect)(()=>{n(void 0),o.graphql(f).then(i).catch(k=>n((0,Bs.normalizeOperationOutcome)(k)))},[o,f]);function S(k,I){k.stopPropagation();let Ce=k.target.checked,Le={...y.current};Ce?Le[I]=!0:delete Le[I],d(Le)}function M(k){k.stopPropagation();let X=k.target.checked,Ce={},Le=c.current?.data.ResourceList;X&&Le&&Le.forEach(ve=>{ve.id&&(Ce[ve.id]=!0)}),d(Ce)}function D(){let k=c.current?.data.ResourceList;if(!k||k.length===0)return!1;for(let I of k)if(I.id&&!y.current[I.id])return!1;return!0}function A(k,I){Jr(k.target)||(U(k),k.button!==1&&e.onClick&&e.onClick(new ot(I,k)),k.button===1&&e.onAuxClick&&e.onAuxClick(new ot(I,k)))}if((0,Y.useEffect)(()=>{o.requestSchema(e.resourceType).then(k=>{r({...k})}).catch(console.log)},[o,e.resourceType]),!t?.types[e.resourceType])return Y.default.createElement(Zt.Loader,null);let z=e.checkboxesEnabled;return Y.default.createElement("div",{onContextMenu:k=>U(k),"data-testid":"search-control"},Y.default.createElement(Zt.Table,null,Y.default.createElement("thead",null,Y.default.createElement("tr",null,z&&Y.default.createElement("th",null,Y.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:D(),onChange:k=>M(k)})),l.map(k=>Y.default.createElement("th",{key:k.name},k.name)))),Y.default.createElement("tbody",null,s?.data.ResourceList.map(k=>k&&Y.default.createElement("tr",{key:k.id,"data-testid":"search-control-row",onClick:I=>A(I,k),onAuxClick:I=>A(I,k)},z&&Y.default.createElement("td",null,Y.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${k.id}`,checked:!!u[k.id],onChange:I=>S(I,k.id)})),l.map(I=>Y.default.createElement("td",{key:I.name},Y.default.createElement(hs,{propertyType:I.propertyType,path:I.fhirPath,resource:k}))))))),s?.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(Zt.Button,{onClick:()=>e.onBulk(Object.keys(y.current))},"Bulk..."))}var pd=Y.default.memo(As);var rt=m(require("react"));function Uo(e){return rt.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},rt.default.createElement("title",null,"Medplum Logo"),rt.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"}),rt.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"}),rt.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"}),rt.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"}),rt.default.createElement("path",{fill:e.fill??"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}var Ms=require("@mantine/core");var Aa=m(require("react"));function vt(e){let o=e.outcome?.issue||e.issues;return!o||o.length===0?null:Aa.default.createElement(Ms.Alert,{icon:Aa.default.createElement(lt,{size:16}),color:"red"},o.map(t=>Aa.default.createElement("div",{"data-testid":"text-field-error",key:t.details?.text},t.details?.text)))}var Er=require("@medplum/core"),Ma=m(require("react"));function xd(e){let o=(0,Ma.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 Ma.default.createElement(Vo,{value:e.patient,loadTimelineResources:o,createCommunication:(t,r,a)=>({resourceType:"Communication",status:"completed",subject:(0,Er.createReference)(t),sender:(0,Er.createReference)(r),sent:new Date().toISOString(),payload:[{contentString:a}]}),createMedia:(t,r,a)=>({resourceType:"Media",status:"completed",subject:(0,Er.createReference)(t),operator:(0,Er.createReference)(r),issued:new Date().toISOString(),content:a})})}var Ue=require("@mantine/core"),Fs=require("@medplum/core"),L=m(require("react"));var ws=(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 Id(e){let o=T(),t=re(e.value),[r,a]=(0,L.useState)(void 0),[n,f]=(0,L.useState)(),[l,s]=(0,L.useState)(),[i,u]=(0,L.useState)();function d(){s(void 0)}function c(){f(void 0)}let y=(0,L.useRef)();if(y.current=i,(0,L.useEffect)(()=>{o.requestSchema("PlanDefinition").then(a).catch(console.log)},[o]),(0,L.useEffect)(()=>(u(Sd(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 S(M,D){u({...y.current,[M]:D})}return L.default.createElement("div",null,L.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(i)},L.default.createElement(Ue.TextInput,{label:"Plan Title",defaultValue:i.title,onChange:M=>S("title",M.currentTarget.value)}),L.default.createElement(Os,{actions:i.action||[],selectedKey:n,setSelectedKey:f,hoverKey:l,setHoverKey:s,onChange:M=>S("action",M)}),L.default.createElement(Ue.Button,{type:"submit"},"Save")))}function Os(e){let{classes:o}=ws(),t=(0,L.useRef)();t.current=e.actions;function r(f){e.onChange(t.current.map(l=>l.id===f.id?f:l))}function a(f){e.onChange([...t.current,f]),e.setSelectedKey(f.id)}function n(f){e.onChange(t.current.filter(l=>l!==f))}return L.default.createElement("div",{className:o.section},e.actions.map(f=>L.default.createElement("div",{key:f.id},L.default.createElement(gd,{action:f,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:r,onRemove:()=>n(f)}))),L.default.createElement("div",{className:o.bottomActions},L.default.createElement(Ue.Anchor,{href:"#",onClick:f=>{U(f),a({id:Ls()})}},"Add action")))}function gd(e){let{classes:o,cx:t}=ws(),{action:r}=e,a=vd(r),n=e.selectedKey===e.action.id,f=e.hoverKey===e.action.id;function l(u){u.stopPropagation(),e.setSelectedKey(e.action.id)}function s(u){U(u),e.setHoverKey(e.action.id)}let i=t(o.section,{[o.editing]:n,[o.hovering]:f&&!n});return L.default.createElement("div",{"data-testid":r.id,className:i,onClick:l,onMouseOver:s},n?L.default.createElement(yd,{action:r,actionType:a,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):L.default.createElement(hd,{action:r,actionType:a}),L.default.createElement("div",{className:o.bottomActions},L.default.createElement(Ue.Anchor,{href:"#",onClick:u=>{u.preventDefault(),e.onRemove()}},"Remove")))}var Ff={path:"PlanDefinition.action.timing[x]",min:0,max:"1",type:[{code:"dateTime"},{code:"Period"},{code:"Range"},{code:"Timing"}]};function hd(e){let{action:o,actionType:t}=e,[r,a]=Es(o);return L.default.createElement("div",null,L.default.createElement("div",null,o.title||"Untitled"," ",t&&`(${t})`),o.definitionCanonical&&L.default.createElement("div",null,L.default.createElement(Xo,{value:{reference:o.definitionCanonical}})),r&&L.default.createElement("div",null,L.default.createElement(Me,{property:Ff,propertyType:a,value:r})))}function yd(e){let{action:o}=e,[t,r]=(0,L.useState)(e.actionType);function a(n,f){e.onChange({...o,[n]:f})}return L.default.createElement(Ue.Stack,{spacing:"xl"},L.default.createElement(Ue.TextInput,{name:`actionTitle-${o.id}`,label:"Title",defaultValue:o.title,onChange:n=>a("title",n.currentTarget.value)}),L.default.createElement(Ue.TextInput,{name:`actionDescription-${o.id}`,label:"Description",defaultValue:o.description,onChange:n=>a("description",n.currentTarget.value)}),L.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&&L.default.createElement(Os,{actions:o.action,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:n=>a("action",n)}),(()=>{switch(t){case"appointment":return L.default.createElement(Fa,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:o,onChange:e.onChange});case"lab":return L.default.createElement(Fa,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});case"questionnaire":return L.default.createElement(Fa,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:o,onChange:e.onChange});case"task":return L.default.createElement(Fa,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});default:return null}})(),L.default.createElement($e,{title:"Timing",description:"When the action should take place."},L.default.createElement(Cd,{name:"timing-"+o.id,action:o,onChange:e.onChange})))}function Fa(e){let{id:o,definitionCanonical:t}=e.action,r=t?.startsWith(e.resourceType+"/")?{reference:t}:void 0;return L.default.createElement(Dr,{name:o,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:a=>{a?e.onChange({...e.action,definitionCanonical:(0,Fs.getReferenceString)(a)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function Cd(e){let o=e.action,t="timing",[r,a]=Es(o);return L.default.createElement(yo,{property:Ff,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(n,f)=>{e.onChange(Et(o,t,f??t,Ff,n))}})}function vd(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task"}function Es(e){return Je({type:"PlanDefinitionAction",value:e},"timing")}var Mf=1;function Ls(e){if(e){if(e.startsWith("id-")){let o=parseInt(e.substring(3),10);isNaN(o)||(Mf=Math.max(Mf,o+1))}return e}return"id-"+Mf++}function Sd(e){return{...e,action:Rs(e.action)}}function Rs(e){if(e)return e.map(o=>({...o,id:Ls(o.id),action:Rs(o.action)}))}var $=require("@mantine/core"),Ea=require("@medplum/core");var v=m(require("react"));var Oe=require("@mantine/core"),be=require("@medplum/core"),me=m(require("react"));var Lr=require("@medplum/core"),wa=(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))(wa||{});function wf(e){return e.type==="choice"||e.type==="open-choice"}function Of(e,o){if(!e.enableWhen)return!0;let t=e.enableBehavior??"any";for(let r of e.enableWhen){let a=Ns(o,r.question);if(r.operator==="exists"&&!r.answerBoolean&&!a?.length){if(t==="any")return!0;continue}let{anyMatch:n,allMatch:f}=Pd(r,a,t);if(t==="any"&&n)return!0;if(t==="all"&&!f)return!1}return t!=="any"}function Ns(e,o){if(!Array.isArray(e))return;let t=e.find(r=>r.linkId===o);if(t)return t.answer;for(let r of e)if(r.item){let a=Ns(r.item,o);if(a)return a}}function bd(e,o,t){if(t==="exists")return!!e===o.value;if(e){let r=t==="="||t==="!="?t?.replace("=","~"):t,[{value:a}]=(0,Lr.evalFhirPathTyped)(`%actualAnswer ${r} %expectedAnswer`,[e],{actualAnswer:e,expectedAnswer:o});return a}else return!1}function Pd(e,o,t){let r=o||[],a=(0,Lr.getTypedPropertyValue)({type:"QuestionnaireItemEnableWhen",value:e},"answer[x]"),n=!1,f=!0;for(let l of r){let s=(0,Lr.getTypedPropertyValue)({type:"QuestionnaireResponseItemAnswer",value:l},"value[x]"),{operator:i}=e;if(bd(s,a,i)?n=!0:f=!1,t==="any"&&n)break}return{anyMatch:n,allMatch:f}}function Oa(e){let o=e.item,t=e.index;function r(l,s){let i=s??0,u=e.currentResponseItems?.filter(c=>c.linkId===o.linkId)??[],d;Array.isArray(l)?d=l:d=Bd(u[0]?.answer??[],i,l),e.onChange({id:u[0].id,linkId:o.linkId,text:o.text,answer:d})}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;switch(a){case"boolean":return me.default.createElement(yr,{key:e.item.linkId,title:e.item.text,htmlFor:e.item.linkId},me.default.createElement(Oe.Checkbox,{id:e.item.linkId,name:e.item.linkId,defaultChecked:Ge(e.allResponses,o,t,e.groupSequence)??f?.valueBoolean,onChange:l=>r({valueBoolean:l.currentTarget.checked},t)}));case"decimal":return me.default.createElement(Oe.TextInput,{type:"number",step:"any",id:n,name:n,defaultValue:Ge(e.allResponses,o,t,e.groupSequence)??f?.valueDecimal,onChange:l=>r({valueDecimal:l.currentTarget.valueAsNumber},t)});case"integer":return me.default.createElement(Oe.TextInput,{type:"number",step:1,id:n,name:n,defaultValue:Ge(e.allResponses,o,t,e.groupSequence)??f?.valueInteger,onChange:l=>r({valueInteger:l.currentTarget.valueAsNumber},t)});case"date":return me.default.createElement(Oe.TextInput,{type:"date",id:n,name:n,defaultValue:Ge(e.allResponses,o,t,e.groupSequence)??f?.valueDate,onChange:l=>r({valueDate:l.currentTarget.value},t)});case"dateTime":return me.default.createElement(no,{name:n,defaultValue:Ge(e.allResponses,o,t,e.groupSequence)??f?.valueDateTime,onChange:l=>r({valueDateTime:l},t)});case"time":return me.default.createElement(Oe.TextInput,{type:"time",id:n,name:n,defaultValue:Ge(e.allResponses,o,t,e.groupSequence)??f?.valueTime,onChange:l=>r({valueTime:l.currentTarget.value},t)});case"string":case"url":return me.default.createElement(Oe.TextInput,{id:n,name:n,defaultValue:Ge(e.allResponses,o,t,e.groupSequence)??f?.valueString,onChange:l=>r({valueString:l.currentTarget.value},t)});case"text":return me.default.createElement(Oe.Textarea,{id:n,name:n,defaultValue:Ge(e.allResponses,o,t,e.groupSequence)??f?.valueString,onChange:l=>r({valueString:l.currentTarget.value},t)});case"attachment":return me.default.createElement(mr,{name:n,defaultValue:Ge(e.allResponses,o,t,e.groupSequence)??f?.valueAttachment,onChange:l=>r({valueAttachment:l},t)});case"reference":return me.default.createElement(gt,{name:n,targetTypes:Ad(o),defaultValue:Ge(e.allResponses,o,t,e.groupSequence)??f?.valueReference,onChange:l=>r({valueReference:l},t)});case"quantity":return me.default.createElement(eo,{name:n,defaultValue:Ge(e.allResponses,o,t,e.groupSequence)??f?.valueQuantity,onChange:l=>r({valueQuantity:l},t),disableWheel:!0});case"choice":case"open-choice":return Md(o)?me.default.createElement(Dd,{name:n,item:o,initial:f,allResponses:e.allResponses,index:t,groupSequence:e.groupSequence,onChangeAnswer:l=>r(l,t)}):me.default.createElement(kd,{name:n,item:o,initial:f,allResponses:e.allResponses,onChangeAnswer:l=>r(l,t)});default:return null}}function Dd(e){let{name:o,item:t,initial:r}=e,a=(0,be.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),n=[""];if(t.answerOption)for(let f of t.answerOption){let l=(0,be.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:f},"value");n.push(Ef(l))}if(t.repeats){let{propertyName:f,data:l}=Fd(e.item),s=Ge(e.allResponses,t,e.index,e.groupSequence,!0)?Ge(e.allResponses,t,e.index,e.groupSequence,!0):[Ef(a)];return me.default.createElement(Oe.MultiSelect,{data:l,placeholder:"Select items",searchable:!0,defaultValue:s,onChange:i=>{let u=i.map(d=>{let c=t.answerOption?.find(S=>S[f]===d),y=(0,be.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:c},"value");return{[f]:y.value}});e.onChangeAnswer(u)}})}return me.default.createElement(Oe.NativeSelect,{id:o,name:o,onChange:f=>{let l=f.currentTarget.selectedIndex;if(l===0){e.onChangeAnswer({});return}let s=t.answerOption[l-1],i=(0,be.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:s},"value"),u="value"+(0,be.capitalize)(i.type);e.onChangeAnswer({[u]:i.value})},defaultValue:Ge(e.allResponses,t,e.index,e.groupSequence)??Ef(a),data:n})}function kd(e){let{name:o,item:t,initial:r,onChangeAnswer:a,allResponses:n}=e;return t.answerValueSet?me.default.createElement(Wo,{elementDefinition:{binding:{valueSet:t.answerValueSet}},onChange:a}):me.default.createElement(Td,{name:o,item:t,initial:r,allResponses:n,onChangeAnswer:a})}function Td(e){let{name:o,item:t,initial:r,onChangeAnswer:a}=e,n=be.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],f=(0,be.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),l=[],s;if(t.answerOption)for(let d=0;d<t.answerOption.length;d++){let c=t.answerOption[d],y=`${o}-option-${d}`,S=(0,be.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:c},"value");f&&(0,be.stringify)(S)===(0,be.stringify)(f)&&(s=y),l.push([y,S])}let i=Ge(e.allResponses,t,e.index,e.groupSequence),u=l.find(d=>d[1].value===i)?.[0];return me.default.createElement(Oe.Radio.Group,{name:o,value:u??s,onChange:d=>{let c=l.find(y=>y[0]===d);if(c){let y=c[1],S="value"+(0,be.capitalize)(y.type);a({[S]:y.value})}}},l.map(([d,c])=>me.default.createElement(Oe.Radio,{key:d,id:d,value:d,label:me.default.createElement(Me,{property:n,propertyType:c.type,value:c.value})})))}function Bd(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 Ad(e){if(e.type!=="reference")return[];let o=e.extension?.filter(r=>r.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource");return!o||o.length===0?[]:o.map(r=>r.valueCodeableConcept?.coding?.[0]?.code)}function Md(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function Fd(e){if(e.answerOption?.length===0)return{propertyName:"",data:[]};let o=e.answerOption[0],t=(0,be.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:o},"value"),r="value"+(0,be.capitalize)(t.type),a=(e.answerOption??[]).map(n=>({value:n[r],label:r==="valueCoding"?n.valueCoding?.display:n[r]}));return{propertyName:r,data:a}}function Ef(e){if(e)return e.type==="CodeableConcept"?e.value.coding[0].display:e.type==="Coding"?e.value.display:e.value.toString()}function Vs(e,o){let t=[];for(let r of e)r.linkId===o&&t.push(r),r.item&&(t=t.concat(Vs(r.item,o)));return t}function Hs(e){let o=(0,be.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:e},"value");return(0,be.formatCoding)(o?.value)||o?.value}function Ge(e,o,t=0,r=0,a=!1){let f=Vs(e,o.linkId??"")[r]?.answer;return a?f?.map(l=>Hs(l)):Hs(f?.[t]??{})}var wd=(0,$.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 Od(e){let o=T(),t=re(e.questionnaire),[r,a]=(0,v.useState)(),[n,f]=(0,v.useState)(),[l,s]=(0,v.useState)(),[i,u]=(0,v.useState)();function d(){u(void 0)}function c(){s(void 0)}return(0,v.useEffect)(()=>{o.requestSchema("Questionnaire").then(a).catch(console.log)},[o]),(0,v.useEffect)(()=>(f(Nd(t??{resourceType:"Questionnaire"})),document.addEventListener("mouseover",d),document.addEventListener("click",c),()=>{document.removeEventListener("mouseover",d),document.removeEventListener("click",c)}),[t]),!r||!n?null:v.default.createElement("div",null,v.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(n)},v.default.createElement(qs,{item:n,selectedKey:l,setSelectedKey:s,hoverKey:i,setHoverKey:u,onChange:f}),v.default.createElement($.Button,{type:"submit"},"Save")))}function qs(e){let{classes:o,cx:t}=wd(),r=e.item,a=e.item,n=(0,Ea.isResource)(e.item),f=n||a.type==="group",l=a.linkId??"[untitled]",s=e.selectedKey===e.item.id,i=e.hoverKey===e.item.id,u=(0,v.useRef)();u.current=e.item;function d(I){U(I),e.setSelectedKey(e.item.id)}function c(I){U(I),e.setHoverKey(e.item.id)}function y(I){let X=u.current;e.onChange({...X,item:X.item?.map(Ce=>Ce.id===I.id?I:Ce)})}function S(I){e.onChange({...e.item,item:[...e.item.item??[],I]})}function M(I){e.onChange({...e.item,item:e.item.item?.filter(X=>X!==I)})}function D(I,X){e.onChange({...u.current,[I]:X})}function A(I){e.onChange({...e.item,...I})}function g(I){e.onChange({...e.item,item:e.item.item?.map(X=>X===I?{...X,repeats:!X.repeats}:X)})}function z(I,X){let Ce=qd(e.item.item,I,X);e.onChange({...e.item,item:Ce})}let k=t(o.section,{[o.editing]:s,[o.hovering]:i&&!s});return v.default.createElement("div",{"data-testid":a.linkId,className:k,onClick:d,onMouseOver:c},v.default.createElement("div",{className:o.questionBody},s?v.default.createElement(v.default.Fragment,null,n&&v.default.createElement($.TextInput,{size:"xl",defaultValue:r.title,onChange:I=>D("title",I.currentTarget.value)}),!n&&v.default.createElement($.Textarea,{autosize:!0,minRows:2,defaultValue:a.text,onChange:I=>D("text",I.currentTarget.value)}),a.type==="reference"&&v.default.createElement(Rd,{item:a,onChange:I=>D("extension",I)}),wf(a)&&v.default.createElement(Ed,{item:a,onChange:I=>A(I)})):v.default.createElement(v.default.Fragment,null,r.title&&v.default.createElement($.Title,null,r.title),a.text&&v.default.createElement("div",null,a.text),!f&&v.default.createElement(Oa,{item:a,index:0,allResponses:[],onChange:()=>{}}))),a.item?.map((I,X)=>v.default.createElement("div",{key:I.id},v.default.createElement(qs,{item:I,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,isFirst:X===0,isLast:X===(e.item.item??[]).length-1,setHoverKey:e.setHoverKey,onChange:y,onRemove:()=>M(I),onRepeatable:g,onMoveUp:()=>z(X,-1),onMoveDown:()=>z(X,1)}))),!f&&v.default.createElement("div",{className:o.topActions},s?v.default.createElement(v.default.Fragment,null,v.default.createElement($.TextInput,{size:"xs",className:o.linkIdInput,defaultValue:a.linkId,onChange:I=>D("linkId",I.currentTarget.value)}),!f&&v.default.createElement($.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:a.type,onChange:I=>D("type",I.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"}]})):v.default.createElement("div",null,l)),!n&&v.default.createElement($.Box,{className:o.movementActions},v.default.createElement($.Box,{className:o.columnAlignment},!e.isFirst&&v.default.createElement($.Anchor,{href:"#",onClick:I=>{I.preventDefault(),e.onMoveUp&&e.onMoveUp()}},v.default.createElement(Ja,{"data-testid":"up-button",size:15,className:o.movementIcons})),!e.isLast&&v.default.createElement($.Anchor,{href:"#",onClick:I=>{I.preventDefault(),e.onMoveDown&&e.onMoveDown()}},v.default.createElement(Xa,{"data-testid":"down-button",size:15,className:o.movementIcons})))),v.default.createElement("div",{className:o.bottomActions},f&&v.default.createElement(v.default.Fragment,null,v.default.createElement($.Anchor,{href:"#",onClick:I=>{I.preventDefault(),S({id:at(),linkId:Nf("q"),type:"string",text:"Question"})}},"Add item"),v.default.createElement($.Anchor,{href:"#",onClick:I=>{I.preventDefault(),S({id:at(),linkId:Nf("g"),type:"group",text:"Group"})}},"Add group")),n&&v.default.createElement($.Anchor,{href:"#",onClick:I=>{I.preventDefault(),S(Vd())}},"Add Page"),s&&!n&&v.default.createElement(v.default.Fragment,null,v.default.createElement($.Anchor,{href:"#",onClick:I=>{I.preventDefault(),e.onRepeatable&&e.onRepeatable(a)}},a.repeats?"Remove Repeatable":"Make Repeatable"),v.default.createElement($.Anchor,{href:"#",onClick:I=>{I.preventDefault(),e.onRemove&&e.onRemove()}},"Remove"))))}function Ed(e){let o=Ea.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],t=e.item.answerOption??[];return v.default.createElement("div",null,e.item.answerValueSet!==void 0?v.default.createElement($.TextInput,{placeholder:"Enter Value Set",defaultValue:e.item.answerValueSet,onChange:r=>e.onChange({...e.item,answerValueSet:r.target.value})}):v.default.createElement(Ld,{options:t,property:o,item:e.item,onChange:e.onChange}),v.default.createElement($.Box,{display:"flex"},v.default.createElement($.Anchor,{href:"#",onClick:r=>{U(r),e.onChange({...e.item,answerValueSet:void 0,answerOption:[...t,{id:at()}]})}},"Add choice"),v.default.createElement($.Space,{w:"lg"}),v.default.createElement($.Anchor,{href:"#",onClick:r=>{U(r),e.onChange({...e.item,answerOption:[],answerValueSet:""})}},"Add value set")))}function Ld(e){return v.default.createElement("div",null,e.options.map(o=>{let[t,r]=Je({type:"QuestionnaireItemAnswerOption",value:o},"value");return v.default.createElement("div",{key:o.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},v.default.createElement("div",null,v.default.createElement(yo,{key:o.id,name:"value[x]",property:e.property,defaultPropertyType:r,defaultValue:t,onChange:(a,n)=>{let f=[...e.options],l=f.findIndex(s=>s.id===o.id);f[l]={id:o.id,[n]:a},e.onChange({...e.item,answerOption:f})}})),v.default.createElement("div",null,v.default.createElement($.Anchor,{href:"#",onClick:a=>{U(a),e.onChange({...e.item,answerOption:e.options.filter(n=>n.id!==o.id)})}},"Remove")))}))}function Rd(e){let o=e.item.extension??[],t=o.filter(r=>r.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource")??[];return v.default.createElement(v.default.Fragment,null,t.map(r=>v.default.createElement("div",{key:r.id},v.default.createElement("div",{style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},v.default.createElement("div",null,v.default.createElement($.TextInput,{key:r.id,name:"value[x]",value:r.valueCodeableConcept?.coding?.[0].code??"",onChange:a=>{a.preventDefault();let n=[...o],f=n.findIndex(s=>s.id===r.id),l=n[f].valueCodeableConcept?.coding?.[0]??[];l.display=a.target.value,l.code=a.target.value,e.onChange(n)}}))),v.default.createElement("div",null,v.default.createElement($.Anchor,{href:"#",onClick:a=>{U(a),e.onChange(o.filter(n=>n.id!==r.id))}},"Remove")))),v.default.createElement($.Anchor,{href:"#",onClick:r=>{U(r),e.onChange([...o,{id:at(),url:"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource",valueCodeableConcept:{coding:[{system:"http://hl7.org/fhir/fhir-types",display:"",code:""}]}}])}},"Add Resource"))}var Lf=1,Rf=1;function Nf(e){return e+Lf++}function at(){return"id-"+Rf++}function Nd(e){return{...e,id:e.id||at(),item:Us(e.item)}}function Us(e){if(e)return e.forEach(o=>{o.id?.match(/^id-\d+$/)&&(Rf=Math.max(Rf,parseInt(o.id.substring(3),10)+1)),o.linkId?.match(/^q\d+$/)&&(Lf=Math.max(Lf,parseInt(o.linkId.substring(1),10)+1))}),e.map(o=>({...o,id:o.id||at(),item:Us(o.item),answerOption:Hd(o.answerOption)}))}function Hd(e){if(e)return e.map(o=>({...o,id:o.id||at()}))}function Vd(){return{id:at(),linkId:Nf("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 qd(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 Pe=require("@mantine/core"),St=require("@medplum/core"),O=m(require("react"));function Vf(e){let o=T(),t=o.getProfile(),[r,a]=(0,O.useState)(),n=re(e.questionnaire),[f,l]=(0,O.useState)(),[s,i]=(0,O.useState)(0),u=Xd(n?.item??[]),d=()=>i(S=>S>=u?S:S+1),c=()=>i(S=>S<=0?S:S-1);(0,O.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>o.requestSchema("QuestionnaireResponse")).then(a).catch(console.log)},[o]),(0,O.useEffect)(()=>{l(n?Gd(n):void 0)},[n]);function y(S){let M=f?.item??[],A={resourceType:"QuestionnaireResponse",item:Ws(M,S)};l(A)}return!r||!n?null:O.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&f&&e.onSubmit({...f,questionnaire:(0,St.getReferenceString)(n),subject:e.subject,source:(0,St.createReference)(t),authored:new Date().toISOString(),status:"completed"})}},n.title&&O.default.createElement(Pe.Title,null,n.title),n.item&&O.default.createElement(Qs,{items:n.item??[],allResponses:f?.item??[],onChange:y,renderPages:u>1,activePage:s}),O.default.createElement(Pe.Group,{position:"right",mt:"xl"},O.default.createElement(Ud,{activePage:s,numberOfPages:u,nextStep:d,prevStep:c,submitButtonText:e.submitButtonText})))}function Qs(e){let[o,t]=(0,O.useState)(qf(e.items));function r(n,f){let l=o.some(i=>i.id===n),s;l?s=o.map(i=>i.id===n?f:i):s=[...o,f],t(s),e.onChange(s)}let a=e.items.map((n,f)=>e.renderPages?O.default.createElement(Pe.Stepper.Step,{label:n.text,key:n.linkId},O.default.createElement(Gs,{key:`${n.linkId}-${f}`,item:n,index:f,allResponses:e.allResponses,currentResponseItems:o,groupSequence:e.groupSequence,setResponseItem:r})):O.default.createElement(Gs,{key:`${n.linkId}-${f}`,item:n,index:f,groupSequence:e.groupSequence,allResponses:e.allResponses,currentResponseItems:o,setResponseItem:r}));return e.renderPages?O.default.createElement(Pe.Stepper,{active:e.activePage??0,allowNextStepsSelect:!1,p:6},a):O.default.createElement(Pe.Stack,null,a)}function Gs(e){return Of(e.item,e.allResponses)?e.item.type==="display"?O.default.createElement("p",{key:e.item.linkId},e.item.text):e.item.type==="group"?O.default.createElement(Hf,{key:e.item.linkId,item:e.item,allResponses:e.allResponses,currentResponseItems:e.currentResponseItems,groupSequence:e.groupSequence,onChange:o=>e.setResponseItem(o.id,o)}):O.default.createElement($e,{key:e.item.linkId,htmlFor:e.item.linkId,title:e.item.text??""},O.default.createElement(Hf,{item:e.item,allResponses:e.allResponses,currentResponseItems:e.currentResponseItems,groupSequence:e.groupSequence,onChange:o=>e.setResponseItem(o.id,o)})):null}function Hf(e){let o=e.item;function t(r,a){let n=a??0,f=e.currentResponseItems.filter(l=>l.linkId===o.linkId);e.onChange({id:Kd(f,n),linkId:o.linkId,text:o.text,item:r})}return o.type==="group"?O.default.createElement(Jd,{key:e.item.linkId,text:o.text??"",item:o??[],allResponses:e.allResponses,onChange:t}):O.default.createElement($d,{item:e.item,key:e.item.linkId},({index:r})=>O.default.createElement(Oa,{...e,index:r}))}function Ud(e){return e.activePage===0&&e.numberOfPages<=0?O.default.createElement(Pe.Button,{type:"submit"},e.submitButtonText??"OK"):e.activePage>=e.numberOfPages?O.default.createElement(O.default.Fragment,null,O.default.createElement(Pe.Button,{onClick:e.prevStep},"Back"),O.default.createElement(Pe.Button,{onClick:e.nextStep,type:"submit"},e.submitButtonText??"OK")):e.activePage===0?O.default.createElement(O.default.Fragment,null,O.default.createElement(Pe.Button,{onClick:e.nextStep},"Next")):O.default.createElement(O.default.Fragment,null,O.default.createElement(Pe.Button,{onClick:e.prevStep},"Back"),O.default.createElement(Pe.Button,{onClick:e.nextStep},"Next"))}function Gd(e){return{resourceType:"QuestionnaireResponse",questionnaire:(0,St.getReferenceString)(e),item:qf(e.item)}}function qf(e){return e?.map(Qd)??[]}function Qd(e){return{id:zs(),linkId:e.linkId,text:e.text,item:qf(e.item),answer:e.initial?.map(Wd)??[]}}var zd=1;function zs(){return"id-"+zd++}function Wd(e){return{...e}}function Xd(e){return e.filter(t=>(0,St.getExtension)(t,"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl")?.valueCodeableConcept?.coding?.[0]?.code==="page").length>0?e.length:0}function Jd(e){let[o,t]=(0,O.useState)(jd(e.item,e.allResponses)),r=e.item;return O.default.createElement(O.default.Fragment,null,[...Array(o)].map((a,n)=>O.default.createElement("div",{key:n},O.default.createElement("h3",null,e.text),O.default.createElement(Qs,{items:r.item??[],allResponses:e.allResponses,groupSequence:n,onChange:f=>e.onChange(f,n)}))),e.item.repeats&&O.default.createElement(Pe.Anchor,{onClick:()=>t(a=>a+1)},"Add Group"))}function $d(e){let[o,t]=(0,O.useState)(1),r=e.item?.repeats&&e.item.type!=="choice"&&e.item.type!=="open-choice";return O.default.createElement(O.default.Fragment,null,[...Array(o)].map((a,n)=>O.default.createElement(O.default.Fragment,{key:`${e.item.linkId}-${n}`},e.children({index:n}))),r&&O.default.createElement(Pe.Anchor,{onClick:()=>t(a=>a+1)},"Add Item"))}function Kd(e,o){return e.length===0||e.length<o+1?zs():e[o].id}function jd(e,o){let t=o.filter(r=>r.linkId===e.linkId).length;return t>0?t:1}function _d(e,o){let t=Ws(e.item??[],o.item??[]);return{...o,item:t,answer:o.answer&&o.answer.length>0?o.answer:e.answer}}function Zd(e,o){let t=[],r=Math.max(e.length,o.length);for(let a=0;a<r;a++)e[a]&&o[a]?t.push(_d(e[a],o[a])):o[a]&&t.push(o[a]);return t}function Ws(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(Zd(a,n))}return t}var ee=require("@mantine/core"),Rr=require("@medplum/core");var V=m(require("react"));var Yd=(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"}})),ec=["gender","age","gestationalAge","context","appliesTo","category"],oc={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function tc(e){e=Object.assign(oc,e);let o=e.definition,[t,r]=(0,V.useState)([]),[a,n]=(0,V.useState)(1),[f,l]=(0,V.useState)(1);return(0,V.useEffect)(()=>{let S=ac(o,l);r(nc(S.qualifiedInterval||[],n))},[o]),V.default.createElement(le,{testid:"reference-range-editor",onSubmit:s},V.default.createElement(ee.Stack,null,t.map(S=>V.default.createElement(Xs,{unit:lc(o.quantitativeDetails?.unit),onChange:d,onAdd:c,onRemove:y,onRemoveGroup:u,key:`group-${S.id}`,intervalGroup:S}))),V.default.createElement(ee.ActionIcon,{title:"Add Group",size:"sm",onClick:S=>{U(S),i({id:`group-id-${a}`,filters:{},intervals:[]}),n(M=>M+1)}},V.default.createElement(Dt,null)),V.default.createElement(ee.Group,{position:"right"},V.default.createElement(ee.Button,{type:"submit"},"Save")));function s(){let S=t.flatMap(M=>M.intervals).filter(M=>!sc(M));e.onSubmit({...o,qualifiedInterval:S})}function i(S){r(M=>[...M,S])}function u(S){r(M=>M.filter(D=>D.id!==S.id))}function d(S,M){r(D=>{D=[...D];let A=D.find(z=>z.id===S),g=A?.intervals.findIndex(z=>z.id===M.id);return g!==void 0&&A?.intervals[g]&&(A.intervals[g]=M),D})}function c(S,M){M.id===void 0&&(M.id=`id-${f}`,l(D=>D+1)),r(D=>{D=[...D];let A=D.findIndex(g=>g.id===S);if(A!==-1){let g={...D[A]};M={...M,...g.filters},g.intervals=[...g.intervals,M],D[A]=g}return D})}function y(S,M){r(D=>{D=[...D];let A=D.find(g=>g.id===S);return A&&(A.intervals=A.intervals.filter(g=>g.id!==M.id)),D})}}function Xs(e){let{intervalGroup:o,unit:t}=e,{classes:r}=Yd();return V.default.createElement(Ro,{"data-testid":o.id,className:r.section},V.default.createElement(ee.Stack,{spacing:"lg"},V.default.createElement(ee.Group,{position:"right"},V.default.createElement(ee.ActionIcon,{title:"Remove Group","data-testid":`remove-group-button-${o.id}`,key:`remove-group-button-${o.id}`,size:"sm",onClick:a=>{U(a),e.onRemoveGroup(o)}},V.default.createElement(zo,null))),V.default.createElement(rc,{intervalGroup:o,onChange:e.onChange}),V.default.createElement(ee.Divider,null),o.intervals.map(a=>V.default.createElement(ee.Stack,{key:`interval-${a.id}`,spacing:"xs"},V.default.createElement(ee.Group,null,V.default.createElement(ee.TextInput,{key:`condition-${a.id}`,"data-testid":`condition-${a.id}`,defaultValue:a.condition,label:"Condition: ",size:"sm",onChange:n=>{U(n),e.onChange(o.id,{...a,condition:n.currentTarget.value.trim()})}}),V.default.createElement(ee.ActionIcon,{title:"Remove Interval",size:"sm",key:`remove-interval-${a.id}`,"data-testid":`remove-interval-${a.id}`,onClick:n=>{U(n),e.onRemove(o.id,a)}},V.default.createElement(zo,null))),V.default.createElement(Vt,{onChange:n=>{e.onChange(o.id,{...a,range:n})},key:`range-${a.id}`,name:`range-${a.id}`,defaultValue:a.range}))),V.default.createElement(ee.ActionIcon,{title:"Add Interval",size:"sm",onClick:a=>{U(a),e.onAdd(o.id,{range:{low:{unit:t},high:{unit:t}}})}},V.default.createElement(Dt,null))))}function rc(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 V.default.createElement(ee.Stack,{style:{maxWidth:"50%"}},V.default.createElement(ee.Group,null,V.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})}}})),V.default.createElement(ee.Group,{spacing:"xs"},V.default.createElement(ee.Text,{component:"label",htmlFor:`div-age-${o.id}`},"Age:"),V.default.createElement("div",{id:`div-age-${o.id}`},V.default.createElement(Vt,{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})}}))),V.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"}]}})}}}),V.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 ac(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 nc(e,o){let t=1,r={};for(let a of e){let n=fc(a);n in r||(r[n]={id:`group-id-${t++}`,filters:Object.fromEntries(ec.map(f=>[f,a[f]])),intervals:[]}),r[n].intervals.push(a)}return o(t),Object.values(r)}function fc(e){return[`gender=${e.gender}`,`age=${(0,Rr.formatRange)(e.age)}`,`gestationalAge=${(0,Rr.formatRange)(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map(t=>t.text).join("+")}`,`category=${e.category}`].join(":")}function lc(e){return e&&((0,Rr.getCodeBySystem)(e,"http://unitsofmeasure.org")||e.text)}function sc(e){return e.range?.low?.value===void 0&&e.range?.high?.value===void 0}var vo=require("@mantine/core"),La=require("@medplum/core");var pe=m(require("react"));function ic(e){let o=T(),t=re(e.value),[r,a]=(0,pe.useState)(!1),[n,f]=(0,pe.useState)();if((0,pe.useEffect)(()=>{t&&!r&&(o.executeBatch(l(t)).then(f).catch(console.log),a(!0))},[o,t,r]),!t||!n)return null;return pe.default.createElement(vo.Grid,null,t.action?.map((i,u)=>{let d=i.resource&&s(i.resource),c=d?.input?.[0]?.valueReference,y=d?.output?.[0]?.valueReference;return pe.default.createElement(pe.default.Fragment,{key:`action-${u}`},pe.default.createElement(vo.Grid.Col,{span:1,p:"md"},d?.status==="completed"?pe.default.createElement(en,null):pe.default.createElement(yn,{color:"gray"})),pe.default.createElement(vo.Grid.Col,{span:9,p:"xs"},pe.default.createElement(vo.Text,{weight:500},i.title),i.description&&pe.default.createElement("div",null,i.description),pe.default.createElement("div",null,"Last edited by\xA0",pe.default.createElement(po,{value:d?.meta?.author}),"\xA0on\xA0",(0,La.formatDateTime)(d?.meta?.lastUpdated)),pe.default.createElement("div",null,"Status: ",pe.default.createElement(Br,{status:d?.status||"unknown"}))),pe.default.createElement(vo.Grid.Col,{span:2,p:"md"},c&&!y&&pe.default.createElement(vo.Button,{onClick:()=>e.onStart(d,c)},"Start"),c&&y&&pe.default.createElement(vo.Button,{onClick:()=>e.onEdit(d,c,y)},"Edit")))}));function l(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 s(i){for(let u of n?.entry)if(u.resource&&i.reference===(0,La.getReferenceString)(u.resource))return u.resource}}var Ks=require("@mantine/core"),De=m(require("react"));var Js=require("@medplum/core");function Ra(e,o){let t=uc(e,o);return dc(t,e,o)}function uc(e,o){let t=e.length,r=o.length,a=t+r+1,n=1+2*a,f=n/2|0,l=new Array(n);l[f+1]={i:0,j:-1,prev:void 0,snake:!0};for(let s=0;s<a;s++){for(let i=-s;i<=s;i+=2){let u=f+i,d=u+1,c=u-1,y=l[d],S=l[c],M,D=0;i===-s||i!==s&&S.i<y.i?(D=y.i,M=y):(D=S.i+1,M=S),l[c]=void 0;let A=D-i,g={i:D,j:A,prev:cc(M),snake:!1};for(;D<t&&A<r&&e[D]===o[A];)D++,A++;if(D>g.i&&(g={i:D,j:A,prev:g,snake:!0}),l[u]=g,D>=t&&A>=r)return l[u]}l[f+s-1]=void 0}}function dc(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 l=a.i,s=a.j,i={position:l,lines:o.slice(l,n)},u={position:s,lines:t.slice(s,f)},d;i.lines.length===0&&u.lines.length>0?d="insert":i.lines.length>0&&u.lines.length===0?d="delete":d="change",r.push({original:i,revised:u,type:d}),a.snake&&(a=a.prev)}return r}function cc(e){return e&&!e.snake&&e.prev?e.prev:e}function $s(e){let o=e.entry.filter(r=>!!r.resource).map(r=>({meta:r.resource?.meta,lines:(0,Js.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 mc(t,o),pc(t),t}function mc(e,o){for(let t=1;t<o.length;t++){let r=Ra(o[t-1].lines,o[t].lines);for(let a of r){let n=a.original.position,f=a.original.lines,l=a.revised.lines;if((a.type==="delete"||a.type==="change")&&e.splice(n,f.length),a.type==="insert"||a.type==="change")for(let s=0;s<a.revised.lines.length;s++)e.splice(n+s,0,{id:o[t].meta.versionId,meta:o[t].meta,value:l[s],span:1})}}}function pc(e){let o=0;for(;o<e.length;){let t=o;for(;t<e.length&&e[t].id===e[o].id;)e[t].span=-1,t++;e[o].span=t-o,o=t}}var xc=(0,Ks.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 Ic(e){let{classes:o}=xc(),t=T(),[r,a]=(0,De.useState)(e.history);if((0,De.useEffect)(()=>{!e.history&&e.resourceType&&e.id&&t.readHistory(e.resourceType,e.id).then(a).catch(console.log)},[t,e.history,e.resourceType,e.id]),!r)return De.default.createElement("div",null,"Loading...");let n=r.entry?.[0]?.resource;if(!n)return null;let f=$s(r);return De.default.createElement("div",{className:o.container},De.default.createElement("table",{className:o.root},De.default.createElement("tbody",null,f.map((l,s)=>De.default.createElement("tr",{key:"row-"+s,className:l.span>0?o.startRow:o.normalRow},l.span>0&&De.default.createElement(De.default.Fragment,null,De.default.createElement("td",{className:o.author,rowSpan:l.span},De.default.createElement(No,{value:l.meta.author,link:!0})),De.default.createElement("td",{className:o.dateTime,rowSpan:l.span},De.default.createElement(ke,{to:gc(n,l.meta.versionId)},js(l.meta.lastUpdated)))),De.default.createElement("td",{className:o.lineNumber},s+1),De.default.createElement("td",{className:o.line},De.default.createElement("pre",{className:o.pre},l.value)))))))}function gc(e,o){return`/${e.resourceType}/${e.id}/_history/${o}`}function js(e){let o=Math.floor((Date.now()-Date.parse(e))/1e3),t=Math.floor(o/31536e3);if(t>0)return Yt(t,"year");let r=Math.floor(o/2592e3);if(r>0)return Yt(r,"month");let a=Math.floor(o/86400);if(a>0)return Yt(a,"day");let n=Math.floor(o/3600);if(n>0)return Yt(n,"hour");let f=Math.floor(o/60);return f>0?Yt(f,"minute"):Yt(o,"second")}function Yt(e,o){return`${e} ${e===1?o:o+"s"} ago`}var _s=require("@mantine/core"),Uf=require("@medplum/core"),Go=m(require("react"));var hc=(0,_s.createStyles)(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function yc(e){let o=e.original,t=e.revised;e.ignoreMeta&&(o={...o,meta:void 0},t={...t,meta:void 0});let r=(0,Uf.stringify)(o,!0).match(/[^\r\n]+/g),a=(0,Uf.stringify)(t,!0).match(/[^\r\n]+/g),n=Ra(r,a);return Go.default.createElement("pre",{style:{color:"gray"}},n.map((f,l)=>Go.default.createElement(Cc,{key:"delta"+l,delta:f})))}function Cc(e){let{classes:o}=hc();return Go.default.createElement(Go.default.Fragment,null,"...",Go.default.createElement("br",null),e.delta.original.lines.length>0&&Go.default.createElement("div",{className:o.removed},e.delta.original.lines.join(`
|
|
66
|
-
`)),e.delta.revised.lines.length>0&&
|
|
67
|
-
`)),"...",Go.default.createElement("br",null))}var Zs=require("@mantine/core"),Na=require("@medplum/core"),xe=m(require("react"));function vc(e){let o=T(),[t,r]=(0,xe.useState)(e.history);return(0,xe.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?xe.default.createElement(Zs.Table,{withBorder:!0,withColumnBorders:!0},xe.default.createElement("thead",null,xe.default.createElement("tr",null,xe.default.createElement("th",null,"Author"),xe.default.createElement("th",null,"Date"),xe.default.createElement("th",null,"Version"))),xe.default.createElement("tbody",null,t.entry?.map((a,n)=>xe.default.createElement(Sc,{key:"entry-"+n,entry:a})))):xe.default.createElement("div",null,"Loading...")}function Sc(e){let{response:o,resource:t}=e.entry;return t?xe.default.createElement("tr",null,xe.default.createElement("td",null,xe.default.createElement(No,{value:t.meta?.author,link:!0})),xe.default.createElement("td",null,(0,Na.formatDateTime)(t.meta?.lastUpdated)),xe.default.createElement("td",null,xe.default.createElement(ke,{to:bc(t)},t.meta?.versionId))):xe.default.createElement("tr",null,xe.default.createElement("td",{colSpan:3},(0,Na.normalizeErrorString)(o?.outcome)))}function bc(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}var nt=require("@mantine/core"),ei=require("@medplum/core"),j=m(require("react"));var Pc=(0,nt.createStyles)(e=>({container:{display:"flex",minHeight:400},info:{minWidth:300,padding:20,borderRight:`1px solid ${e.colors.gray[3]}`},selection:{minWidth:300,padding:20}}));function Dc(e){let{classes:o}=Pc(),t=T(),r=re(e.schedule),a=re(e.questionnaire),[n,f]=(0,j.useState)(),l=(0,j.useRef)();l.current=n;let[s,i]=(0,j.useState)(ma()),[u,d]=(0,j.useState)(),[c,y]=(0,j.useState)(),[S,M]=(0,j.useState)();if((0,j.useEffect)(()=>{r?(f([]),t.searchResources("Slot",new URLSearchParams([["_count",(30*24).toString()],["schedule",(0,ei.getReferenceString)(r)],["start","gt"+kc(s)],["start","lt"+Tc(s)]])).then(f).catch(console.log)):f(void 0)},[t,r,s]),!r||!n||!a)return null;let D=r.actor?.[0];return j.default.createElement("div",{className:o.container,"data-testid":"scheduler"},j.default.createElement("div",{className:o.info},D&&j.default.createElement(Ne,{value:D,size:"xl"}),D&&j.default.createElement(nt.Text,{size:"xl",weight:500},j.default.createElement(po,{value:D})),j.default.createElement("p",null,"1 hour"),u&&j.default.createElement("p",null,u.toLocaleDateString()),c&&j.default.createElement("p",null,Ys(new Date(c.start)))),j.default.createElement("div",{className:o.selection},!u&&j.default.createElement("div",null,j.default.createElement("h3",null,"Select date"),j.default.createElement(nf,{slots:n,onChangeMonth:i,onClick:d})),u&&!c&&j.default.createElement("div",null,j.default.createElement("h3",null,"Select time"),j.default.createElement(nt.Stack,null,n.map(A=>{let g=new Date(A.start);return g.getTime()>u.getTime()&&g.getTime()<u.getTime()+24*3600*1e3&&j.default.createElement("div",{key:A.id},j.default.createElement(nt.Button,{variant:"outline",style:{width:150},onClick:()=>y(A)},Ys(g)))}))),u&&c&&!S&&j.default.createElement(Vf,{questionnaire:a,submitButtonText:"Next",onSubmit:M}),u&&c&&S&&j.default.createElement("div",null,j.default.createElement("h3",null,"You're all set!"),j.default.createElement("p",null,"Check your email for a calendar invite."))))}function kc(e){return oi(e.getTime())}function Tc(e){return oi(e.getTime()+31*24*60*60*1e3)}function oi(e){return new Date(Math.max(Date.now(),e)).toISOString()}function Ys(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}var Nr=require("@medplum/core"),ti=m(require("react"));function Bc(e){return ti.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,Nr.createReference)(o)],subject:o.subject,sender:(0,Nr.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",basedOn:[(0,Nr.createReference)(o)],subject:o.subject,operator:(0,Nr.createReference)(t),issued:new Date().toISOString(),content:r})})}var ni=require("@medplum/core"),bo=m(require("react"));var Ee=require("@mantine/core"),ri=require("@medplum/core"),Ke=m(require("react"));function Ha(e){let o=T(),[t,r]=(0,Ke.useState)();return Ke.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,ri.normalizeOperationOutcome)(n))}}},Ke.default.createElement(Ee.Center,{sx:{flexDirection:"column"}},Ke.default.createElement(Uo,{size:32}),Ke.default.createElement(Ee.Title,null,"Create project")),Ke.default.createElement(Ee.Stack,{spacing:"xl"},Ke.default.createElement(Ee.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:Fe(t,"firstName")}),Ke.default.createElement(Ee.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",Ke.default.createElement(Ee.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",Ke.default.createElement(Ee.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),".")),Ke.default.createElement(Ee.Group,{position:"right",mt:"xl",noWrap:!0},Ke.default.createElement(Ee.Button,{type:"submit"},"Create project")))}var ne=require("@mantine/core"),zf=require("@medplum/core"),ae=m(require("react"));var So=m(require("react"));function Hr(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 Va(e){let o=T(),{googleClientId:t,handleGoogleCredential:r}=e,a=(0,So.useRef)(null),[n,f]=(0,So.useState)(typeof google<"u"),[l,s]=(0,So.useState)(!1),[i,u]=(0,So.useState)(!1);return(0,So.useEffect)(()=>{if(typeof google>"u"){Hr("https://accounts.google.com/gsi/client",()=>f(!0));return}l||(google.accounts.id.initialize({client_id:t,callback:r}),s(!0)),a.current&&!i&&(google.accounts.id.renderButton(a.current,{}),u(!0))},[o,t,l,n,a,i,r]),t?So.default.createElement("div",{ref:a}):null}function qa(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__"}}function Gf(e){typeof grecaptcha>"u"&&Hr("https://www.google.com/recaptcha/api.js?render="+e)}function Qf(e){return new Promise((o,t)=>{grecaptcha.ready(async()=>{try{o(await grecaptcha.execute(e,{action:"submit"}))}catch(r){t(r)}})})}function ai(e){let o=qa(e.googleClientId),t=e.recaptchaSiteKey,r=T(),[a,n]=(0,ae.useState)(),f=Cr(a,void 0);return(0,ae.useEffect)(()=>{t&&Gf(t)},[t]),ae.default.createElement(le,{style:{maxWidth:400},onSubmit:async l=>{try{let s="";t&&(s=await Qf(t)),e.handleAuthResponse(await r.startNewUser({projectId:e.projectId,clientId:e.clientId,firstName:l.firstName,lastName:l.lastName,email:l.email,password:l.password,remember:l.remember==="true",recaptchaSiteKey:t,recaptchaToken:s}))}catch(s){n((0,zf.normalizeOperationOutcome)(s))}}},ae.default.createElement(ne.Center,{sx:{flexDirection:"column"}},e.children),ae.default.createElement(vt,{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(Va,{googleClientId:o,handleGoogleCredential:async l=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:l.clientId,googleCredential:l.credential,createUser:!0}))}catch(s){n((0,zf.normalizeOperationOutcome)(s))}}})),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 Ac(e){let{type:o,projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,onSuccess:f}=e,l=T(),[s,i]=(0,bo.useState)(void 0),[u,d]=(0,bo.useState)();(0,bo.useEffect)(()=>{o==="patient"&&s&&l.startNewPatient({login:s,projectId:t}).then(y=>l.processCode(y.code)).then(()=>f()).catch(y=>d((0,ni.normalizeOperationOutcome)(y)))},[l,o,t,s,f]);function c(y){y.code?l.processCode(y.code).then(()=>f()).catch(console.log):y.login&&i(y.login)}return bo.default.createElement(Ar,{width:450},u&&bo.default.createElement("pre",null,JSON.stringify(u,null,2)),!s&&bo.default.createElement(ai,{projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,handleAuthResponse:c},e.children),s&&o==="project"&&bo.default.createElement(Ha,{login:s,handleAuthResponse:c}))}var Wf=require("@mantine/notifications"),Xf=require("@medplum/core"),Be=m(require("react"));var ue=require("@mantine/core"),fi=require("@medplum/core"),_=m(require("react"));function li(e){let[o,t]=(0,_.useState)();return o?_.default.createElement(Fc,{email:o,...e}):_.default.createElement(Mc,{setEmail:t,...e})}function Mc(e){let{setEmail:o,onRegister:t,handleAuthResponse:r,children:a,disableEmailAuth:n,...f}=e,l=T(),s=!e.disableGoogleAuth&&qa(e.googleClientId),i=(0,_.useCallback)(async c=>{if(!c.authorizeUrl)return!1;let y=JSON.stringify({...await l.ensureCodeChallenge(f),domain:c.domain}),S=new URL(c.authorizeUrl);return S.searchParams.set("state",y),window.location.assign(S.toString()),!0},[l,f]),u=(0,_.useCallback)(async c=>{let y=await l.post("auth/method",{email:c.email});await i(y)||o(c.email)},[l,i,o]),d=(0,_.useCallback)(async c=>{let y=await l.startGoogleLogin({...f,googleCredential:c.credential});await i(y)||r(y)},[l,f,i,r]);return _.default.createElement(le,{style:{maxWidth:400},onSubmit:u},_.default.createElement(ue.Center,{sx:{flexDirection:"column"}},a),s&&_.default.createElement(_.default.Fragment,null,_.default.createElement(ue.Group,{position:"center",p:"xl",style:{height:70}},_.default.createElement(Va,{googleClientId:s,handleGoogleCredential:d})),!n&&_.default.createElement(ue.Divider,{label:"or",labelPosition:"center",my:"lg"})),!n&&_.default.createElement(ue.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),_.default.createElement(ue.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},_.default.createElement("div",null,t&&_.default.createElement(ue.Anchor,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs"},"Register")),!n&&_.default.createElement(ue.Button,{type:"submit"},"Next")))}function Fc(e){let{onForgotPassword:o,handleAuthResponse:t,children:r,...a}=e,n=T(),[f,l]=(0,_.useState)(),s=Cr(f,void 0),i=(0,_.useCallback)(u=>{n.startLogin({...a,password:u.password,remember:u.remember==="on"}).then(t).catch(d=>l((0,fi.normalizeOperationOutcome)(d)))},[n,a,t]);return _.default.createElement(le,{style:{maxWidth:400},onSubmit:i},_.default.createElement(ue.Center,{sx:{flexDirection:"column"}},r),_.default.createElement(vt,{issues:s}),_.default.createElement(ue.Stack,{spacing:"xl"},_.default.createElement(ue.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:Fe(f,"password")})),_.default.createElement(ue.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},o&&_.default.createElement(ue.Anchor,{component:"button",type:"button",color:"dimmed",onClick:o,size:"xs"},"Forgot password"),_.default.createElement(ue.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),_.default.createElement(ue.Button,{type:"submit"},"Sign in")))}var Qe=require("@mantine/core"),si=require("@medplum/core"),je=m(require("react"));function ii(e){let o=T(),[t,r]=(0,je.useState)();return je.default.createElement(Qe.Stack,null,je.default.createElement(Qe.Center,{sx:{flexDirection:"column"}},je.default.createElement(Uo,{size:32}),je.default.createElement(Qe.Title,{order:3},"Choose profile")),je.default.createElement(vt,{outcome:t}),e.memberships.map(a=>je.default.createElement(Qe.UnstyledButton,{key:a.id,onClick:()=>{o.post("auth/profile",{login:e.login,profile:a.id}).then(e.handleAuthResponse).catch(n=>r((0,si.normalizeOperationOutcome)(n)))}},je.default.createElement(Qe.Group,null,je.default.createElement(Qe.Avatar,{radius:"xl"}),je.default.createElement("div",{style:{flex:1}},je.default.createElement(Qe.Text,{size:"sm",weight:500},a.profile?.display),je.default.createElement(Qe.Text,{color:"dimmed",size:"xs"},a.project?.display))))))}var to=require("@mantine/core"),Po=m(require("react"));function ui(e){let o=T();return Po.default.createElement(le,{style:{maxWidth:400},onSubmit:t=>{o.post("auth/scope",{login:e.login,scope:Object.keys(t).join(" ")}).then(e.handleAuthResponse).catch(console.log)}},Po.default.createElement(to.Stack,null,Po.default.createElement(to.Center,{sx:{flexDirection:"column"}},Po.default.createElement(Uo,{size:32}),Po.default.createElement(to.Title,null,"Choose scope")),Po.default.createElement(to.Stack,null,(e.scope??"openid").split(" ").map(t=>Po.default.createElement(to.Checkbox,{key:t,id:t,name:t,label:t,defaultChecked:!0}))),Po.default.createElement(to.Group,{position:"right",mt:"xl"},Po.default.createElement(to.Button,{type:"submit"},"Set scope"))))}var ze=require("@mantine/core"),di=require("@medplum/core");var _e=m(require("react"));function ci(e){let o=T(),[t,r]=(0,_e.useState)(void 0);return _e.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,di.normalizeErrorString)(n)))}},_e.default.createElement(ze.Stack,null,_e.default.createElement(ze.Center,{sx:{flexDirection:"column"}},_e.default.createElement(Uo,{size:32}),_e.default.createElement(ze.Title,null,"Enter MFA code")),t&&_e.default.createElement(ze.Alert,{icon:_e.default.createElement(lt,{size:16}),title:"Error",color:"red"},t),_e.default.createElement(ze.Stack,null,_e.default.createElement(ze.TextInput,{name:"token",label:"MFA code",required:!0})),_e.default.createElement(ze.Group,{position:"right",mt:"xl"},_e.default.createElement(ze.Button,{type:"submit"},"Submit code"))))}function wc(e){let{login:o,chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:n,onCode:f,...l}=e,s=T(),[i,u]=(0,Be.useState)(void 0),[d,c]=(0,Be.useState)(!1),[y,S]=(0,Be.useState)(void 0),M=(0,Be.useCallback)(g=>{f?f(g):s.processCode(g).then(()=>{r&&r()}).catch(z=>(0,Wf.showNotification)({color:"red",message:(0,Xf.normalizeErrorString)(z)}))},[s,f,r]),D=(0,Be.useCallback)(g=>{c(!!g.mfaRequired),g.login&&u(g.login),g.memberships&&S(g.memberships),g.code&&(t?S(void 0):M(g.code))},[t,M]),A=(0,Be.useCallback)(g=>{M(g.code)},[M]);return(0,Be.useEffect)(()=>{o&&!i&&s.get("auth/login/"+o).then(D).catch(g=>(0,Wf.showNotification)({color:"red",message:(0,Xf.normalizeErrorString)(g)}))},[s,o,i,D]),Be.default.createElement(Ar,{width:450},(()=>i?d?Be.default.createElement(ci,{login:i,handleAuthResponse:D}):y?Be.default.createElement(ii,{login:i,memberships:y,handleAuthResponse:D}):e.projectId==="new"?Be.default.createElement(Ha,{login:i,handleAuthResponse:D}):e.chooseScopes?Be.default.createElement(ui,{login:i,scope:e.scope,handleAuthResponse:A}):Be.default.createElement("div",null,"Success"):Be.default.createElement(li,{onForgotPassword:a,onRegister:n,handleAuthResponse:D,disableGoogleAuth:e.disableGoogleAuth,disableEmailAuth:e.disableEmailAuth,...l},e.children))())}
|
|
64
|
+
}`.replace(/\s+/g," ")}function qi(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),Gi(Ui(t),o).slice(0,5)}function Ui(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 Gi(e,o){return e.sort((t,r)=>gl(r,o)-gl(t,o))}function gl(e,o){let t=0;if(e.identifier)for(let r of e.identifier)t=Math.max(t,hl(r.value,o));if(e.resourceType==="Patient"&&e.name)for(let r of e.name)t=Math.max(t,hl((0,To.formatHumanName)(r),o));return t}function hl(e,o){if(!e)return 0;let t=e.toLowerCase().indexOf(o.toLowerCase());return t<0?0:100-t}var Qi=(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 Dn(e){let o=bt(),{medplum:t,profile:r,navigate:a}=o,n=t.getLogins(),{classes:f,cx:s}=Qi(),[l,i]=(0,W.useState)(!1);return W.default.createElement(K.Header,{height:60,p:8,style:{zIndex:101}},W.default.createElement(K.Group,{position:"apart"},W.default.createElement(K.Group,{spacing:"xs"},W.default.createElement(K.UnstyledButton,{className:f.logoButton,onClick:e.navbarToggle},e.logo),W.default.createElement(yl,{pathname:e.pathname,searchParams:e.searchParams})),W.default.createElement(K.Menu,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:l,onClose:()=>i(!1)},W.default.createElement(K.Menu.Target,null,W.default.createElement(K.UnstyledButton,{className:s(f.user,{[f.userActive]:l}),onClick:()=>i(u=>!u)},W.default.createElement(K.Group,{spacing:7},W.default.createElement(Ne,{value:r,radius:"xl",size:24}),W.default.createElement(K.Text,{size:"sm",className:f.userName},(0,dr.formatHumanName)(r?.name?.[0])),W.default.createElement(en,{size:12,stroke:1.5})))),W.default.createElement(K.Menu.Dropdown,null,W.default.createElement(K.Stack,{align:"center",p:"xl"},W.default.createElement(Ne,{size:"xl",radius:100,value:o.profile}),W.default.createElement(ur,{value:o.profile?.name?.[0]}),W.default.createElement(K.Text,{color:"dimmed",size:"xs"},t.getActiveLogin()?.project.display)),n.length>1&&W.default.createElement(K.Menu.Divider,null),n.map(u=>u.profile.reference!==(0,dr.getReferenceString)(o.profile)&&W.default.createElement(K.Menu.Item,{key:u.profile.reference,onClick:()=>{t.setActiveLogin(u).then(()=>window.location.reload()).catch(console.log)}},W.default.createElement(K.Group,null,W.default.createElement(K.Avatar,{radius:"xl"}),W.default.createElement("div",{style:{flex:1}},W.default.createElement(K.Text,{size:"sm",weight:500},u.profile.display),W.default.createElement(K.Text,{color:"dimmed",size:"xs"},u.project.display))))),W.default.createElement(K.Menu.Divider,null),W.default.createElement(K.Menu.Item,{icon:W.default.createElement(yn,{size:14,stroke:1.5}),onClick:()=>a("/signin")},"Add another account"),W.default.createElement(K.Menu.Item,{icon:W.default.createElement(Bt,{size:14,stroke:1.5}),onClick:()=>a(`/${(0,dr.getReferenceString)(r)}`)},"Account settings"),W.default.createElement(K.Menu.Item,{icon:W.default.createElement(dn,{size:14,stroke:1.5}),onClick:async()=>{await t.signOut(),a("/signin")}},"Sign out"),W.default.createElement(K.Text,{size:"xs",color:"dimmed",align:"center"},e.version)))))}var We=require("@mantine/core");var he=m(require("react"));var to=require("@mantine/core"),Tn=require("@mantine/notifications"),Zr=require("@medplum/core"),Bo=m(require("react"));var Cl=m(require("react"));function kn(e){let o={};for(let t of Array.from(e.elements))t instanceof HTMLInputElement?zi(o,t):t instanceof HTMLTextAreaElement?o[t.name]=t.value:t instanceof HTMLSelectElement&&Wi(o,t);return o}function zi(e,o){o.disabled||(o.type==="checkbox"||o.type==="radio")&&!o.checked||(e[o.name]=o.value)}function Wi(e,o){e[o.name]=o.value}function le(e){return Cl.default.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:o=>{o.preventDefault();let t=kn(o.target);e.onSubmit&&e.onSubmit(t)}},e.children)}function vl(e){let o=T(),t=o.getUserConfiguration();function r(a){let{menuname:n,bookmarkname:f}=a,s=`${e.pathname}?${e.searchParams.toString()}`,l=(0,Zr.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,Tn.showNotification)({color:"green",message:"Success"}),e.onOk()}).catch(u=>{(0,Tn.showNotification)({color:"red",message:(0,Zr.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(Xi,{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 Xi(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 ea=m(require("react"));var Yr=m(require("react"));function Bn(e){return typeof e.code=="string"?e.code:JSON.stringify(e)}function Ji(e){return typeof e.display=="string"?e.display:Bn(e)}function $i(e){return{value:Bn(e),label:Ji(e),resource:e}}function Ki(e){return{code:e,display:e}}function zo(e){let o=T(),{elementDefinition:t,creatable:r,clearable:a,...n}=e,f=(0,Yr.useCallback)(async(s,l)=>{if(!t.binding)return[];let i=t.binding.valueSet,d=(await o.searchValueSet(i,s,{signal:l})).expansion?.contains,c=[];for(let y of d)y.code&&!c.some(b=>b.code===y.code)&&c.push(y);return c},[o,t]);return Yr.default.createElement(ut,{...n,creatable:r??!0,clearable:a??!0,toKey:Bn,toOption:$i,loadOptions:f,onCreate:Ki,getCreateLabel:r===!1?void 0:s=>`+ Create ${s}`})}function cr(e){let[o,t]=(0,ea.useState)(e.defaultValue);function r(a){let n=a[0],f=_i(n);t(f),e.onChange&&e.onChange(f)}return ea.default.createElement(zo,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:ji(o),onChange:r,creatable:e.creatable,maxSelectedValues:e.maxSelectedValues??1,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable})}function ji(e){return e?{code:e}:void 0}function _i(e){return e?.code}var Sl=(0,We.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 An(e){let{classes:o}=Sl(),t=Po(),r=eu(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(We.Navbar,{width:{sm:250},p:"xs"},he.default.createElement(We.ScrollArea,null,he.default.createElement(We.Navbar.Section,{mb:"sm"},he.default.createElement(cr,{key:window.location.pathname,name:"resourceType",placeholder:"Resource Type",property:{binding:{valueSet:"https://medplum.com/fhir/ValueSet/resource-types"}},onChange:l=>s(l),creatable:!1,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})),he.default.createElement(We.Navbar.Section,{grow:!0},e.menus?.map(l=>he.default.createElement(he.default.Fragment,{key:`menu-${l.title}`},he.default.createElement(We.Text,{className:o.menuTitle},l.title),l.links?.map(i=>he.default.createElement(Zi,{key:i.href,to:i.href,active:i.href===r?.href,onClick:u=>f(u,i.href)},he.default.createElement(Yi,{to:i.href,icon:i.icon}),he.default.createElement("span",null,i.label))))),e.displayAddBookmark&&he.default.createElement(We.Button,{variant:"subtle",size:"xs",mt:"xl",leftIcon:he.default.createElement(xn,{size:"0.75rem"}),onClick:()=>n(!0)},"Add Bookmark")))),e.pathname&&e.searchParams&&he.default.createElement(vl,{pathname:e.pathname,searchParams:e.searchParams,visible:a,onOk:()=>n(!1),onCancel:()=>n(!1)}))}function Zi(e){let{classes:o,cx:t}=Sl();return he.default.createElement(ke,{onClick:e.onClick,to:e.to,className:t(o.link,{[o.linkActive]:e.active})},e.children)}function Yi(e){return e.icon?e.icon:he.default.createElement(We.Space,{w:30})}function eu(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=ou(e,o,f.href);s>a&&(a=s,r=f)}return r}function ou(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 tu(e){let o=(0,oa.useMantineTheme)(),[t,r]=(0,ro.useState)(localStorage.navbarOpen==="true"),a=T(),n=rr();function f(i){localStorage.navbarOpen=i.toString(),r(i)}function s(){f(!1)}function l(){f(!t)}return a.isLoading()?ro.default.createElement(Xr,null):ro.default.createElement(oa.AppShell,{styles:{main:{background:o.colorScheme==="dark"?o.colors.dark[8]:o.colors.gray[0]}},padding:0,fixed:!0,header:n&&ro.default.createElement(Dn,{pathname:e.pathname,searchParams:e.searchParams,logo:e.logo,version:e.version,navbarToggle:l}),navbar:n&&t?ro.default.createElement(An,{pathname:e.pathname,searchParams:e.searchParams,menus:e.menus,closeNavbar:s,displayAddBookmark:e.displayAddBookmark}):void 0},ro.default.createElement(st,{key:`${e.pathname}?${e.searchParams?.toString()}`},ro.default.createElement(ro.Suspense,{fallback:ro.default.createElement(Xr,null)},e.children)))}var ta=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 Mn(e){return ta.default.createElement("div",null,e.values?.map((o,t)=>ta.default.createElement("div",{key:"attatchment-"+t},ta.default.createElement(io,{value:o,maxWidth:e.maxWidth}))))}var Fn=require("@mantine/core");var ce=m(require("react"));var At=m(require("react"));function ct(e){let o=T(),t=(0,At.useRef)(null);function r(f){U(f),t.current?.click()}function a(f){U(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 At.default.createElement(At.default.Fragment,null,At.default.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:t,onChange:f=>a(f)}),e.children({onClick:r}))}function wn(e){let[o,t]=(0,ce.useState)(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%"}},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(io,{value:n,maxWidth:200})),ce.default.createElement("td",null,ce.default.createElement(Fn.ActionIcon,{title:"Remove",size:"sm",onClick:s=>{U(s);let l=o.slice();l.splice(f,1),a(l)}},ce.default.createElement(Qo,null))))),ce.default.createElement("tr",null,ce.default.createElement("td",null),ce.default.createElement("td",null,ce.default.createElement(ct,{onUpload:n=>{a([...r.current,n])}},n=>ce.default.createElement(Fn.ActionIcon,{...n,title:"Add",size:"sm",color:"green"},ce.default.createElement(fr,{size:16})))))))}var On=require("@mantine/core"),Mo=m(require("react"));function mr(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(io,{value:o,maxWidth:200}),Mo.default.createElement(On.Button,{onClick:a=>{U(a),r(void 0)}},"Remove")):Mo.default.createElement(ct,{onUpload:r},a=>Mo.default.createElement(On.Button,{...a},"Upload..."))}var fa=require("@medplum/core"),Ot=m(require("react"));var ra=["meta","implicitRules","language","text","contained","extension","modifierExtension"];var Pl=require("@mantine/core"),Mt=m(require("react")),ru=(0,Pl.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 En(e){let{children:o,compact:t}=e,{classes:r,cx:a}=ru();return Mt.default.createElement("dl",{className:a(r.root,{[r.compact]:t})},o)}function Ln(e){return Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("dt",null,e.term),Mt.default.createElement("dd",null,e.children))}var Xo=require("@mantine/core"),R=require("@medplum/core");var H=m(require("react"));var Dl=require("@medplum/core"),Rn=m(require("react"));function mt(e){return Rn.default.createElement(Rn.default.Fragment,null,(0,Dl.formatCodeableConcept)(e.value))}var kl=require("@medplum/core"),Nn=m(require("react"));function Hn(e){return Nn.default.createElement(Nn.default.Fragment,null,(0,kl.formatCoding)(e.value))}var aa=m(require("react"));var Vn=m(require("react"));function pr(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("]")),Vn.default.createElement(Vn.default.Fragment,null,t.join("").trim())}function qn(e){let o=e.value;return o?aa.default.createElement(aa.default.Fragment,null,o.name,o.name&&": ",o.telecom?.map(t=>aa.default.createElement(pr,{key:`telecom-${o.name}-${t.value}`,value:t}))):null}var Tl=m(require("react"));function Un(e){return Tl.default.createElement("div",null,e.value?.system,": ",e.value?.value)}var Bl=require("@medplum/core"),Gn=m(require("react"));function Qn(e){return Gn.default.createElement(Gn.default.Fragment,null,(0,Bl.formatMoney)(e.value))}var Al=require("@medplum/core"),zn=m(require("react"));function Ft(e){return zn.default.createElement(zn.default.Fragment,null,(0,Al.formatQuantity)(e.value))}var Ml=require("@medplum/core"),Wn=m(require("react"));function xr(e){return Wn.default.createElement(Wn.default.Fragment,null,(0,Ml.formatRange)(e.value))}var Ir=m(require("react"));function Fl(e){let o=e.value;return o?Ir.default.createElement(Ir.default.Fragment,null,Ir.default.createElement(Ft,{value:o.numerator}),"\xA0/\xA0",Ir.default.createElement(Ft,{value:o.denominator})):null}var wl=require("@medplum/core"),na=m(require("react"));function Wo(e){if(!e.value)return null;let o=e.value.display||e.value.reference||(0,wl.stringify)(e.value);return e.link!==!1&&e.value.reference?na.default.createElement(ke,{to:e.value},o):na.default.createElement(na.default.Fragment,null,o)}var gr=m(require("react"));function Xn(e){let o=e.property,t=e.values??[],r=o.type?.[0]?.code;return gr.default.createElement(gr.default.Fragment,null,t.map((a,n)=>gr.default.createElement("div",{key:`${n}-${t.length}`},gr.default.createElement(Me,{arrayElement:!0,property:o,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))))}function Me(e){let{property:o,propertyType:t,value:r}=e;if(o?.path?.endsWith(".id"))return H.default.createElement(Xo.Box,{component:"div",sx:{display:"flex",gap:3,alignItems:"center"}},r,H.default.createElement(Xo.CopyButton,{value:r,timeout:2e3},({copied:n,copy:f})=>H.default.createElement(Xo.Tooltip,{label:n?"Copied":"Copy",withArrow:!0,position:"right"},H.default.createElement(Xo.ActionIcon,{color:n?"teal":"gray",onClick:f},n?H.default.createElement(nr,{size:"1rem"}):H.default.createElement(tn,{size:"1rem"})))));if(o?.max==="*"&&!e.arrayElement)return t===R.PropertyType.Attachment?H.default.createElement(Mn,{values:r,maxWidth:e.maxWidth}):H.default.createElement(Xn,{property:o,values:r,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(t){case R.PropertyType.boolean:return H.default.createElement(H.default.Fragment,null,r===void 0?"":(!!r).toString());case R.PropertyType.SystemString:case R.PropertyType.string:return H.default.createElement("div",{style:{whiteSpace:"pre-wrap"}},r);case R.PropertyType.code:case R.PropertyType.date:case R.PropertyType.decimal:case R.PropertyType.integer:case R.PropertyType.positiveInt:case R.PropertyType.unsignedInt:case R.PropertyType.uri:case R.PropertyType.url:return H.default.createElement(H.default.Fragment,null,r);case R.PropertyType.canonical:return H.default.createElement(Wo,{value:{reference:r},link:e.link});case R.PropertyType.dateTime:case R.PropertyType.instant:return H.default.createElement(H.default.Fragment,null,(0,R.formatDateTime)(r));case R.PropertyType.markdown:return H.default.createElement("pre",null,r);case R.PropertyType.Address:return H.default.createElement(Ua,{value:r});case R.PropertyType.Annotation:return H.default.createElement(H.default.Fragment,null,r?.text);case R.PropertyType.Attachment:return H.default.createElement(io,{value:r,maxWidth:e.maxWidth});case R.PropertyType.CodeableConcept:return H.default.createElement(mt,{value:r});case R.PropertyType.Coding:return H.default.createElement(Hn,{value:r});case R.PropertyType.ContactDetail:return H.default.createElement(qn,{value:r});case R.PropertyType.ContactPoint:return H.default.createElement(pr,{value:r});case R.PropertyType.HumanName:return H.default.createElement(ur,{value:r});case R.PropertyType.Identifier:return H.default.createElement(Un,{value:r});case R.PropertyType.Money:return H.default.createElement(Qn,{value:r});case R.PropertyType.Period:return H.default.createElement(H.default.Fragment,null,(0,R.formatPeriod)(r));case R.PropertyType.Quantity:case R.PropertyType.Duration:return H.default.createElement(Ft,{value:r});case R.PropertyType.Range:return H.default.createElement(xr,{value:r});case R.PropertyType.Ratio:return H.default.createElement(Fl,{value:r});case R.PropertyType.Reference:return H.default.createElement(Wo,{value:r,link:e.link});case R.PropertyType.Timing:return H.default.createElement(H.default.Fragment,null,(0,R.formatTiming)(r));case R.PropertyType.Dosage:case R.PropertyType.UsageContext:return H.default.createElement(wt,{value:{type:t,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues});default:if(!o?.path)throw Error(`Displaying property of type ${e.propertyType} requires element definition path`);return H.default.createElement(wt,{value:{type:(0,R.getElementDefinitionTypeName)(o),value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}function Xe(e,o){let t=(0,R.getTypedPropertyValue)(e,o);return t?Array.isArray(t)?[t.map(r=>r.value),t[0].type]:[t.value,t.type]:[void 0,"undefined"]}function wt(e){let o=e.value,t=o.value;if(!t)return null;let r=o.type,a=fa.globalSchema.types[r];return a?typeof t=="object"&&"name"in t&&Object.keys(t).length===1&&typeof t.name=="string"?Ot.default.createElement("div",null,t.name):Ot.default.createElement(En,{compact:e.compact},Object.entries(a.properties).map(n=>{let f=n[0];if(ra.includes(f))return null;let s=n[1];s.path||(s.path=r+"."+f);let[l,i]=Xe(o,f);return e.ignoreMissingValues&&(!l||Array.isArray(l)&&l.length===0)?null:Ot.default.createElement(Ln,{key:f,term:(0,fa.getPropertyDisplayName)(f)},Ot.default.createElement(Me,{property:s,propertyType:i,value:l,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))})):Ot.default.createElement("div",null,r,"\xA0not implemented")}var Yl=require("@mantine/core"),kr=require("@medplum/core"),Oo=m(require("react"));var la=require("@mantine/core"),hr=m(require("react"));function yr(e){return hr.default.createElement(la.Group,{noWrap:!0},hr.default.createElement("div",null,e.children),hr.default.createElement("div",null,hr.default.createElement(la.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk},(()=>null)())))}var El=require("@mantine/core"),Ll=m(require("react"));function Fe(e,o){return e?.issue?.filter(t=>Ol(t.expression?.[0],o))?.map(t=>t.details?.text)?.join(`
|
|
65
|
+
`)}function Cr(e,o){return e?.issue?.filter(t=>Ol(t.expression?.[0],o))}function Ol(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 Je(e){return Ll.default.createElement(El.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk,error:Fe(e.outcome,e.htmlFor)},e.children)}var Io=require("@mantine/core"),sa=require("@medplum/core"),we=m(require("react"));function au(e){let o=T(),t=re(e.defaultValue),[r,a]=(0,we.useState)(),[n,f]=(0,we.useState)();return(0,we.useEffect)(()=>{t&&(f((0,sa.deepClone)(t)),o.requestSchema(t.resourceType).then(a).catch(console.log))},[o,t]),!r||!n?we.default.createElement("div",null,"Loading..."):we.default.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:s=>{s.preventDefault(),e.onSubmit&&e.onSubmit(n)}},we.default.createElement(Io.Stack,{mb:"xl"},we.default.createElement(Je,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},we.default.createElement(Io.TextInput,{name:"resourceType",defaultValue:n.resourceType,disabled:!0})),we.default.createElement(Je,{title:"ID",htmlFor:"id",outcome:e.outcome},we.default.createElement(Io.TextInput,{name:"id",defaultValue:n.id,disabled:!0}))),we.default.createElement(Lt,{typeName:n.resourceType,defaultValue:n,outcome:e.outcome,onChange:f}),we.default.createElement(Io.Group,{position:"right",mt:"xl"},we.default.createElement(Io.Button,{type:"submit"},"OK"),e.onDelete&&we.default.createElement(Io.Button,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(n)}},"Delete")))}function Et(e,o,t,r,a){let n=r.type;if(n.length>1)for(let f of n){let s=o.replace("[x]",(0,sa.capitalize)(f.code));s in e&&delete e[s]}return e[t]=a,e}var no=require("@mantine/core"),N=require("@medplum/core"),G=m(require("react"));var ia=m(require("react"));function Jn(e){let[o,t]=(0,ia.useState)(e.defaultValue);function r(a){let n=fu(a);t(n),e.onChange&&e.onChange(n)}return ia.default.createElement(zo,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:o&&nu(o),maxSelectedValues:1,onChange:r})}function nu(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function fu(e){if(e.length!==0)return{coding:e.map(o=>({system:o.system,code:o.code,display:o.display}))}}var ua=m(require("react"));function $n(e){let[o,t]=(0,ua.useState)(e.defaultValue);function r(a){let n=a[0],f=n&&su(n);t(f),e.onChange&&e.onChange(f)}return ua.default.createElement(zo,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:o&&lu(o),maxSelectedValues:1,onChange:r})}function lu(e){return{system:e.system,code:e.code,display:e.display}}function su(e){return{system:e.system,code:e.code,display:e.display}}var da=require("@mantine/core"),Jo=m(require("react"));var pt=require("@mantine/core"),Fo=m(require("react"));function vr(e){let[o,t]=(0,Fo.useState)(e.defaultValue),r=(0,Fo.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 Fo.default.createElement(pt.Group,{spacing:"xs",grow:!0,noWrap:!0},Fo.default.createElement(pt.NativeSelect,{"data-testid":"system",defaultValue:o?.system,onChange:l=>n(l.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),Fo.default.createElement(pt.NativeSelect,{"data-testid":"use",defaultValue:o?.use,onChange:l=>f(l.currentTarget.value),data:["","home","work","temp","old","mobile"]}),Fo.default.createElement(pt.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:l=>s(l.currentTarget.value)}))}function Kn(e){let[o,t]=(0,Jo.useState)(e.defaultValue),r=(0,Jo.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 Jo.default.createElement(da.Group,{spacing:"xs",grow:!0,noWrap:!0},Jo.default.createElement(da.TextInput,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:o?.name,onChange:s=>n(s.currentTarget.value)}),Jo.default.createElement(vr,{name:e.name+"-telecom",defaultValue:o?.telecom?.[0],onChange:f}))}var Rl=require("@mantine/core"),jn=require("@medplum/core"),Nl=m(require("react"));function ao(e){return Nl.default.createElement(Rl.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:iu(),defaultValue:Hl(e.defaultValue),autoFocus:e.autoFocus,error:Fe(e.outcome,e.name),onChange:o=>{if(e.onChange){let t=o.currentTarget.value;e.onChange(Vl(t))}}})}function Hl(e){if(!e)return"";let o=new Date(e);return(0,jn.isValidDate)(o)?o.toLocaleDateString("sv")+"T"+o.toLocaleTimeString("sv"):""}function Vl(e){if(!e)return"";let o=new Date(e);return(0,jn.isValidDate)(o)?o.toISOString():""}function iu(){return"datetime-local"}var ql=require("@mantine/core"),Ul=require("@medplum/core"),Gl=m(require("react"));function Ql(e){return Gl.default.createElement(ql.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:(0,Ul.stringify)(e.defaultValue),deserialize:JSON.parse,onChange:o=>{e.onChange&&e.onChange(JSON.parse(o))}})}var wo=require("@mantine/core"),uo=m(require("react"));function _n(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(wo.Group,{spacing:"xs",grow:!0,noWrap:!0},uo.default.createElement(wo.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(wo.TextInput,{placeholder:"Prefix",name:e.name+"-prefix",defaultValue:o?.prefix?.join(" "),onChange:u=>f(u.currentTarget.value)}),uo.default.createElement(wo.TextInput,{placeholder:"Given",name:e.name+"-given",defaultValue:o?.given?.join(" "),onChange:u=>s(u.currentTarget.value)}),uo.default.createElement(wo.TextInput,{name:e.name+"-family",placeholder:"Family",defaultValue:o?.family,onChange:u=>l(u.currentTarget.value)}),uo.default.createElement(wo.TextInput,{placeholder:"Suffix",name:e.name+"-suffix",defaultValue:o?.suffix?.join(" "),onChange:u=>i(u.currentTarget.value)}))}var Sr=require("@mantine/core"),Rt=m(require("react"));function Zn(e){let[o,t]=(0,Rt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Rt.default.createElement(Sr.Group,{spacing:"xs",grow:!0,noWrap:!0},Rt.default.createElement(Sr.TextInput,{placeholder:"System",defaultValue:o?.system,onChange:a=>r({...o,system:a.currentTarget.value})}),Rt.default.createElement(Sr.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:a=>r({...o,value:a.currentTarget.value})}))}var ca=require("@mantine/core");var go=m(require("react")),uu=["USD","EUR","CAD","GBP","AUD"];function Yn(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(ca.NativeSelect,{defaultValue:t?.currency,data:uu,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:n});return go.default.createElement(ca.TextInput,{type:"number",label:e.label,placeholder:e.placeholder??"Value",defaultValue:t?.value?.toString()??"USD",icon:go.default.createElement(rn,{size:14}),rightSection:s,rightSectionWidth:92,onChange:f})}var zl=require("@mantine/core"),Nt=m(require("react"));function Wl(e){let[o,t]=(0,Nt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Nt.default.createElement(zl.Group,{spacing:"xs",grow:!0,noWrap:!0},Nt.default.createElement(ao,{name:e.name+".start",placeholder:"Start",defaultValue:o?.start,onChange:a=>r({...o,start:a})}),Nt.default.createElement(ao,{name:e.name+".end",placeholder:"End",defaultValue:o?.end,onChange:a=>r({...o,end:a})}))}var It=require("@mantine/core"),xt=m(require("react"));function Ye(e){let[o,t]=(0,xt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return xt.default.createElement(It.Group,{spacing:"xs",grow:!0,noWrap:!0},xt.default.createElement(It.NativeSelect,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:o?.comparator,data:["","<","<=",">=",">"],onChange:a=>r({...o,comparator:a.currentTarget.value})}),xt.default.createElement(It.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:du(a.currentTarget.value)})}}),xt.default.createElement(It.TextInput,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:o?.unit,onChange:a=>r({...o,unit:a.currentTarget.value})}))}function du(e){if(e)return parseFloat(e)}var Xl=require("@mantine/core"),Ht=m(require("react"));function Vt(e){let[o,t]=(0,Ht.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Ht.default.createElement(Xl.Group,{spacing:"xs",grow:!0,noWrap:!0},Ht.default.createElement(Ye,{name:e.name+"-low",defaultValue:o?.low,onChange:a=>r({...o,low:a})}),Ht.default.createElement(Ye,{name:e.name+"-high",defaultValue:o?.high,onChange:a=>r({...o,high:a})}))}var Jl=require("@mantine/core"),qt=m(require("react"));function $l(e){let[o,t]=(0,qt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return qt.default.createElement(Jl.Group,{spacing:"xs",grow:!0,noWrap:!0},qt.default.createElement(Ye,{name:e.name+"-numerator",defaultValue:o?.numerator,onChange:a=>r({...o,numerator:a})}),qt.default.createElement(Ye,{name:e.name+"-denominator",defaultValue:o?.denominator,onChange:a=>r({...o,denominator:a})}))}var Ut=require("@mantine/core"),Kl=require("@medplum/core"),co=m(require("react"));var br=require("@mantine/core"),Pr=require("@medplum/core"),Ve=m(require("react"));var cu={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 pu(e){return{value:(0,Pr.getReferenceString)(e),label:(0,Pr.getDisplayString)(e),resource:e}}function Dr(e){let o=T(),t=e.resourceType,[r,a]=(0,Ve.useState)(),n=re(e.defaultValue,a),f=e.onChange,s=(0,Ve.useCallback)(async(i,u)=>{let d=Iu(t),c=new URLSearchParams({[d]:i,_count:"10"});return await o.searchResources(t,c,{signal:u})},[o,t]),l=(0,Ve.useCallback)(i=>{f&&f(i[0])},[f]);return e.defaultValue&&!r&&!n?null:Ve.default.createElement(ut,{name:e.name,itemComponent:xu,defaultValue:n,placeholder:e.placeholder,maxSelectedValues:1,toKey:Pr.getReferenceString,toOption:pu,loadOptions:s,onChange:l,clearable:!0})}var xu=(0,Ve.forwardRef)(({label:e,resource:o,...t},r)=>Ve.default.createElement("div",{ref:r,...t},Ve.default.createElement(br.Group,{noWrap:!0},Ve.default.createElement(Ne,{value:o}),Ve.default.createElement("div",null,Ve.default.createElement(br.Text,null,e),Ve.default.createElement(br.Text,{size:"xs",color:"dimmed"},o.birthDate)))));function Iu(e){return cu[e]??(mu.includes(e)?"name":"_id")}function gt(e){let o=gu(e.targetTypes),t=hu(e.defaultValue,o),[r,a]=(0,co.useState)(e.defaultValue),[n,f]=(0,co.useState)(t),s=(0,co.useRef)();s.current=r;let l=(0,co.useRef)();l.current=n;function i(u){a(u),e.onChange&&e.onChange(u)}return co.default.createElement(Ut.Group,{spacing:"xs",grow:!0,noWrap:!0},o?co.default.createElement(Ut.NativeSelect,{"data-autofocus":e.autoFocus,"data-testid":"reference-input-resource-type-select",defaultValue:n,autoFocus:e.autoFocus,onChange:u=>f(u.currentTarget.value),data:o}):co.default.createElement(Ut.TextInput,{"data-autofocus":e.autoFocus,"data-testid":"reference-input-resource-type-input",defaultValue:n,autoFocus:e.autoFocus,onChange:u=>f(u.currentTarget.value)}),co.default.createElement(Dr,{resourceType:n,name:e.name+"-id",placeholder:e.placeholder,defaultValue:r,onChange:u=>{i(u?(0,Kl.createReference)(u):void 0)}}))}function gu(e){if(!(!e||e.length===0||e.length===1&&e[0]==="Resource"))return e}function hu(e,o){let t=e?.reference?.split("/")[0];if(t)return t;if(o&&o.length>0)return o[0]}var ef=require("@mantine/core");var ye=m(require("react"));function of(e){let[o,t]=(0,ye.useState)(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),r=(0,ye.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return ye.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},ye.default.createElement("colgroup",null,ye.default.createElement("col",{width:"97%"}),ye.default.createElement("col",{width:"3%"})),ye.default.createElement("tbody",null,o.map((n,f)=>ye.default.createElement("tr",{key:`${f}-${o.length}`},ye.default.createElement("td",null,ye.default.createElement(ho,{arrayElement:!0,property:e.property,name:e.name+"."+f,defaultValue:n,onChange:s=>{let l=[...r.current];l[f]=s,a(l)}})),ye.default.createElement("td",{style:{textAlign:"right"}},ye.default.createElement(ef.ActionIcon,{title:"Remove",size:"sm",onClick:s=>{U(s);let l=[...r.current];l.splice(f,1),a(l)}},ye.default.createElement(Qo,null))))),ye.default.createElement("tr",null,ye.default.createElement("td",null),ye.default.createElement("td",{style:{textAlign:"right"}},ye.default.createElement(ef.ActionIcon,{title:"Add",size:"sm",color:"green",onClick:n=>{U(n);let f=[...r.current];f.push(void 0),a(f)}},ye.default.createElement(Dt,null))))))}var Ce=require("@mantine/core"),_l=require("@medplum/core"),Z=m(require("react"));var yu=["sun","mon","tue","wed","thu","fri","sat"];function tf(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(Ce.Group,{spacing:"xs",grow:!0,noWrap:!0},Z.default.createElement("span",null,(0,_l.formatTiming)(n.current)||"No repeat"),Z.default.createElement(Ce.Button,{onClick:()=>a(!0)},"Edit")),Z.default.createElement(Cu,{visible:r,defaultValue:n.current,onOk:f=>{e.onChange&&e.onChange(f),t(f),a(!1)},onCancel:()=>a(!1)}))}var jl={repeat:{period:1,periodUnit:"d"}};function Cu(e){let[o,t]=(0,Z.useState)(e.defaultValue||jl),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(Ce.Modal,{title:"Timing",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>e.onCancel()},Z.default.createElement(Ce.Stack,null,Z.default.createElement(Je,{title:"Starts on",htmlFor:"timing-dialog-start"},Z.default.createElement(ao,{name:"timing-dialog-start",onChange:i=>a(i)})),Z.default.createElement(Ce.Switch,{label:"Repeat",checked:!!o.repeat,onChange:i=>n(i.currentTarget.checked?jl.repeat:void 0)}),o.repeat&&Z.default.createElement(Z.default.Fragment,null,Z.default.createElement(Je,{title:"Repeat every",htmlFor:"timing-dialog-period"},Z.default.createElement(Ce.Group,{spacing:"xs",grow:!0,noWrap:!0},Z.default.createElement(Ce.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(Ce.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(Je,{title:"Repeat on"},Z.default.createElement(Ce.Chip.Group,{multiple:!0,onChange:l},Z.default.createElement(Ce.Group,{position:"apart",mt:"md",spacing:"xs"},yu.map(i=>Z.default.createElement(Ce.Chip,{key:i,value:i,size:"xs",radius:"xl"},i.charAt(0).toUpperCase())))))),Z.default.createElement(Ce.Group,{position:"right"},Z.default.createElement(Ce.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==="*"&&!e.arrayElement)return t===N.PropertyType.Attachment?G.default.createElement(wn,{name:r,defaultValue:a,onChange:e.onChange}):G.default.createElement(of,{property:o,name:r,defaultValue:a,onChange:e.onChange});let n=o.type;return n.length>1?G.default.createElement(Zl,{elementDefinitionTypes:n,...e}):G.default.createElement(rf,{elementDefinitionType:n[0],...e})}function Zl(e){let o=e.elementDefinitionTypes,t;e.defaultPropertyType&&(t=o.find(n=>n.code===e.defaultPropertyType)),t||(t=o[0]);let[r,a]=(0,G.useState)(t);return G.default.createElement(no.Group,{spacing:"xs",grow:!0,noWrap:!0},G.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}))}),G.default.createElement(rf,{...e,elementDefinitionType:r,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",(0,N.capitalize)(r.code)))}}))}function rf(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 N.PropertyType.SystemString:case N.PropertyType.canonical:case N.PropertyType.string:case N.PropertyType.time:case N.PropertyType.uri:case N.PropertyType.url:return G.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 N.PropertyType.date:return G.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 N.PropertyType.dateTime:case N.PropertyType.instant:return G.default.createElement(ao,{name:r,defaultValue:a,onChange:e.onChange,outcome:e.outcome});case N.PropertyType.decimal:case N.PropertyType.integer:case N.PropertyType.positiveInt:case N.PropertyType.unsignedInt:return G.default.createElement(no.TextInput,{type:"number",step:t===N.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 N.PropertyType.code:return G.default.createElement(cr,{property:o,name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.boolean:return G.default.createElement(no.Checkbox,{id:r,name:r,"data-testid":r,defaultChecked:!!a,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.checked)}});case N.PropertyType.markdown:return G.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 N.PropertyType.Address:return G.default.createElement(Ga,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Annotation:return G.default.createElement(Qa,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Attachment:return G.default.createElement(mr,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.CodeableConcept:return G.default.createElement(Jn,{property:o,name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Coding:return G.default.createElement($n,{property:o,name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.ContactDetail:return G.default.createElement(Kn,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.ContactPoint:return G.default.createElement(vr,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Extension:return G.default.createElement(Ql,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.HumanName:return G.default.createElement(_n,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Identifier:return G.default.createElement(Zn,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Money:return G.default.createElement(Yn,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Period:return G.default.createElement(Wl,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Duration:case N.PropertyType.Quantity:return G.default.createElement(Ye,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Range:return G.default.createElement(Vt,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Ratio:return G.default.createElement($l,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Reference:return G.default.createElement(gt,{name:r,defaultValue:a,targetTypes:vu(o),onChange:e.onChange});case N.PropertyType.Timing:return G.default.createElement(tf,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Dosage:case N.PropertyType.UsageContext:return G.default.createElement(Lt,{typeName:t,defaultValue:a,onChange:e.onChange,outcome:e.outcome});default:return G.default.createElement(Lt,{typeName:(0,N.getElementDefinitionTypeName)(o),defaultValue:a,onChange:e.onChange,outcome:e.outcome})}}function vu(e){return e?.type?.[0]?.targetProfile?.map(o=>o.split("/").pop())}function Lt(e){let[o,t]=(0,Oo.useState)(e.defaultValue??{});function r(s){t(s),e.onChange&&e.onChange(s)}let a=e.typeName,n=kr.globalSchema.types[a];if(!n)return Oo.default.createElement("div",null,a,"\xA0not implemented");let f={type:a,value:o};return Oo.default.createElement(Yl.Stack,null,Object.entries(n.properties).map(s=>{let l=s[0];if(l==="id"||ra.includes(l))return null;let i=s[1];if(!i.type)return null;let[u,d]=Xe(f,l),c=i.min!==void 0&&i.min>0;return i.type.length===1&&i.type[0].code==="boolean"?Oo.default.createElement(yr,{key:l,title:(0,kr.getPropertyDisplayName)(l),description:i.definition,htmlFor:l},Oo.default.createElement(ho,{property:i,name:l,defaultValue:u,defaultPropertyType:d,outcome:e.outcome,onChange:(y,b)=>{r(Et(o,l,b??l,s[1],y))}})):Oo.default.createElement(Je,{key:l,title:(0,kr.getPropertyDisplayName)(l),description:i.definition,withAsterisk:c,htmlFor:l,outcome:e.outcome},Oo.default.createElement(ho,{property:i,name:l,defaultValue:u,defaultPropertyType:d,onChange:(y,b)=>{r(Et(o,l,b??l,s[1],y))}}))}))}var Eo=require("@mantine/core"),se=m(require("react")),Su=(0,Eo.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 es(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function af(e){let{classes:o}=Su(),{onChangeMonth:t,onClick:r}=e,[a,n]=(0,se.useState)(ma);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)(()=>bu(a,e.slots),[a,e.slots]);return se.default.createElement("div",null,se.default.createElement(Eo.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},se.default.createElement("p",{style:{flex:1}},es(a)),se.default.createElement(Eo.Group,{position:"right",spacing:"xs"},se.default.createElement(Eo.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>f(-1)},"<"),se.default.createElement(Eo.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(Eo.Button,{disabled:!u.available,onClick:()=>r(u.date)},u.date.getDate()))))))))}function ma(){let e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}function bu(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:Pu(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 Pu(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 pa=require("@mantine/core"),os=m(require("react")),Du=(0,pa.createStyles)(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function Lo(e){let{children:o,...t}=e,{classes:r}=Du();return os.default.createElement(pa.Container,{className:r.root,...t},o)}var Is=m(require("react"));var ie=require("@mantine/core"),Xt=require("@mantine/notifications"),Ko=require("@medplum/core");var S=m(require("react"));var te=require("@mantine/core"),fo=require("@medplum/core"),h=m(require("react"));var Gt=require("@mantine/core"),nf=m(require("react")),ku=(0,Gt.createStyles)(e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));function ff({value:e}){let{classes:o}=ku();return e?nf.default.createElement(Gt.Stack,{justify:"flex-start",spacing:"xs"},e.map(t=>t.text&&nf.default.createElement(Gt.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 rs=require("@mantine/core"),xa=m(require("react"));var ts=require("@mantine/core"),Qt=require("@medplum/core"),Tr=m(require("react"));function mo(e){let{value:o,link:t,...r}=e,[a,n]=(0,Tr.useState)(),f=re(o,n),s;if(a&&!(0,Qt.isOk)(a))s=`[${(0,Qt.normalizeErrorString)(a)}]`;else if(f)s=(0,Qt.getDisplayString)(f);else return null;return t?Tr.default.createElement(ke,{to:o,...r},s):Tr.default.createElement(ts.Text,{component:"span",...r},s)}function Ro(e){return xa.default.createElement(rs.Group,{spacing:"xs"},xa.default.createElement(Ne,{size:24,radius:12,value:e.value,link:e.link}),xa.default.createElement(mo,{value:e.value,link:e.link}))}var as=require("@mantine/core"),ns=m(require("react")),Tu={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 Br(e){return ns.default.createElement(as.Badge,{color:Tu[e.status]},e.status)}var fs=(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}}));Ia.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};function Ia(e){let o=T(),t=re(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(te.Stack,null,h.default.createElement(te.Title,null,"Diagnostic Report"),h.default.createElement(Bu,{value:t}),!e.hideSpecimenInfo&&Au(r),t.result&&h.default.createElement(ls,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&h.default.createElement(ff,{value:n}))}function Bu({value:e}){return h.default.createElement(te.Group,{mt:"md",spacing:30},e.subject&&h.default.createElement("div",null,h.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),h.default.createElement(te.Text,null,h.default.createElement(Ro,{value:e.subject,link:!0}))),e.resultsInterpreter?.map(o=>h.default.createElement("div",{key:o.reference},h.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),h.default.createElement(te.Text,null,h.default.createElement(Ro,{value:o,link:!0})))),e.performer?.map(o=>h.default.createElement("div",{key:o.reference},h.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Performer"),h.default.createElement(te.Text,null,h.default.createElement(Ro,{value:o,link:!0})))),e.issued&&h.default.createElement("div",null,h.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),h.default.createElement(te.Text,null,(0,fo.formatDateTime)(e.issued))),e.status&&h.default.createElement("div",null,h.default.createElement(te.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),h.default.createElement(te.Text,null,(0,fo.capitalize)(e.status))))}function Au(e){return h.default.createElement(te.Stack,{spacing:"xs"},h.default.createElement(te.Title,{order:2,size:"h6"},"Specimens"),h.default.createElement(te.List,{type:"ordered"},e?.map(o=>h.default.createElement(te.List.Item,{ml:"sm",key:`specimen-${o.id}`},h.default.createElement(te.Group,{spacing:20},h.default.createElement(te.Group,{spacing:5},h.default.createElement(te.Text,{fw:500},"Collected:")," ",(0,fo.formatDateTime)(o.collection?.collectedDateTime)),h.default.createElement(te.Group,{spacing:5},h.default.createElement(te.Text,{fw:500},"Received:")," ",(0,fo.formatDateTime)(o.receivedTime)))))))}function ls(e){let{classes:o}=fs();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(ss,{value:e.value,hideObservationNotes:e.hideObservationNotes})))}function ss(e){return h.default.createElement(h.default.Fragment,null,e.value?.map(o=>h.default.createElement(Mu,{key:`obs-${(0,fo.isReference)(o)?o.reference:o.id}`,hideObservationNotes:e.hideObservationNotes,value:o})))}function Mu(e){let{classes:o,cx:t}=fs(),r=re(e.value);if(!r)return null;let a=!e.hideObservationNotes&&r.note,n=Ou(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(mt,{value:r.code}))),h.default.createElement("td",null,h.default.createElement(Fu,{value:r})),h.default.createElement("td",null,h.default.createElement(wu,{value:r.referenceRange})),h.default.createElement("td",null,r.interpretation&&r.interpretation.length>0&&h.default.createElement(mt,{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,fo.formatCodeableConcept)(f)}`},h.default.createElement(mt,{value:f}))))),h.default.createElement("td",null,r.performer?.map(f=>h.default.createElement(Wo,{key:f.reference,value:f}))),h.default.createElement("td",null,r.status&&h.default.createElement(Br,{status:r.status}))),r.hasMember&&h.default.createElement(ss,{value:r.hasMember,hideObservationNotes:e.hideObservationNotes}),a&&h.default.createElement("tr",null,h.default.createElement("td",{colSpan:6},h.default.createElement(ff,{value:r.note}))))}function Fu(e){let o=e.value;return h.default.createElement(h.default.Fragment,null,(0,fo.formatObservationValue)(o))}function wu(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(xr,{value:o}):null}function Ou(e){let o=e.interpretation?.[0]?.coding?.[0]?.code;return o==="AA"||o==="LL"||o==="HH"||o==="A"}var zt=require("@mantine/core"),is=m(require("react")),Eu=(0,zt.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%"}}})),Lu={shadow:"xs",radius:"md",withBorder:!0};function ht(e){let{className:o,children:t,width:r,fill:a,unstyled:n,...f}=(0,zt.useComponentDefaultProps)("Panel",Lu,e),{classes:s,cx:l}=Eu({width:r,fill:a},{name:"Panel",unstyled:n});return is.default.createElement(zt.Paper,{className:l(s.paper,o),...f},t)}var ds=require("@mantine/core"),$o=require("@medplum/core"),me=m(require("react"));var Ru=(0,ds.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 cs(e){let{classes:o}=Ru(),t=T(),[r,a]=(0,me.useState)();if((0,me.useEffect)(()=>{t.requestSchema(e.original.resourceType).then(a).catch(console.log)},[t,e.original.resourceType]),!r)return null;let n=r.types[e.original.resourceType];return n?me.default.createElement("table",{className:o.root},me.default.createElement("colgroup",null,me.default.createElement("col",{style:{width:"30%"}}),me.default.createElement("col",{style:{width:"35%"}}),me.default.createElement("col",{style:{width:"35%"}})),me.default.createElement("thead",null,me.default.createElement("tr",null,me.default.createElement("th",null,"Property"),me.default.createElement("th",null,"Before"),me.default.createElement("th",null,"After"))),me.default.createElement("tbody",null,Object.entries(n.properties).map(f=>{let s=f[0];if(s==="id"||s==="meta")return null;let l=f[1],[i,u]=Xe((0,$o.toTypedValue)(e.original),s),[d,c]=Xe((0,$o.toTypedValue)(e.revised),s);return us(i)&&us(d)||(0,$o.stringify)(i)===(0,$o.stringify)(d)?null:me.default.createElement("tr",{key:s},me.default.createElement("td",null,(0,$o.getPropertyDisplayName)(s)),me.default.createElement("td",{className:o.removed},me.default.createElement(Me,{property:l,propertyType:u,value:i,ignoreMissingValues:!0})),me.default.createElement("td",{className:o.added},me.default.createElement(Me,{property:l,propertyType:c,value:d,ignoreMissingValues:!0})))}))):null}function us(e){return!e||Array.isArray(e)&&e.length===0||typeof e=="object"&&Object.keys(e).length===0}var Wt=m(require("react"));function ga(e){let o=T(),t=re(e.value),[r,a]=(0,Wt.useState)();return(0,Wt.useEffect)(()=>{t&&o.requestSchema(t.resourceType).then(a).catch(console.log)},[o,t]),!r||!t?null:Wt.default.createElement(wt,{value:{type:t.resourceType,value:e.forceUseInput?e.value:t},ignoreMissingValues:e.ignoreMissingValues})}var po=require("@mantine/core"),ha=require("@medplum/core");var be=m(require("react"));function lf(e){return be.default.createElement(Lo,null,e.children)}function No(e){let{resource:o,profile:t,padding:r,popupMenuItems:a,...n}=e,f=t??o.meta?.author,s=e.dateTime??o.meta?.lastUpdated;return be.default.createElement(ht,{"data-testid":"timeline-item",fill:!0,...n},be.default.createElement(po.Group,{position:"apart",spacing:8,mx:"xs",my:"sm"},be.default.createElement(Ne,{value:f,link:!0,size:"md"}),be.default.createElement("div",{style:{flex:1}},be.default.createElement(po.Text,{size:"sm"},be.default.createElement(mo,{color:"dark",weight:500,value:f,link:!0})),be.default.createElement(po.Text,{size:"xs"},be.default.createElement(ke,{color:"dimmed",to:e.resource},(0,ha.formatDateTime)(s)),be.default.createElement(po.Text,{component:"span",color:"dimmed",mx:8},"\xB7"),be.default.createElement(ke,{color:"dimmed",to:e.resource},e.resource.resourceType))),a&&be.default.createElement(po.Menu,{position:"bottom-end",shadow:"md",width:200},be.default.createElement(po.Menu.Target,null,be.default.createElement(po.ActionIcon,{radius:"xl","aria-label":`Actions for ${(0,ha.getReferenceString)(e.resource)}`},be.default.createElement(an,null))),a)),be.default.createElement(st,null,r&&be.default.createElement("div",{style:{padding:"0 16px 16px 16px"}},e.children),!r&&be.default.createElement(be.default.Fragment,null,e.children)))}function sf(e,o){e.sort((t,r)=>{let a=ms(t,o),n=ms(r,o);return a>n?1:a<n?-1:ps(t,o)-ps(r,o)})}function ms(e,o){if(!xs(e,o)){let t=e.priority;if(typeof t=="string")return{stat:4,asap:3,urgent:2}[t]??0}return 0}function ps(e,o){if(!xs(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 xs(e,o){return!!o&&e.resourceType===o.resourceType&&e.id===o.id}var Nu=(0,ie.createStyles)(e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}}));function Ho(e){let o=T(),t=Po(),r=o.getProfile(),a=(0,S.useRef)(null),n=re(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)(P=>{sf(P,n),P.reverse(),i(P)},[n]),y=(0,S.useCallback)(P=>{let q=[];for(let lo of P){if(lo.status!=="fulfilled")continue;let He=lo.value;if(He.type==="history"&&s(He),He.entry)for(let ft of He.entry)q.push(ft.resource)}c(q)},[c]),b=(0,S.useCallback)(P=>c([...d.current,P]),[c]),M=(0,S.useCallback)(()=>{let P,q;"resourceType"in e.value?(P=e.value.resourceType,q=e.value.id):[P,q]=e.value.reference?.split("/"),u(o,P,q).then(y).catch(console.log)},[o,e.value,u,y]);(0,S.useEffect)(()=>M(),[M]);function D(P){!n||!e.createCommunication||o.createResource(e.createCommunication(n,r,P)).then(q=>b(q)).catch(console.log)}function A(P){!n||!e.createMedia||o.createResource(e.createMedia(n,r,P)).then(q=>b(q)).then(()=>(0,Xt.updateNotification)({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:S.default.createElement(nr,{size:16}),autoClose:2e3})).catch(q=>(0,Xt.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,Ko.normalizeErrorString)(q),icon:S.default.createElement(fn,{size:16}),autoClose:2e3}))}function g(P,q){return o.updateResource({...P,priority:q})}function z(P){g(P,"stat").then(M).catch(console.log)}function k(P){g(P,"routine").then(M).catch(console.log)}function I(P){t(`/${P.resourceType}/${P.id}`)}function X(P){t(`/${P.resourceType}/${P.id}/edit`)}function ve(P){t(`/${P.resourceType}/${P.id}/delete`)}function Le(P){t(`/${P.resourceType}/${P.id}/_history/${P.meta?.versionId}`)}function Se(){(0,Xt.showNotification)({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})}function er(P){(0,Xt.updateNotification)({id:"upload-notification",loading:!0,title:"Uploading...",message:zu(P),autoClose:!1,withCloseButton:!1})}return n?S.default.createElement(lf,null,e.createCommunication&&S.default.createElement(ht,null,S.default.createElement(le,{testid:"timeline-form",onSubmit:P=>{D(P.text);let q=a.current;q&&(q.value="",q.focus())}},S.default.createElement(ie.Group,{spacing:"xs",noWrap:!0,style:{width:"100%"}},S.default.createElement(Ne,{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(cn,{size:16})),S.default.createElement(ct,{onUpload:A,onUploadStart:Se,onUploadProgress:er},P=>S.default.createElement(ie.ActionIcon,{...P,radius:"xl",color:"blue",variant:"filled"},S.default.createElement(fr,{size:16})))))),l.map(P=>{if(!P)return null;let q=`${P.resourceType}/${P.id}/${P.meta?.versionId}`;if(P.resourceType===n.resourceType&&P.id===n.id)return S.default.createElement(Hu,{key:q,history:f,resource:P,onDetails:Le});switch(P.resourceType){case"AuditEvent":return S.default.createElement(Gu,{key:q,resource:P,onDetails:I});case"Communication":return S.default.createElement(qu,{key:q,resource:P,onPin:P.priority!=="stat"?z:void 0,onUnpin:P.priority==="stat"?k:void 0,onDetails:I,onEdit:X,onDelete:ve});case"DiagnosticReport":return S.default.createElement(Qu,{key:q,resource:P,onDetails:I,onEdit:X,onDelete:ve});case"Media":return S.default.createElement(Uu,{key:q,resource:P,onDetails:I,onEdit:X,onDelete:ve});default:return S.default.createElement(No,{key:q,resource:P,padding:!0},S.default.createElement(ga,{value:P,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(mn,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${(0,Ko.getReferenceString)(e.resource)}`},"Pin"),e.onUnpin&&S.default.createElement(ie.Menu.Item,{icon:S.default.createElement(pn,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${(0,Ko.getReferenceString)(e.resource)}`},"Unpin"),e.onDetails&&S.default.createElement(ie.Menu.Item,{icon:S.default.createElement(un,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${(0,Ko.getReferenceString)(e.resource)}`},"Details"),e.onEdit&&S.default.createElement(ie.Menu.Item,{icon:S.default.createElement(nn,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${(0,Ko.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(ir,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${(0,Ko.getReferenceString)(e.resource)}`},"Delete")))}function Hu(e){let o=Vu(e.history,e.resource);return o?S.default.createElement(No,{resource:e.resource,padding:!0,popupMenuItems:S.default.createElement(Jt,{...e})},S.default.createElement(cs,{original:o,revised:e.resource})):S.default.createElement(No,{resource:e.resource,padding:!0,popupMenuItems:S.default.createElement(Jt,{...e})},S.default.createElement("h3",null,"Created"),S.default.createElement(ga,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0}))}function Vu(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 qu(e){let{classes:o}=Nu(),r=!e.resource.priority||e.resource.priority==="routine"?void 0:o.pinnedComment;return S.default.createElement(No,{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 Uu(e){let o=e.resource.content?.contentType,t=o&&!o.startsWith("image/")&&!o.startsWith("video/")&&o!=="application/pdf";return S.default.createElement(No,{resource:e.resource,padding:!!t,popupMenuItems:S.default.createElement(Jt,{...e})},S.default.createElement(io,{value:e.resource.content}))}function Gu(e){return S.default.createElement(No,{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 Qu(e){return S.default.createElement(No,{resource:e.resource,padding:!0,popupMenuItems:S.default.createElement(Jt,{...e})},S.default.createElement(Ia,{value:e.resource}))}function zu(e){if(e.lengthComputable){let o=100*e.loaded/e.total;return`Uploaded: ${uf(e.loaded)} / ${uf(e.total)} ${o.toFixed(2)}%`}return`Uploaded: ${uf(e.loaded)}`}function uf(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 Wu(e){return Is.default.createElement(Ho,{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 df=m(require("react"));function Ar(e){let{children:o,...t}=e;return df.default.createElement(Lo,null,df.default.createElement(ht,{...t},o))}var Mr=require("@medplum/core"),gs=m(require("react"));function Xu(e){return gs.default.createElement(Ho,{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,Mr.createReference)(o),subject:o.subject,sender:(0,Mr.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",encounter:(0,Mr.createReference)(o),subject:o.subject,operator:(0,Mr.createReference)(t),issued:new Date().toISOString(),content:r})})}var Zt=require("@mantine/core"),Ms=require("@medplum/core"),Y=m(require("react"));var hs=require("@medplum/core"),ys=m(require("react"));function Cs(e){let o;try{o=(0,hs.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 ys.default.createElement(Me,{value:o[0]||"",propertyType:e.propertyType})}var Q=require("@mantine/core"),ot=require("@medplum/core");var C=m(require("react"));var jo=require("@mantine/core"),yt=m(require("react"));function Ss(e){return yt.default.createElement(jo.Modal,{title:"Export",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},yt.default.createElement(jo.Box,{display:"flex",sx:{justifyContent:"space-between"}},e.exportCsv&&yt.default.createElement(vs,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&yt.default.createElement(vs,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})),yt.default.createElement(jo.Text,{sx:{marginTop:"10px",marginLeft:"2px"}},"Limited to 1000 records"))}function vs(e){return yt.default.createElement(jo.Button,{onClick:()=>{e.exportLogic(),e.onCancel()}},`Export as ${e.text}`)}var _o=require("@mantine/core"),Sa=require("@medplum/core"),J=m(require("react"));var F=require("@medplum/core"),Fr=m(require("react"));var Ju={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]},$u={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 Ku(e){return $t(e,[])}function wr(e,o){return $t(e,(e.filters??[]).filter(t=>t.code!==o))}function Ct(e,o,t,r,a){a&&(e=wr(e,o));let n=[];return e.filters&&n.push(...e.filters),n.push({code:o,operator:t,value:r??""}),$t(e,n)}function ju(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 cf(e,o){if(!e.filters)return e;let t=[...e.filters];return t.splice(o,1),{...e,filters:t,name:void 0}}function mf(e,o){return If(e,o,-1)}function pf(e,o){return If(e,o,0)}function xf(e,o){return If(e,o,1)}function If(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),ya(e,o,r,a)}function gf(e,o){return Cf(e,o,-1)}function hf(e,o){return Cf(e,o,0)}function yf(e,o){return Cf(e,o,1)}function Cf(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),ya(e,o,r,a)}function vf(e,o){let t=new Date;return t.setMonth(0),t.setDate(1),t.setHours(0,0,0,0),ya(e,o,t,new Date)}function ya(e,o,t,r){return e=wr(e,o),e=bs(e,o,F.Operator.GREATER_THAN_OR_EQUALS,t),e=bs(e,o,F.Operator.LESS_THAN_OR_EQUALS,r),e}function bs(e,o,t,r){return Ct(e,o,t,r.toISOString())}function Ca(e,o,t=!0){return Ct(e,o,F.Operator.MISSING,t.toString())}function Ps(e,o){return e.offset===o?e:{...e,offset:o,name:void 0}}function Sf(e,o){let t=e.count??F.DEFAULT_SEARCH_COUNT,r=(o-1)*t;return Ps(e,r)}function va(e,o,t){return o===bf(e)&&t!==void 0&&t===Pf(e)?e:{...e,sortRules:[{code:o,descending:!!t}],name:void 0}}function _u(e,o){let t=!1;return bf(e)===o&&(t=!Pf(e)),va(e,o,t)}function bf(e){let o=e.sortRules;if(!o||o.length===0)return;let t=o[0].code;return t.startsWith("-")?t.substr(1):t}function Pf(e){let o=e.sortRules;return!o||o.length===0?!1:!!o[0].descending}function Df(e){return Ju[e.type]}function Kt(e){return $u[e]??""}function qe(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 kf(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?Zu(e,o.elementDefinition):o.searchParams&&o.searchParams.length===1&&o.name===o.searchParams[0].code?Yu(e,o.searchParams[0]):null}function Zu(e,o){let t=o.path?.split(".")?.pop()?.replaceAll("[x]","")??"",[r,a]=Xe({type:e.resourceType,value:e},t);return r?Fr.default.createElement(Me,{property:o,propertyType:a,value:r,maxWidth:200,ignoreMissingValues:!0,link:!1}):null}function Yu(e,o){let t=(0,F.evalFhirPathTyped)(o.expression,[{type:e.resourceType,value:e}]);return!t||t.length===0?null:Fr.default.createElement(Fr.default.Fragment,null,t.map((r,a)=>Fr.default.createElement(Me,{key:`${a}-${t.length}`,propertyType:r.type,value:r.value,maxWidth:200,ignoreMissingValues:!0,link:!1})))}function Tf(e){let[o,t]=(0,J.useState)({search:JSON.parse((0,Sa.stringify)(e.search))}),r=(0,J.useRef)(null),a=(0,J.useRef)(null);(0,J.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??[],z=r.current?.value;if(z){let k=[...g,z];t({search:{...o.search,fields:k}})}}function u(){let g=o.search.fields??[],z=a.current?.value;if(z){let k=[...g];k.splice(k.indexOf(z),1),t({search:{...o.search,fields:k}})}}function d(){let g=o.search.fields??[],z=a.current?.value;if(!z)return;let k=[...g],I=k.indexOf(z);I<=0||(y(k,I,I-1),t({search:{...o.search,fields:k}}))}function c(){let g=o.search.fields??[],z=a.current?.value;if(!z)return;let k=[...g],I=k.indexOf(z);I>=k.length-1||(y(k,I,I+1),t({search:{...o.search,fields:k}}))}function y(g,z,k){let I=g[z];g[z]=g[k],g[k]=I}if(!e.visible)return null;let b=e.search.resourceType,M=Sa.globalSchema.types[b],D=o.search.fields??[],A=ed(M).filter(g=>!D.includes(g)).sort((g,z)=>g.localeCompare(z));return J.default.createElement(_o.Modal,{title:"Fields",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},J.default.createElement("div",null,J.default.createElement("table",{style:{margin:"auto"}},J.default.createElement("thead",null,J.default.createElement("tr",null,J.default.createElement("th",{colSpan:2,align:"center"},"Available"),J.default.createElement("th",{colSpan:2,align:"center"},"Selected"))),J.default.createElement("tbody",null,J.default.createElement("tr",null,J.default.createElement("td",{colSpan:2,align:"center"},J.default.createElement("select",{ref:r,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:g=>n(g),onDoubleClick:()=>f(),"data-testid":"available"},A.map(g=>J.default.createElement("option",{key:g,value:g},qe(g))))),J.default.createElement("td",{colSpan:2,align:"center"},J.default.createElement("select",{ref:a,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:g=>s(g),onDoubleClick:()=>l(),"data-testid":"selected"},D.map(g=>J.default.createElement("option",{key:g,value:g},qe(g))))))),J.default.createElement("tfoot",null,J.default.createElement("tr",null,J.default.createElement("td",{align:"center"},J.default.createElement(_o.Button,{compact:!0,variant:"outline",onClick:i},"Add")),J.default.createElement("td",{align:"center"},J.default.createElement(_o.Button,{compact:!0,variant:"outline",onClick:u},"Remove")),J.default.createElement("td",{align:"center"},J.default.createElement(_o.Button,{compact:!0,variant:"outline",onClick:d},"Up")),J.default.createElement("td",{align:"center"},J.default.createElement(_o.Button,{compact:!0,variant:"outline",onClick:c},"Down")))))),J.default.createElement(_o.Button,{onClick:()=>e.onOk(o.search)},"OK"))}function ed(e){let o=[],t=new Set,r=new Set;for(let a of Object.keys(e.properties))o.push(a),t.add(a.toLowerCase()),r.add(qe(a));if(e.searchParams)for(let a of Object.keys(e.searchParams)){let n=qe(a);!t.has(a)&&!r.has(n)&&(o.push(a),t.add(a),r.add(qe(a)))}return o}var eo=require("@mantine/core"),Or=require("@medplum/core"),E=m(require("react"));var xo=require("@medplum/core"),jt=m(require("react"));function ba(e){let{resourceType:o,filter:t}=e,r=xo.globalSchema.types[o].searchParams?.[t.code];if(r){if(r.type==="reference"&&(t.operator===xo.Operator.EQUALS||t.operator===xo.Operator.NOT_EQUALS))return jt.default.createElement(mo,{value:{reference:t.value}});let a=(0,xo.getSearchParameterDetails)(o,r);if(t.code==="_lastUpdated"||a.type===xo.SearchParameterType.DATETIME)return jt.default.createElement(jt.default.Fragment,null,(0,xo.formatDateTime)(t.value))}return jt.default.createElement(jt.default.Fragment,null,t.value)}var _t=require("@mantine/core"),Vo=require("@medplum/core"),Zo=m(require("react"));function Pa(e){let o=(0,Vo.getSearchParameterDetails)(e.resourceType,e.searchParam),t="filter-value";switch(o.type){case Vo.SearchParameterType.REFERENCE:return Zo.default.createElement(gt,{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 Vo.SearchParameterType.BOOLEAN:return Zo.default.createElement(_t.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 Vo.SearchParameterType.DATE:return Zo.default.createElement(_t.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 Vo.SearchParameterType.DATETIME:return Zo.default.createElement(ao,{name:t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:e.onChange});case Vo.SearchParameterType.NUMBER:return Zo.default.createElement(_t.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 Vo.SearchParameterType.QUANTITY:return Zo.default.createElement(Ye,{name:t,defaultValue:od(e.defaultValue),autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(`${r.value}`):e.onChange("")}});default:return Zo.default.createElement(_t.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 od(e){if(e){let[o,t,r]=e.split("|");if(o)return{value:parseFloat(o),system:t,unit:r}}}function Bf(e){let[o,t]=(0,E.useState)(JSON.parse((0,Or.stringify)(e.search))),[r,a]=(0,E.useState)(-1),n=(0,E.useRef)(o);n.current=o,(0,E.useEffect)(()=>{t(JSON.parse((0,Or.stringify)(e.search)))},[e.search]);function f(u){t(Ct(n.current,u.code,u.operator,u.value))}if(!e.visible)return null;let s=e.search.resourceType,l=Or.globalSchema.types[s].searchParams??{},i=o.filters||[];return E.default.createElement(eo.Modal,{title:"Filters",closeButtonProps:{"aria-label":"Close"},size:900,opened:e.visible,onClose:e.onCancel},E.default.createElement("div",null,E.default.createElement("table",null,E.default.createElement("colgroup",null,E.default.createElement("col",{style:{width:200}}),E.default.createElement("col",{style:{width:200}}),E.default.createElement("col",{style:{width:380}}),E.default.createElement("col",{style:{width:120}})),E.default.createElement("thead",null,E.default.createElement("tr",null,E.default.createElement("th",null,"Field"),E.default.createElement("th",null,"Operation"),E.default.createElement("th",null,"Value"),E.default.createElement("th",null,"Actions"))),E.default.createElement("tbody",null,i.map((u,d)=>d===r?E.default.createElement(Ds,{key:`filter-${u.code}-${u.operator}-${u.value}-input`,resourceType:s,searchParams:l,defaultValue:u,okText:"Save",onOk:c=>{let y=[...i];y[d]=c,t($t(n.current,y)),a(-1)},onCancel:()=>a(-1)}):E.default.createElement(td,{key:`filter-${u.code}-${u.operator}-${u.value}-display`,resourceType:s,searchParams:l,filter:u,onEdit:()=>a(d),onDelete:()=>t(cf(n.current,d))})),E.default.createElement(Ds,{resourceType:s,searchParams:l,okText:"Add",onOk:f})))),E.default.createElement(eo.Group,{position:"right",mt:"xl"},E.default.createElement(eo.Button,{onClick:()=>e.onOk(n.current)},"OK")))}function td(e){let{filter:o}=e;return E.default.createElement("tr",null,E.default.createElement("td",null,qe(o.code)),E.default.createElement("td",null,Kt(o.operator)),E.default.createElement("td",null,E.default.createElement(ba,{resourceType:e.resourceType,filter:o})),E.default.createElement("td",null,E.default.createElement(eo.Button,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),E.default.createElement(eo.Button,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function Ds(e){let[o,t]=(0,E.useState)(e.defaultValue??{}),r=(0,E.useRef)(o);r.current=o;function a(i){t({...r.current,code:i})}function n(i){t({...r.current,operator:i})}function f(i){t({...r.current,value:i})}let s=e.searchParams[o.code],l=s&&Df(s);return E.default.createElement("tr",null,E.default.createElement("td",null,E.default.createElement(eo.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:qe(i)}))]})),E.default.createElement("td",null,l&&E.default.createElement(eo.NativeSelect,{"data-testid":"filter-operation",defaultValue:o.operator,onChange:i=>n(i.currentTarget.value),data:["",...l.map(i=>({value:i,label:Kt(i)}))]})),E.default.createElement("td",null,s&&o.operator&&E.default.createElement(Pa,{resourceType:e.resourceType,searchParam:s,defaultValue:o.value,onChange:f})),E.default.createElement("td",null,o.code&&o.operator&&o.value&&E.default.createElement(eo.Button,{compact:!0,variant:"outline",onClick:()=>{e.onOk(r.current),t({})}},e.okText),e.onCancel&&E.default.createElement(eo.Button,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}var Yo=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(Yo.Modal,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},yo.default.createElement(le,{onSubmit:r},yo.default.createElement(Yo.Grid,null,yo.default.createElement(Yo.Grid.Col,{span:10},yo.default.createElement(Pa,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:o,autoFocus:!0,onChange:t})),yo.default.createElement(Yo.Grid.Col,{span:2},yo.default.createElement(Yo.Button,{onClick:r,fullWidth:!0},"OK")))))}var w=require("@mantine/core"),Te=require("@medplum/core");var p=m(require("react"));function Ts(e){if(!e.searchParams)return null;function o(n,f){a(va(e.search,n.code,f))}function t(n){a(wr(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(rd,{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},qe(n.code))))}function rd(e){switch(e.searchParam.type){case"date":return p.default.createElement(ad,{...e});case"number":case"quantity":return p.default.createElement(nd,{...e});case"reference":return p.default.createElement(fd,{...e});case"string":case"token":case"uri":return p.default.createElement(ld,{...e});default:return p.default.createElement(p.default.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function ad(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(lr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Oldest to Newest"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(sr,{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(Tt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT_EQUALS)},"Does not equal..."),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Qr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.ENDS_BEFORE)},"Before..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Gr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.STARTS_AFTER)},"After..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(ja,{size:14}),onClick:()=>e.onPrompt(o,Te.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(xf(e.search,t))},"Tomorrow"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(pf(e.search,t))},"Today"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(mf(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(yf(e.search,t))},"Next Month"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(hf(e.search,t))},"This Month"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(gf(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(vf(e.search,t))},"Year to date"),p.default.createElement(Da,{...e}))}function nd(e){let{searchParam:o}=e;return p.default.createElement(w.Menu.Dropdown,null,p.default.createElement(w.Menu.Item,{icon:p.default.createElement(lr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Smallest to Largest"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(sr,{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(Tt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT_EQUALS)},"Does not equal..."),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Gr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.GREATER_THAN)},"Greater than..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Qr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.LESS_THAN)},"Less than..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),p.default.createElement(Da,{...e}))}function fd(e){let{searchParam:o}=e;return p.default.createElement(w.Menu.Dropdown,null,p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Tt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT)},"Does not equal..."),p.default.createElement(Da,{...e}))}function ld(e){let{searchParam:o}=e;return p.default.createElement(w.Menu.Dropdown,null,p.default.createElement(w.Menu.Item,{icon:p.default.createElement(lr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort A to Z"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(sr,{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(Tt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS)},"Equals..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT)},"Does not equal..."),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Za,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.CONTAINS)},"Contains..."),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(_a,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS)},"Does not contain..."),p.default.createElement(Da,{...e}))}function Da(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($a,{size:14}),onClick:()=>e.onChange(Ca(e.search,t))},"Missing"),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(Ja,{size:14}),onClick:()=>e.onChange(Ca(e.search,t,!1))},"Not missing"),p.default.createElement(w.Menu.Divider,null),p.default.createElement(w.Menu.Item,{icon:p.default.createElement(vn,{size:14}),onClick:()=>e.onClear(o)},"Clear filters"))}var ka=require("@medplum/core");function Bs(e){let o=e.resourceType,t=[];for(let r of e.fields||["id","_lastUpdated"])t.push(sd(o,r));return t}function sd(e,o){if(o==="_lastUpdated")return{name:"_lastUpdated",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_lastUpdated",name:"_lastUpdated",type:"date",expression:"Resource.meta.lastUpdated"}]};if(o==="meta.versionId")return{name:"meta.versionId",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_versionId",name:"_versionId",type:"token",expression:"Resource.meta.versionId"}]};let t=ka.globalSchema.types[e],r=t.properties[o],a=t.searchParams?.[o.toLowerCase()];if(r&&a)return{name:o,elementDefinition:r,searchParams:[a]};if(r){let n;if(t.searchParams){let f=`${e}.${o.replaceAll("[x]","")}`;n=Object.values(t.searchParams).filter(s=>s.expression?.includes(f)),n.length===0&&(n=void 0)}return{name:o,elementDefinition:r,searchParams:n}}if(a){let n=(0,ka.getSearchParameterDetails)(e,a);return{name:o,elementDefinition:n.elementDefinitions?.[0],searchParams:[a]}}return{name:o}}var Ta=class extends Event{constructor(t){super("change");this.definition=t}},Ba=class extends Event{constructor(t){super("load");this.response=t}},et=class extends Event{constructor(t,r){super("click");this.resource=t,this.browserEvent=r}},id=(0,Q.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 As(e){let{classes:o}=id(),t=T(),[r,a]=(0,C.useState)(!1),[n,f]=(0,C.useState)(),{search:s,onLoad:l}=e,[i,u]=(0,C.useState)({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,exportDialogVisible:!1,filterDialogVisible:!1}),d=(0,C.useRef)(i);d.current=i;let c=s.total??"accurate",y=(0,C.useCallback)(B=>{f(void 0),t.search(s.resourceType,(0,ot.formatSearchQuery)({...s,total:c,fields:void 0}),B).then(oe=>{u({...d.current,searchResponse:oe}),l&&l(new Ba(oe))}).catch(oe=>{u({...d.current,searchResponse:void 0}),f(oe)})},[t,s,c,l]),b=(0,C.useCallback)(()=>{u({...d.current,searchResponse:void 0}),y({cache:"reload"})},[y]);(0,C.useEffect)(()=>{y()},[y]);function M(B,oe){B.stopPropagation();let Ae=B.target.checked,Re={...d.current.selected};Ae?Re[oe]=!0:delete Re[oe],u({...d.current,selected:Re})}function D(B){B.stopPropagation();let ge=B.target.checked,Ae={},Re=d.current.searchResponse;ge&&Re?.entry&&Re.entry.forEach(or=>{or.resource?.id&&(Ae[or.resource.id]=!0)}),u({...d.current,selected:Ae})}function A(){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 g(B){e.onChange&&e.onChange(new Ta(B))}function z(B,oe){if(Jr(B.target)||B.button===2)return;U(B);let ge=B.button===1||B.ctrlKey||B.metaKey;!ge&&e.onClick&&e.onClick(new et(oe,B)),ge&&e.onAuxClick&&e.onAuxClick(new et(oe,B))}function k(){return!!(e.onExport??e.onExportCsv??e.onExportTransactionBundle)}if((0,C.useEffect)(()=>{a(!1),t.requestSchema(e.search.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.search.resourceType]),!(r&&ot.globalSchema.types[e.search.resourceType]))return C.default.createElement(Q.Center,{style:{width:"100%",height:"100%"}},C.default.createElement(Q.Loader,null));let X=e.checkboxesEnabled,ve=Bs(s),Le=s.resourceType,Se=i.searchResponse,P=Se?.entry?.map(B=>B.resource),q="subtle",lo="gray",He=16,ft=window.innerWidth<768;return C.default.createElement("div",{className:o.root,"data-testid":"search-control"},!e.hideToolbar&&C.default.createElement(Q.Group,{position:"apart",mb:"xl"},C.default.createElement(Q.Group,{spacing:2},C.default.createElement(Q.Button,{compact:!0,variant:q,color:lo,leftIcon:C.default.createElement(on,{size:He}),onClick:()=>u({...d.current,fieldEditorVisible:!0})},"Fields"),C.default.createElement(Q.Button,{compact:!0,variant:q,color:lo,leftIcon:C.default.createElement(sn,{size:He}),onClick:()=>u({...d.current,filterEditorVisible:!0})},"Filters"),e.onNew&&C.default.createElement(Q.Button,{compact:!0,variant:q,color:lo,leftIcon:C.default.createElement(ln,{size:He}),onClick:e.onNew},"New..."),!ft&&k()&&C.default.createElement(Q.Button,{compact:!0,variant:q,color:lo,leftIcon:C.default.createElement(Cn,{size:He}),onClick:e.onExport?e.onExport:()=>u({...d.current,exportDialogVisible:!0})},"Export..."),!ft&&e.onDelete&&C.default.createElement(Q.Button,{compact:!0,variant:q,color:lo,leftIcon:C.default.createElement(ir,{size:He}),onClick:()=>e.onDelete(Object.keys(i.selected))},"Delete..."),!ft&&e.onBulk&&C.default.createElement(Q.Button,{compact:!0,variant:q,color:lo,leftIcon:C.default.createElement(Ka,{size:He}),onClick:()=>e.onBulk(Object.keys(i.selected))},"Bulk...")),C.default.createElement(Q.Group,{spacing:2},Se&&C.default.createElement(Q.Text,{size:"xs",color:"dimmed"},pd(s,Se.total),"-",xd(s,Se.total)," of"," ",`${c==="estimate"?"~":""}${Se.total?.toLocaleString()}`),C.default.createElement(Q.ActionIcon,{title:"Refresh",onClick:b},C.default.createElement(In,{size:"1.125rem"})))),C.default.createElement(Q.Table,{className:o.table},C.default.createElement("thead",null,C.default.createElement("tr",null,X&&C.default.createElement("th",null,C.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:A(),onChange:B=>D(B)})),ve.map(B=>C.default.createElement("th",{key:B.name},C.default.createElement(Q.Menu,{shadow:"md",width:240,position:"bottom-end"},C.default.createElement(Q.Menu.Target,null,C.default.createElement(Q.UnstyledButton,{className:o.control},C.default.createElement(Q.Group,{position:"apart",noWrap:!0},C.default.createElement(Q.Text,{weight:500,size:"sm"},qe(B.name)),C.default.createElement(Q.Center,{className:o.icon},C.default.createElement(za,{size:14,stroke:1.5}))))),C.default.createElement(Ts,{search:e.search,searchParams:B.searchParams,onPrompt:(oe,ge)=>{u({...d.current,filterDialogVisible:!0,filterDialogSearchParam:oe,filterDialogFilter:ge})},onChange:oe=>{g(oe)}}))))),!e.hideFilters&&C.default.createElement("tr",null,X&&C.default.createElement("th",null),ve.map(B=>C.default.createElement("th",{key:B.name},B.searchParams&&C.default.createElement(dd,{resourceType:Le,searchParams:B.searchParams,filters:e.search.filters}))))),C.default.createElement("tbody",null,P?.map(B=>B&&C.default.createElement("tr",{key:B.id,className:o.tr,"data-testid":"search-control-row",onClick:oe=>z(oe,B),onAuxClick:oe=>z(oe,B)},X&&C.default.createElement("td",null,C.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${B.id}`,checked:!!i.selected[B.id],onChange:oe=>M(oe,B.id)})),ve.map(oe=>C.default.createElement("td",{key:oe.name},kf(B,oe))))))),P?.length===0&&C.default.createElement(Lo,null,C.default.createElement(Q.Center,{style:{height:150}},C.default.createElement(Q.Text,{size:"xl",color:"dimmed"},"No results"))),Se?.total!==void 0&&Se.total>0&&C.default.createElement(Q.Center,{m:"md",p:"md"},C.default.createElement(Q.Pagination,{value:cd(s),total:md(s,Se.total),onChange:B=>g(Sf(s,B)),getControlProps:B=>{switch(B){case"previous":return{"aria-label":"Previous page"};case"next":return{"aria-label":"Next page"};default:return{}}}})),n&&C.default.createElement("div",{"data-testid":"search-error"},C.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(n,void 0,2))),C.default.createElement(Tf,{search:e.search,visible:d.current.fieldEditorVisible,onOk:B=>{g(B),u({...d.current,fieldEditorVisible:!1})},onCancel:()=>{u({...d.current,fieldEditorVisible:!1})}}),C.default.createElement(Bf,{search:e.search,visible:d.current.filterEditorVisible,onOk:B=>{g(B),u({...d.current,filterEditorVisible:!1})},onCancel:()=>{u({...d.current,filterEditorVisible:!1})}}),C.default.createElement(Ss,{visible:d.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{u({...d.current,exportDialogVisible:!1})}}),C.default.createElement(ks,{key:i.filterDialogSearchParam?.code,visible:d.current.filterDialogVisible,title:i.filterDialogSearchParam?.code?qe(i.filterDialogSearchParam.code):"",resourceType:Le,searchParam:i.filterDialogSearchParam,filter:i.filterDialogFilter,defaultValue:"",onOk:B=>{g(Ct(e.search,B.code,B.operator,B.value)),u({...d.current,filterDialogVisible:!1})},onCancel:()=>{u({...d.current,filterDialogVisible:!1})}}))}var ud=C.default.memo(As);function dd(e){let o=(e.filters??[]).filter(t=>e.searchParams.find(r=>r.code===t.code));return o.length===0?C.default.createElement("span",null,"no filters"):C.default.createElement(C.default.Fragment,null,o.map(t=>C.default.createElement("div",{key:`filter-${t.code}-${t.operator}-${t.value}`},Kt(t.operator),"\xA0",C.default.createElement(ba,{resourceType:e.resourceType,filter:t}))))}function cd(e){return Math.floor((e.offset??0)/(e.count??ot.DEFAULT_SEARCH_COUNT))+1}function md(e,o){let t=e.count??ot.DEFAULT_SEARCH_COUNT;return Math.ceil(o/t)}function pd(e,o){return Math.min(o,(e.offset??0)+1)}function xd(e,o){return Math.min(o,((e.offset??0)+1)*(e.count??ot.DEFAULT_SEARCH_COUNT))}function Fs(e){let o=T(),[t,r]=(0,Y.useState)(),[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 y=(0,Y.useRef)({});y.current=u,(0,Y.useEffect)(()=>{n(void 0),o.graphql(f).then(i).catch(k=>n((0,Ms.normalizeOperationOutcome)(k)))},[o,f]);function b(k,I){k.stopPropagation();let ve=k.target.checked,Le={...y.current};ve?Le[I]=!0:delete Le[I],d(Le)}function M(k){k.stopPropagation();let X=k.target.checked,ve={},Le=c.current?.data.ResourceList;X&&Le&&Le.forEach(Se=>{Se.id&&(ve[Se.id]=!0)}),d(ve)}function D(){let k=c.current?.data.ResourceList;if(!k||k.length===0)return!1;for(let I of k)if(I.id&&!y.current[I.id])return!1;return!0}function A(k,I){Jr(k.target)||(U(k),k.button!==1&&e.onClick&&e.onClick(new et(I,k)),k.button===1&&e.onAuxClick&&e.onAuxClick(new et(I,k)))}if((0,Y.useEffect)(()=>{o.requestSchema(e.resourceType).then(k=>{r({...k})}).catch(console.log)},[o,e.resourceType]),!t?.types[e.resourceType])return Y.default.createElement(Zt.Loader,null);let z=e.checkboxesEnabled;return Y.default.createElement("div",{onContextMenu:k=>U(k),"data-testid":"search-control"},Y.default.createElement(Zt.Table,null,Y.default.createElement("thead",null,Y.default.createElement("tr",null,z&&Y.default.createElement("th",null,Y.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:D(),onChange:k=>M(k)})),s.map(k=>Y.default.createElement("th",{key:k.name},k.name)))),Y.default.createElement("tbody",null,l?.data.ResourceList.map(k=>k&&Y.default.createElement("tr",{key:k.id,"data-testid":"search-control-row",onClick:I=>A(I,k),onAuxClick:I=>A(I,k)},z&&Y.default.createElement("td",null,Y.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${k.id}`,checked:!!u[k.id],onChange:I=>b(I,k.id)})),s.map(I=>Y.default.createElement("td",{key:I.name},Y.default.createElement(Cs,{propertyType:I.propertyType,path:I.fhirPath,resource:k}))))))),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(Zt.Button,{onClick:()=>e.onBulk(Object.keys(y.current))},"Bulk..."))}var Id=Y.default.memo(Fs);var tt=m(require("react"));function qo(e){return tt.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},tt.default.createElement("title",null,"Medplum Logo"),tt.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"}),tt.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"}),tt.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"}),tt.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"}),tt.default.createElement("path",{fill:e.fill??"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}var ws=require("@mantine/core");var Aa=m(require("react"));function vt(e){let o=e.outcome?.issue||e.issues;return!o||o.length===0?null:Aa.default.createElement(ws.Alert,{icon:Aa.default.createElement(lt,{size:16}),color:"red"},o.map(t=>Aa.default.createElement("div",{"data-testid":"text-field-error",key:t.details?.text},t.details?.text)))}var Er=require("@medplum/core"),Ma=m(require("react"));function gd(e){let o=(0,Ma.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 Ma.default.createElement(Ho,{value:e.patient,loadTimelineResources:o,createCommunication:(t,r,a)=>({resourceType:"Communication",status:"completed",subject:(0,Er.createReference)(t),sender:(0,Er.createReference)(r),sent:new Date().toISOString(),payload:[{contentString:a}]}),createMedia:(t,r,a)=>({resourceType:"Media",status:"completed",subject:(0,Er.createReference)(t),operator:(0,Er.createReference)(r),issued:new Date().toISOString(),content:a})})}var Ue=require("@mantine/core"),Os=require("@medplum/core"),L=m(require("react"));var Es=(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 hd(e){let o=T(),t=re(e.value),[r,a]=(0,L.useState)(void 0),[n,f]=(0,L.useState)(),[s,l]=(0,L.useState)(),[i,u]=(0,L.useState)();function d(){l(void 0)}function c(){f(void 0)}let y=(0,L.useRef)();if(y.current=i,(0,L.useEffect)(()=>{o.requestSchema("PlanDefinition").then(a).catch(console.log)},[o]),(0,L.useEffect)(()=>(u(Pd(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 b(M,D){u({...y.current,[M]:D})}return L.default.createElement("div",null,L.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(i)},L.default.createElement(Ue.TextInput,{label:"Plan Title",defaultValue:i.title,onChange:M=>b("title",M.currentTarget.value)}),L.default.createElement(Ls,{actions:i.action||[],selectedKey:n,setSelectedKey:f,hoverKey:s,setHoverKey:l,onChange:M=>b("action",M)}),L.default.createElement(Ue.Button,{type:"submit"},"Save")))}function Ls(e){let{classes:o}=Es(),t=(0,L.useRef)();t.current=e.actions;function r(f){e.onChange(t.current.map(s=>s.id===f.id?f:s))}function a(f){e.onChange([...t.current,f]),e.setSelectedKey(f.id)}function n(f){e.onChange(t.current.filter(s=>s!==f))}return L.default.createElement("div",{className:o.section},e.actions.map(f=>L.default.createElement("div",{key:f.id},L.default.createElement(yd,{action:f,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:r,onRemove:()=>n(f)}))),L.default.createElement("div",{className:o.bottomActions},L.default.createElement(Ue.Anchor,{href:"#",onClick:f=>{U(f),a({id:Ns()})}},"Add action")))}function yd(e){let{classes:o,cx:t}=Es(),{action:r}=e,a=bd(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){U(u),e.setHoverKey(e.action.id)}let i=t(o.section,{[o.editing]:n,[o.hovering]:f&&!n});return L.default.createElement("div",{"data-testid":r.id,className:i,onClick:s,onMouseOver:l},n?L.default.createElement(vd,{action:r,actionType:a,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):L.default.createElement(Cd,{action:r,actionType:a}),L.default.createElement("div",{className:o.bottomActions},L.default.createElement(Ue.Anchor,{href:"#",onClick:u=>{u.preventDefault(),e.onRemove()}},"Remove")))}var Mf={path:"PlanDefinition.action.timing[x]",min:0,max:"1",type:[{code:"dateTime"},{code:"Period"},{code:"Range"},{code:"Timing"}]};function Cd(e){let{action:o,actionType:t}=e,[r,a]=Rs(o);return L.default.createElement("div",null,L.default.createElement("div",null,o.title||"Untitled"," ",t&&`(${t})`),o.definitionCanonical&&L.default.createElement("div",null,L.default.createElement(Wo,{value:{reference:o.definitionCanonical}})),r&&L.default.createElement("div",null,L.default.createElement(Me,{property:Mf,propertyType:a,value:r})))}function vd(e){let{action:o}=e,[t,r]=(0,L.useState)(e.actionType);function a(n,f){e.onChange({...o,[n]:f})}return L.default.createElement(Ue.Stack,{spacing:"xl"},L.default.createElement(Ue.TextInput,{name:`actionTitle-${o.id}`,label:"Title",defaultValue:o.title,onChange:n=>a("title",n.currentTarget.value)}),L.default.createElement(Ue.TextInput,{name:`actionDescription-${o.id}`,label:"Description",defaultValue:o.description,onChange:n=>a("description",n.currentTarget.value)}),L.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&&L.default.createElement(Ls,{actions:o.action,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:n=>a("action",n)}),(()=>{switch(t){case"appointment":return L.default.createElement(Fa,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:o,onChange:e.onChange});case"lab":return L.default.createElement(Fa,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});case"questionnaire":return L.default.createElement(Fa,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:o,onChange:e.onChange});case"task":return L.default.createElement(Fa,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});default:return null}})(),L.default.createElement(Je,{title:"Timing",description:"When the action should take place."},L.default.createElement(Sd,{name:"timing-"+o.id,action:o,onChange:e.onChange})))}function Fa(e){let{id:o,definitionCanonical:t}=e.action,r=t?.startsWith(e.resourceType+"/")?{reference:t}:void 0;return L.default.createElement(Dr,{name:o,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:a=>{a?e.onChange({...e.action,definitionCanonical:(0,Os.getReferenceString)(a)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function Sd(e){let o=e.action,t="timing",[r,a]=Rs(o);return L.default.createElement(ho,{property:Mf,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(n,f)=>{e.onChange(Et(o,t,f??t,Mf,n))}})}function bd(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task"}function Rs(e){return Xe({type:"PlanDefinitionAction",value:e},"timing")}var Af=1;function Ns(e){if(e){if(e.startsWith("id-")){let o=parseInt(e.substring(3),10);isNaN(o)||(Af=Math.max(Af,o+1))}return e}return"id-"+Af++}function Pd(e){return{...e,action:Hs(e.action)}}function Hs(e){if(e)return e.map(o=>({...o,id:Ns(o.id),action:Hs(o.action)}))}var $=require("@mantine/core"),Oa=require("@medplum/core");var v=m(require("react"));var Oe=require("@mantine/core"),ue=require("@medplum/core"),pe=m(require("react"));var rt=require("@medplum/core"),Lr=(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))(Lr||{});function Ff(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=Vs(o,r.question);if(r.operator==="exists"&&!r.answerBoolean&&!a?.length){if(t==="any")return!0;continue}let{anyMatch:n,allMatch:f}=kd(r,a,t);if(t==="any"&&n)return!0;if(t==="all"&&!f)return!1}return t!=="any"}function Of(e,o,t){return e.map(r=>{let a=t.answerOption?.find(f=>(0,rt.formatCoding)(f.valueCoding)===r||f[o]===r),n=(0,rt.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:a},"value");return{[o]:n?.value}})}function Vs(e,o){if(!Array.isArray(e))return;let t=e.find(r=>r.linkId===o);if(t)return t.answer;for(let r of e)if(r.item){let a=Vs(r.item,o);if(a)return a}}function Dd(e,o,t){if(t==="exists")return!!e===o.value;if(e){let r=t==="="||t==="!="?t?.replace("=","~"):t,[{value:a}]=(0,rt.evalFhirPathTyped)(`%actualAnswer ${r} %expectedAnswer`,[e],{actualAnswer:e,expectedAnswer:o});return a}else return!1}function kd(e,o,t){let r=o||[],a=(0,rt.getTypedPropertyValue)({type:"QuestionnaireItemEnableWhen",value:e},"answer[x]"),n=!1,f=!0;for(let s of r){let l=(0,rt.getTypedPropertyValue)({type:"QuestionnaireResponseItemAnswer",value:s},"value[x]"),{operator:i}=e;if(Dd(l,a,i)?n=!0:f=!1,t==="any"&&n)break}return{anyMatch:n,allMatch:f}}function wa(e){let o=e.item,t=e.index;function r(l,i){let u=i??0,d=e.currentResponseItems?.filter(y=>y.linkId===o.linkId)??[],c;Array.isArray(l)?c=l:c=Md(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=Rf(e.allResponses,o,e.index,e.groupSequence)??(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:f},"value");switch(a){case"boolean":return pe.default.createElement(yr,{key:e.item.linkId,title:e.item.text,htmlFor:e.item.linkId},pe.default.createElement(Oe.Checkbox,{id:e.item.linkId,name:e.item.linkId,defaultChecked:s?.value,onChange:l=>r({valueBoolean:l.currentTarget.checked},t)}));case"decimal":return pe.default.createElement(Oe.TextInput,{type:"number",step:"any",id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueDecimal:l.currentTarget.valueAsNumber},t)});case"integer":return pe.default.createElement(Oe.TextInput,{type:"number",step:1,id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueInteger:l.currentTarget.valueAsNumber},t)});case"date":return pe.default.createElement(Oe.TextInput,{type:"date",id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueDate:l.currentTarget.value},t)});case"dateTime":return pe.default.createElement(ao,{name:n,defaultValue:s?.value,onChange:l=>r({valueDateTime:l},t)});case"time":return pe.default.createElement(Oe.TextInput,{type:"time",id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueTime:l.currentTarget.value},t)});case"string":case"url":return pe.default.createElement(Oe.TextInput,{id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueString:l.currentTarget.value},t)});case"text":return pe.default.createElement(Oe.Textarea,{id:n,name:n,defaultValue:s?.value,onChange:l=>r({valueString:l.currentTarget.value},t)});case"attachment":return pe.default.createElement(mr,{name:n,defaultValue:s?.value,onChange:l=>r({valueAttachment:l},t)});case"reference":return pe.default.createElement(gt,{name:n,targetTypes:Fd(o),defaultValue:s?.value,onChange:l=>r({valueReference:l},t)});case"quantity":return pe.default.createElement(Ye,{name:n,defaultValue:s?.value,onChange:l=>r({valueQuantity:l},t),disableWheel:!0});case"choice":case"open-choice":return wd(o)?pe.default.createElement(Td,{name:n,item:o,initial:f,allResponses:e.allResponses,index:t,groupSequence:e.groupSequence,onChangeAnswer:l=>r(l,t)}):pe.default.createElement(Bd,{name:n,item:o,initial:f,allResponses:e.allResponses,onChangeAnswer:l=>r(l,t)});default:return null}}function Td(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(Ef(l))}let f=Rf(e.allResponses,t,e.index,e.groupSequence)??(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value");if(t.repeats){let{propertyName:s,data:l}=Od(e.item),i=Ed(e.allResponses,t,e.groupSequence);return pe.default.createElement(Oe.MultiSelect,{data:l,placeholder:"Select items",searchable:!0,defaultValue:i||[Ef(a)],onChange:u=>{let d=Of(u,s,t);e.onChangeAnswer(d)}})}return pe.default.createElement(Oe.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)??Ef(a),data:n})}function Bd(e){let{name:o,item:t,initial:r,onChangeAnswer:a,allResponses:n}=e;return t.answerValueSet?pe.default.createElement(zo,{elementDefinition:{binding:{valueSet:t.answerValueSet}},onChange:a}):pe.default.createElement(Ad,{name:o,item:t,initial:r,allResponses:n,onChangeAnswer:a})}function Ad(e){let{name:o,item:t,initial:r,onChangeAnswer:a}=e,n=ue.globalSchema.types.QuestionnaireItemAnswerOption.properties["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],y=`${o}-option-${d}`,b=(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:c},"value");f&&(0,ue.stringify)(b)===(0,ue.stringify)(f)&&(l=y),s.push([y,b])}let i=Rf(e.allResponses,t,e.index,e.groupSequence),u=Ld(s,i);return pe.default.createElement(Oe.Radio.Group,{name:o,value:u??l,onChange:d=>{let c=s.find(y=>y[0]===d);if(c){let y=c[1],b="value"+(0,ue.capitalize)(y.type);a({[b]:y.value})}}},s.map(([d,c])=>pe.default.createElement(Oe.Radio,{key:d,id:d,value:d,label:pe.default.createElement(Me,{property:n,propertyType:c.type,value:c.value})})))}function Md(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 Fd(e){if(e.type!=="reference")return[];let o=e.extension?.filter(r=>r.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource");return!o||o.length===0?[]:o.map(r=>r.valueCodeableConcept?.coding?.[0]?.code)}function wd(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function Od(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:qs(n,r),label:qs(n,r)}));return{propertyName:r,data:a}}function qs(e,o){return(0,ue.formatCoding)(e.valueCoding)||e[o]?.toString()}function Ef(e){if(e)return e.type==="CodeableConcept"?e.value.coding[0].display:e.type==="Coding"?e.value.display:e.value.toString()}function Lf(e,o){let t=[];for(let r of e)r.linkId===o&&t.push(r),r.item&&(t=t.concat(Lf(r.item,o)));return t}function Us(e){return(0,ue.getTypedPropertyValue)({type:"QuestionnaireItemAnswer",value:e},"value")}function Rf(e,o,t=0,r=0){let n=Lf(e,o.linkId??"")[r]?.answer;return Us(n?.[t]??{})}function Ed(e,o,t=0){let a=Lf(e,o.linkId??"")[t]?.answer;return a?a.map(f=>Us(f)).map(f=>(0,ue.formatCoding)(f?.value)||f?.value):[]}function Ld(e,o){return e.find(t=>(0,ue.deepEquals)(t[1].value,o?.value))?.[0]}var Rd=(0,$.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 Nd(e){let o=T(),t=re(e.questionnaire),[r,a]=(0,v.useState)(),[n,f]=(0,v.useState)(),[s,l]=(0,v.useState)(),[i,u]=(0,v.useState)();function d(){u(void 0)}function c(){l(void 0)}return(0,v.useEffect)(()=>{o.requestSchema("Questionnaire").then(a).catch(console.log)},[o]),(0,v.useEffect)(()=>(f(Ud(t??{resourceType:"Questionnaire"})),document.addEventListener("mouseover",d),document.addEventListener("click",c),()=>{document.removeEventListener("mouseover",d),document.removeEventListener("click",c)}),[t]),!r||!n?null:v.default.createElement("div",null,v.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(n)},v.default.createElement(Gs,{item:n,selectedKey:s,setSelectedKey:l,hoverKey:i,setHoverKey:u,onChange:f}),v.default.createElement($.Button,{type:"submit"},"Save")))}function Gs(e){let{classes:o,cx:t}=Rd(),r=e.item,a=e.item,n=(0,Oa.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,v.useRef)();u.current=e.item;function d(I){U(I),e.setSelectedKey(e.item.id)}function c(I){U(I),e.setHoverKey(e.item.id)}function y(I){let X=u.current;e.onChange({...X,item:X.item?.map(ve=>ve.id===I.id?I:ve)})}function b(I){e.onChange({...e.item,item:[...e.item.item??[],I]})}function M(I){e.onChange({...e.item,item:e.item.item?.filter(X=>X!==I)})}function D(I,X){e.onChange({...u.current,[I]:X})}function A(I){e.onChange({...e.item,...I})}function g(I){e.onChange({...e.item,item:e.item.item?.map(X=>X===I?{...X,repeats:!X.repeats}:X)})}function z(I,X){let ve=zd(e.item.item,I,X);e.onChange({...e.item,item:ve})}let k=t(o.section,{[o.editing]:l,[o.hovering]:i&&!l});return v.default.createElement("div",{"data-testid":a.linkId,className:k,onClick:d,onMouseOver:c},v.default.createElement("div",{className:o.questionBody},l?v.default.createElement(v.default.Fragment,null,n&&v.default.createElement($.TextInput,{size:"xl",defaultValue:r.title,onChange:I=>D("title",I.currentTarget.value)}),!n&&v.default.createElement($.Textarea,{autosize:!0,minRows:2,defaultValue:a.text,onChange:I=>D("text",I.currentTarget.value)}),a.type==="reference"&&v.default.createElement(qd,{item:a,onChange:I=>D("extension",I)}),Ff(a)&&v.default.createElement(Hd,{item:a,onChange:I=>A(I)})):v.default.createElement(v.default.Fragment,null,r.title&&v.default.createElement($.Title,null,r.title),a.text&&v.default.createElement("div",null,a.text),!f&&v.default.createElement(wa,{item:a,index:0,allResponses:[],onChange:()=>{}}))),a.item?.map((I,X)=>v.default.createElement("div",{key:I.id},v.default.createElement(Gs,{item:I,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,isFirst:X===0,isLast:X===(e.item.item??[]).length-1,setHoverKey:e.setHoverKey,onChange:y,onRemove:()=>M(I),onRepeatable:g,onMoveUp:()=>z(X,-1),onMoveDown:()=>z(X,1)}))),!f&&v.default.createElement("div",{className:o.topActions},l?v.default.createElement(v.default.Fragment,null,v.default.createElement($.TextInput,{size:"xs",className:o.linkIdInput,defaultValue:a.linkId,onChange:I=>D("linkId",I.currentTarget.value)}),!f&&v.default.createElement($.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:a.type,onChange:I=>D("type",I.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"}]})):v.default.createElement("div",null,s)),!n&&v.default.createElement($.Box,{className:o.movementActions},v.default.createElement($.Box,{className:o.columnAlignment},!e.isFirst&&v.default.createElement($.Anchor,{href:"#",onClick:I=>{I.preventDefault(),e.onMoveUp&&e.onMoveUp()}},v.default.createElement(Xa,{"data-testid":"up-button",size:15,className:o.movementIcons})),!e.isLast&&v.default.createElement($.Anchor,{href:"#",onClick:I=>{I.preventDefault(),e.onMoveDown&&e.onMoveDown()}},v.default.createElement(Wa,{"data-testid":"down-button",size:15,className:o.movementIcons})))),v.default.createElement("div",{className:o.bottomActions},f&&v.default.createElement(v.default.Fragment,null,v.default.createElement($.Anchor,{href:"#",onClick:I=>{I.preventDefault(),b({id:at(),linkId:Vf("q"),type:"string",text:"Question"})}},"Add item"),v.default.createElement($.Anchor,{href:"#",onClick:I=>{I.preventDefault(),b({id:at(),linkId:Vf("g"),type:"group",text:"Group"})}},"Add group")),n&&v.default.createElement($.Anchor,{href:"#",onClick:I=>{I.preventDefault(),b(Qd())}},"Add Page"),l&&!n&&v.default.createElement(v.default.Fragment,null,v.default.createElement($.Anchor,{href:"#",onClick:I=>{I.preventDefault(),e.onRepeatable&&e.onRepeatable(a)}},a.repeats?"Remove Repeatable":"Make Repeatable"),v.default.createElement($.Anchor,{href:"#",onClick:I=>{I.preventDefault(),e.onRemove&&e.onRemove()}},"Remove"))))}function Hd(e){let o=Oa.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],t=e.item.answerOption??[];return v.default.createElement("div",null,e.item.answerValueSet!==void 0?v.default.createElement($.TextInput,{placeholder:"Enter Value Set",defaultValue:e.item.answerValueSet,onChange:r=>e.onChange({...e.item,answerValueSet:r.target.value})}):v.default.createElement(Vd,{options:t,property:o,item:e.item,onChange:e.onChange}),v.default.createElement($.Box,{display:"flex"},v.default.createElement($.Anchor,{href:"#",onClick:r=>{U(r),e.onChange({...e.item,answerValueSet:void 0,answerOption:[...t,{id:at()}]})}},"Add choice"),v.default.createElement($.Space,{w:"lg"}),v.default.createElement($.Anchor,{href:"#",onClick:r=>{U(r),e.onChange({...e.item,answerOption:[],answerValueSet:""})}},"Add value set")))}function Vd(e){return v.default.createElement("div",null,e.options.map(o=>{let[t,r]=Xe({type:"QuestionnaireItemAnswerOption",value:o},"value");return v.default.createElement("div",{key:o.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},v.default.createElement("div",null,v.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})}})),v.default.createElement("div",null,v.default.createElement($.Anchor,{href:"#",onClick:a=>{U(a),e.onChange({...e.item,answerOption:e.options.filter(n=>n.id!==o.id)})}},"Remove")))}))}function qd(e){let o=e.item.extension??[],t=o.filter(r=>r.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource")??[];return v.default.createElement(v.default.Fragment,null,t.map(r=>v.default.createElement("div",{key:r.id},v.default.createElement("div",{style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},v.default.createElement("div",null,v.default.createElement($.TextInput,{key:r.id,name:"value[x]",value:r.valueCodeableConcept?.coding?.[0].code??"",onChange:a=>{a.preventDefault();let n=[...o],f=n.findIndex(l=>l.id===r.id),s=n[f].valueCodeableConcept?.coding?.[0]??[];s.display=a.target.value,s.code=a.target.value,e.onChange(n)}}))),v.default.createElement("div",null,v.default.createElement($.Anchor,{href:"#",onClick:a=>{U(a),e.onChange(o.filter(n=>n.id!==r.id))}},"Remove")))),v.default.createElement($.Anchor,{href:"#",onClick:r=>{U(r),e.onChange([...o,{id:at(),url:"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource",valueCodeableConcept:{coding:[{system:"http://hl7.org/fhir/fhir-types",display:"",code:""}]}}])}},"Add Resource"))}var Nf=1,Hf=1;function Vf(e){return e+Nf++}function at(){return"id-"+Hf++}function Ud(e){return{...e,id:e.id||at(),item:Qs(e.item)}}function Qs(e){if(e)return e.forEach(o=>{o.id?.match(/^id-\d+$/)&&(Hf=Math.max(Hf,parseInt(o.id.substring(3),10)+1)),o.linkId?.match(/^q\d+$/)&&(Nf=Math.max(Nf,parseInt(o.linkId.substring(1),10)+1))}),e.map(o=>({...o,id:o.id||at(),item:Qs(o.item),answerOption:Gd(o.answerOption)}))}function Gd(e){if(e)return e.map(o=>({...o,id:o.id||at()}))}function Qd(){return{id:at(),linkId:Vf("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 zd(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 Pe=require("@mantine/core"),St=require("@medplum/core"),O=m(require("react"));function Uf(e){let o=T(),t=o.getProfile(),[r,a]=(0,O.useState)(),n=re(e.questionnaire),[f,s]=(0,O.useState)(),[l,i]=(0,O.useState)(0),u=jd(n?.item??[]),d=()=>i(b=>b>=u?b:b+1),c=()=>i(b=>b<=0?b:b-1);(0,O.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>o.requestSchema("QuestionnaireResponse")).then(a).catch(console.log)},[o]),(0,O.useEffect)(()=>{s(n?Xd(n):void 0)},[n]);function y(b){let M=f?.item??[],A={resourceType:"QuestionnaireResponse",item:Js(M,b)};s(A)}return!r||!n?null:O.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&f&&e.onSubmit({...f,questionnaire:(0,St.getReferenceString)(n),subject:e.subject,source:(0,St.createReference)(t),authored:new Date().toISOString(),status:"completed"})}},n.title&&O.default.createElement(Pe.Title,null,n.title),n.item&&O.default.createElement(Ws,{items:n.item??[],allResponses:f?.item??[],onChange:y,renderPages:u>1,activePage:l}),O.default.createElement(Pe.Group,{position:"right",mt:"xl"},O.default.createElement(Wd,{activePage:l,numberOfPages:u,nextStep:d,prevStep:c,submitButtonText:e.submitButtonText})))}function Ws(e){let[o,t]=(0,O.useState)(Gf(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?O.default.createElement(Pe.Stepper.Step,{label:n.text,key:n.linkId},O.default.createElement(zs,{key:`${n.linkId}-${f}`,item:n,index:f,allResponses:e.allResponses,currentResponseItems:o,groupSequence:e.groupSequence,setResponseItem:r})):O.default.createElement(zs,{key:`${n.linkId}-${f}`,item:n,index:f,groupSequence:e.groupSequence,allResponses:e.allResponses,currentResponseItems:o,setResponseItem:r}));return e.renderPages?O.default.createElement(Pe.Stepper,{active:e.activePage??0,allowNextStepsSelect:!1,p:6},a):O.default.createElement(Pe.Stack,null,a)}function zs(e){return wf(e.item,e.allResponses)?e.item.type==="display"?O.default.createElement("p",{key:e.item.linkId},e.item.text):e.item.type==="group"?O.default.createElement(qf,{key:e.item.linkId,item:e.item,allResponses:e.allResponses,currentResponseItems:e.currentResponseItems,groupSequence:e.groupSequence,onChange:o=>e.setResponseItem(o.id,o)}):O.default.createElement(Je,{key:e.item.linkId,htmlFor:e.item.linkId,title:e.item.text??""},O.default.createElement(qf,{item:e.item,allResponses:e.allResponses,currentResponseItems:e.currentResponseItems,groupSequence:e.groupSequence,onChange:o=>e.setResponseItem(o.id,o)})):null}function qf(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:Yd(f,n),linkId:o.linkId,text:o.text,item:r})}return o.type==="group"?O.default.createElement(_d,{key:e.item.linkId,text:o.text??"",item:o??[],allResponses:e.allResponses,onChange:t}):O.default.createElement(Zd,{item:e.item,key:e.item.linkId},({index:r})=>O.default.createElement(wa,{...e,index:r}))}function Wd(e){return e.activePage===0&&e.numberOfPages<=0?O.default.createElement(Pe.Button,{type:"submit"},e.submitButtonText??"OK"):e.activePage>=e.numberOfPages?O.default.createElement(O.default.Fragment,null,O.default.createElement(Pe.Button,{onClick:e.prevStep},"Back"),O.default.createElement(Pe.Button,{onClick:e.nextStep,type:"submit"},e.submitButtonText??"OK")):e.activePage===0?O.default.createElement(O.default.Fragment,null,O.default.createElement(Pe.Button,{onClick:e.nextStep},"Next")):O.default.createElement(O.default.Fragment,null,O.default.createElement(Pe.Button,{onClick:e.prevStep},"Back"),O.default.createElement(Pe.Button,{onClick:e.nextStep},"Next"))}function Xd(e){return{resourceType:"QuestionnaireResponse",questionnaire:(0,St.getReferenceString)(e),item:Gf(e.item)}}function Gf(e){return e?.map(Jd)??[]}function Jd(e){return{id:Xs(),linkId:e.linkId,text:e.text,item:Gf(e.item),answer:e.initial?.map(Kd)??[]}}var $d=1;function Xs(){return"id-"+$d++}function Kd(e){return{...e}}function jd(e){return e.filter(t=>(0,St.getExtension)(t,"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl")?.valueCodeableConcept?.coding?.[0]?.code==="page").length>0?e.length:0}function _d(e){let[o,t]=(0,O.useState)(ec(e.item,e.allResponses)),r=e.item;return O.default.createElement(O.default.Fragment,null,[...Array(o)].map((a,n)=>O.default.createElement("div",{key:n},O.default.createElement("h3",null,e.text),O.default.createElement(Ws,{items:r.item??[],allResponses:e.allResponses,groupSequence:n,onChange:f=>e.onChange(f,n)}))),e.item.repeats&&O.default.createElement(Pe.Anchor,{onClick:()=>t(a=>a+1)},"Add Group"))}function Zd(e){let[o,t]=(0,O.useState)(1),r=e.item?.repeats&&e.item.type!=="choice"&&e.item.type!=="open-choice";return O.default.createElement(O.default.Fragment,null,[...Array(o)].map((a,n)=>O.default.createElement(O.default.Fragment,{key:`${e.item.linkId}-${n}`},e.children({index:n}))),r&&O.default.createElement(Pe.Anchor,{onClick:()=>t(a=>a+1)},"Add Item"))}function Yd(e,o){return e.length===0||e.length<o+1?Xs():e[o].id}function ec(e,o){let t=o.filter(r=>r.linkId===e.linkId).length;return t>0?t:1}function oc(e,o){let t=Js(e.item??[],o.item??[]);return{...o,item:t,answer:o.answer&&o.answer.length>0?o.answer:e.answer}}function tc(e,o){let t=[],r=Math.max(e.length,o.length);for(let a=0;a<r;a++)e[a]&&o[a]?t.push(oc(e[a],o[a])):o[a]&&t.push(o[a]);return t}function Js(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(tc(a,n))}return t}var ee=require("@mantine/core"),Rr=require("@medplum/core");var V=m(require("react"));var rc=(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"}})),ac=["gender","age","gestationalAge","context","appliesTo","category"],nc={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function fc(e){e=Object.assign(nc,e);let o=e.definition,[t,r]=(0,V.useState)([]),[a,n]=(0,V.useState)(1),[f,s]=(0,V.useState)(1);return(0,V.useEffect)(()=>{let b=sc(o,s);r(ic(b.qualifiedInterval||[],n))},[o]),V.default.createElement(le,{testid:"reference-range-editor",onSubmit:l},V.default.createElement(ee.Stack,null,t.map(b=>V.default.createElement($s,{unit:dc(o.quantitativeDetails?.unit),onChange:d,onAdd:c,onRemove:y,onRemoveGroup:u,key:`group-${b.id}`,intervalGroup:b}))),V.default.createElement(ee.ActionIcon,{title:"Add Group",size:"sm",onClick:b=>{U(b),i({id:`group-id-${a}`,filters:{},intervals:[]}),n(M=>M+1)}},V.default.createElement(Dt,null)),V.default.createElement(ee.Group,{position:"right"},V.default.createElement(ee.Button,{type:"submit"},"Save")));function l(){let b=t.flatMap(M=>M.intervals).filter(M=>!cc(M));e.onSubmit({...o,qualifiedInterval:b})}function i(b){r(M=>[...M,b])}function u(b){r(M=>M.filter(D=>D.id!==b.id))}function d(b,M){r(D=>{D=[...D];let A=D.find(z=>z.id===b),g=A?.intervals.findIndex(z=>z.id===M.id);return g!==void 0&&A?.intervals[g]&&(A.intervals[g]=M),D})}function c(b,M){M.id===void 0&&(M.id=`id-${f}`,s(D=>D+1)),r(D=>{D=[...D];let A=D.findIndex(g=>g.id===b);if(A!==-1){let g={...D[A]};M={...M,...g.filters},g.intervals=[...g.intervals,M],D[A]=g}return D})}function y(b,M){r(D=>{D=[...D];let A=D.find(g=>g.id===b);return A&&(A.intervals=A.intervals.filter(g=>g.id!==M.id)),D})}}function $s(e){let{intervalGroup:o,unit:t}=e,{classes:r}=rc();return V.default.createElement(Lo,{"data-testid":o.id,className:r.section},V.default.createElement(ee.Stack,{spacing:"lg"},V.default.createElement(ee.Group,{position:"right"},V.default.createElement(ee.ActionIcon,{title:"Remove Group","data-testid":`remove-group-button-${o.id}`,key:`remove-group-button-${o.id}`,size:"sm",onClick:a=>{U(a),e.onRemoveGroup(o)}},V.default.createElement(Qo,null))),V.default.createElement(lc,{intervalGroup:o,onChange:e.onChange}),V.default.createElement(ee.Divider,null),o.intervals.map(a=>V.default.createElement(ee.Stack,{key:`interval-${a.id}`,spacing:"xs"},V.default.createElement(ee.Group,null,V.default.createElement(ee.TextInput,{key:`condition-${a.id}`,"data-testid":`condition-${a.id}`,defaultValue:a.condition,label:"Condition: ",size:"sm",onChange:n=>{U(n),e.onChange(o.id,{...a,condition:n.currentTarget.value.trim()})}}),V.default.createElement(ee.ActionIcon,{title:"Remove Interval",size:"sm",key:`remove-interval-${a.id}`,"data-testid":`remove-interval-${a.id}`,onClick:n=>{U(n),e.onRemove(o.id,a)}},V.default.createElement(Qo,null))),V.default.createElement(Vt,{onChange:n=>{e.onChange(o.id,{...a,range:n})},key:`range-${a.id}`,name:`range-${a.id}`,defaultValue:a.range}))),V.default.createElement(ee.ActionIcon,{title:"Add Interval",size:"sm",onClick:a=>{U(a),e.onAdd(o.id,{range:{low:{unit:t},high:{unit:t}}})}},V.default.createElement(Dt,null))))}function lc(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 V.default.createElement(ee.Stack,{style:{maxWidth:"50%"}},V.default.createElement(ee.Group,null,V.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})}}})),V.default.createElement(ee.Group,{spacing:"xs"},V.default.createElement(ee.Text,{component:"label",htmlFor:`div-age-${o.id}`},"Age:"),V.default.createElement("div",{id:`div-age-${o.id}`},V.default.createElement(Vt,{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})}}))),V.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"}]}})}}}),V.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 sc(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 ic(e,o){let t=1,r={};for(let a of e){let n=uc(a);n in r||(r[n]={id:`group-id-${t++}`,filters:Object.fromEntries(ac.map(f=>[f,a[f]])),intervals:[]}),r[n].intervals.push(a)}return o(t),Object.values(r)}function uc(e){return[`gender=${e.gender}`,`age=${(0,Rr.formatRange)(e.age)}`,`gestationalAge=${(0,Rr.formatRange)(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map(t=>t.text).join("+")}`,`category=${e.category}`].join(":")}function dc(e){return e&&((0,Rr.getCodeBySystem)(e,"http://unitsofmeasure.org")||e.text)}function cc(e){return e.range?.low?.value===void 0&&e.range?.high?.value===void 0}var Co=require("@mantine/core"),Ea=require("@medplum/core");var xe=m(require("react"));function mc(e){let o=T(),t=re(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(Co.Grid,null,t.action?.map((i,u)=>{let d=i.resource&&l(i.resource),c=d?.input?.[0]?.valueReference,y=d?.output?.[0]?.valueReference;return xe.default.createElement(xe.default.Fragment,{key:`action-${u}`},xe.default.createElement(Co.Grid.Col,{span:1,p:"md"},d?.status==="completed"?xe.default.createElement(Ya,null):xe.default.createElement(hn,{color:"gray"})),xe.default.createElement(Co.Grid.Col,{span:9,p:"xs"},xe.default.createElement(Co.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(mo,{value:d?.meta?.author}),"\xA0on\xA0",(0,Ea.formatDateTime)(d?.meta?.lastUpdated)),xe.default.createElement("div",null,"Status: ",xe.default.createElement(Br,{status:d?.status||"unknown"}))),xe.default.createElement(Co.Grid.Col,{span:2,p:"md"},c&&!y&&xe.default.createElement(Co.Button,{onClick:()=>e.onStart(d,c)},"Start"),c&&y&&xe.default.createElement(Co.Button,{onClick:()=>e.onEdit(d,c,y)},"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,Ea.getReferenceString)(u.resource))return u.resource}}var _s=require("@mantine/core"),De=m(require("react"));var Ks=require("@medplum/core");function La(e,o){let t=pc(e,o);return xc(t,e,o)}function pc(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,y=s[d],b=s[c],M,D=0;i===-l||i!==l&&b.i<y.i?(D=y.i,M=y):(D=b.i+1,M=b),s[c]=void 0;let A=D-i,g={i:D,j:A,prev:Ic(M),snake:!1};for(;D<t&&A<r&&e[D]===o[A];)D++,A++;if(D>g.i&&(g={i:D,j:A,prev:g,snake:!0}),s[u]=g,D>=t&&A>=r)return s[u]}s[f+l-1]=void 0}}function xc(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 Ic(e){return e&&!e.snake&&e.prev?e.prev:e}function js(e){let o=e.entry.filter(r=>!!r.resource).map(r=>({meta:r.resource?.meta,lines:(0,Ks.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 gc(t,o),hc(t),t}function gc(e,o){for(let t=1;t<o.length;t++){let r=La(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 hc(e){let o=0;for(;o<e.length;){let t=o;for(;t<e.length&&e[t].id===e[o].id;)e[t].span=-1,t++;e[o].span=t-o,o=t}}var yc=(0,_s.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 Cc(e){let{classes:o}=yc(),t=T(),[r,a]=(0,De.useState)(e.history);if((0,De.useEffect)(()=>{!e.history&&e.resourceType&&e.id&&t.readHistory(e.resourceType,e.id).then(a).catch(console.log)},[t,e.history,e.resourceType,e.id]),!r)return De.default.createElement("div",null,"Loading...");let n=r.entry?.[0]?.resource;if(!n)return null;let f=js(r);return De.default.createElement("div",{className:o.container},De.default.createElement("table",{className:o.root},De.default.createElement("tbody",null,f.map((s,l)=>De.default.createElement("tr",{key:"row-"+l,className:s.span>0?o.startRow:o.normalRow},s.span>0&&De.default.createElement(De.default.Fragment,null,De.default.createElement("td",{className:o.author,rowSpan:s.span},De.default.createElement(Ro,{value:s.meta.author,link:!0})),De.default.createElement("td",{className:o.dateTime,rowSpan:s.span},De.default.createElement(ke,{to:vc(n,s.meta.versionId)},Zs(s.meta.lastUpdated)))),De.default.createElement("td",{className:o.lineNumber},l+1),De.default.createElement("td",{className:o.line},De.default.createElement("pre",{className:o.pre},s.value)))))))}function vc(e,o){return`/${e.resourceType}/${e.id}/_history/${o}`}function Zs(e){let o=Math.floor((Date.now()-Date.parse(e))/1e3),t=Math.floor(o/31536e3);if(t>0)return Yt(t,"year");let r=Math.floor(o/2592e3);if(r>0)return Yt(r,"month");let a=Math.floor(o/86400);if(a>0)return Yt(a,"day");let n=Math.floor(o/3600);if(n>0)return Yt(n,"hour");let f=Math.floor(o/60);return f>0?Yt(f,"minute"):Yt(o,"second")}function Yt(e,o){return`${e} ${e===1?o:o+"s"} ago`}var Ys=require("@mantine/core"),Qf=require("@medplum/core"),Uo=m(require("react"));var Sc=(0,Ys.createStyles)(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function bc(e){let o=e.original,t=e.revised;e.ignoreMeta&&(o={...o,meta:void 0},t={...t,meta:void 0});let r=(0,Qf.stringify)(o,!0).match(/[^\r\n]+/g),a=(0,Qf.stringify)(t,!0).match(/[^\r\n]+/g),n=La(r,a);return Uo.default.createElement("pre",{style:{color:"gray"}},n.map((f,s)=>Uo.default.createElement(Pc,{key:"delta"+s,delta:f})))}function Pc(e){let{classes:o}=Sc();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 ei=require("@mantine/core"),Ra=require("@medplum/core"),Ie=m(require("react"));function Dc(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(ei.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(kc,{key:"entry-"+n,entry:a})))):Ie.default.createElement("div",null,"Loading...")}function kc(e){let{response:o,resource:t}=e.entry;return t?Ie.default.createElement("tr",null,Ie.default.createElement("td",null,Ie.default.createElement(Ro,{value:t.meta?.author,link:!0})),Ie.default.createElement("td",null,(0,Ra.formatDateTime)(t.meta?.lastUpdated)),Ie.default.createElement("td",null,Ie.default.createElement(ke,{to:Tc(t)},t.meta?.versionId))):Ie.default.createElement("tr",null,Ie.default.createElement("td",{colSpan:3},(0,Ra.normalizeErrorString)(o?.outcome)))}function Tc(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}var nt=require("@mantine/core"),ti=require("@medplum/core"),j=m(require("react"));var Bc=(0,nt.createStyles)(e=>({container:{display:"flex",minHeight:400},info:{minWidth:300,padding:20,borderRight:`1px solid ${e.colors.gray[3]}`},selection:{minWidth:300,padding:20}}));function Ac(e){let{classes:o}=Bc(),t=T(),r=re(e.schedule),a=re(e.questionnaire),[n,f]=(0,j.useState)(),s=(0,j.useRef)();s.current=n;let[l,i]=(0,j.useState)(ma()),[u,d]=(0,j.useState)(),[c,y]=(0,j.useState)(),[b,M]=(0,j.useState)();if((0,j.useEffect)(()=>{r?(f([]),t.searchResources("Slot",new URLSearchParams([["_count",(30*24).toString()],["schedule",(0,ti.getReferenceString)(r)],["start","gt"+Mc(l)],["start","lt"+Fc(l)]])).then(f).catch(console.log)):f(void 0)},[t,r,l]),!r||!n||!a)return null;let D=r.actor?.[0];return j.default.createElement("div",{className:o.container,"data-testid":"scheduler"},j.default.createElement("div",{className:o.info},D&&j.default.createElement(Ne,{value:D,size:"xl"}),D&&j.default.createElement(nt.Text,{size:"xl",weight:500},j.default.createElement(mo,{value:D})),j.default.createElement("p",null,"1 hour"),u&&j.default.createElement("p",null,u.toLocaleDateString()),c&&j.default.createElement("p",null,oi(new Date(c.start)))),j.default.createElement("div",{className:o.selection},!u&&j.default.createElement("div",null,j.default.createElement("h3",null,"Select date"),j.default.createElement(af,{slots:n,onChangeMonth:i,onClick:d})),u&&!c&&j.default.createElement("div",null,j.default.createElement("h3",null,"Select time"),j.default.createElement(nt.Stack,null,n.map(A=>{let g=new Date(A.start);return g.getTime()>u.getTime()&&g.getTime()<u.getTime()+24*3600*1e3&&j.default.createElement("div",{key:A.id},j.default.createElement(nt.Button,{variant:"outline",style:{width:150},onClick:()=>y(A)},oi(g)))}))),u&&c&&!b&&j.default.createElement(Uf,{questionnaire:a,submitButtonText:"Next",onSubmit:M}),u&&c&&b&&j.default.createElement("div",null,j.default.createElement("h3",null,"You're all set!"),j.default.createElement("p",null,"Check your email for a calendar invite."))))}function Mc(e){return ri(e.getTime())}function Fc(e){return ri(e.getTime()+31*24*60*60*1e3)}function ri(e){return new Date(Math.max(Date.now(),e)).toISOString()}function oi(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}var Nr=require("@medplum/core"),ai=m(require("react"));function wc(e){return ai.default.createElement(Ho,{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,Nr.createReference)(o)],subject:o.subject,sender:(0,Nr.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",basedOn:[(0,Nr.createReference)(o)],subject:o.subject,operator:(0,Nr.createReference)(t),issued:new Date().toISOString(),content:r})})}var li=require("@medplum/core"),So=m(require("react"));var Ee=require("@mantine/core"),ni=require("@medplum/core"),$e=m(require("react"));function Na(e){let o=T(),[t,r]=(0,$e.useState)();return $e.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,ni.normalizeOperationOutcome)(n))}}},$e.default.createElement(Ee.Center,{sx:{flexDirection:"column"}},$e.default.createElement(qo,{size:32}),$e.default.createElement(Ee.Title,null,"Create project")),$e.default.createElement(Ee.Stack,{spacing:"xl"},$e.default.createElement(Ee.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:Fe(t,"firstName")}),$e.default.createElement(Ee.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",$e.default.createElement(Ee.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",$e.default.createElement(Ee.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),".")),$e.default.createElement(Ee.Group,{position:"right",mt:"xl",noWrap:!0},$e.default.createElement(Ee.Button,{type:"submit"},"Create project")))}var ne=require("@mantine/core"),Xf=require("@medplum/core"),ae=m(require("react"));var vo=m(require("react"));function Hr(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 Ha(e){let o=T(),{googleClientId:t,handleGoogleCredential:r}=e,a=(0,vo.useRef)(null),[n,f]=(0,vo.useState)(typeof google<"u"),[s,l]=(0,vo.useState)(!1),[i,u]=(0,vo.useState)(!1);return(0,vo.useEffect)(()=>{if(typeof google>"u"){Hr("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?vo.default.createElement("div",{ref:a}):null}function Va(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__"}}function zf(e){typeof grecaptcha>"u"&&Hr("https://www.google.com/recaptcha/api.js?render="+e)}function Wf(e){return new Promise((o,t)=>{grecaptcha.ready(async()=>{try{o(await grecaptcha.execute(e,{action:"submit"}))}catch(r){t(r)}})})}function fi(e){let o=Va(e.googleClientId),t=e.recaptchaSiteKey,r=T(),[a,n]=(0,ae.useState)(),f=Cr(a,void 0);return(0,ae.useEffect)(()=>{t&&zf(t)},[t]),ae.default.createElement(le,{style:{maxWidth:400},onSubmit:async s=>{try{let l="";t&&(l=await Wf(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,Xf.normalizeOperationOutcome)(l))}}},ae.default.createElement(ne.Center,{sx:{flexDirection:"column"}},e.children),ae.default.createElement(vt,{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(Ha,{googleClientId:o,handleGoogleCredential:async s=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:s.clientId,googleCredential:s.credential,createUser:!0}))}catch(l){n((0,Xf.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 Oc(e){let{type:o,projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,onSuccess:f}=e,s=T(),[l,i]=(0,So.useState)(void 0),[u,d]=(0,So.useState)();(0,So.useEffect)(()=>{o==="patient"&&l&&s.startNewPatient({login:l,projectId:t}).then(y=>s.processCode(y.code)).then(()=>f()).catch(y=>d((0,li.normalizeOperationOutcome)(y)))},[s,o,t,l,f]);function c(y){y.code?s.processCode(y.code).then(()=>f()).catch(console.log):y.login&&i(y.login)}return So.default.createElement(Ar,{width:450},u&&So.default.createElement("pre",null,JSON.stringify(u,null,2)),!l&&So.default.createElement(fi,{projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,handleAuthResponse:c},e.children),l&&o==="project"&&So.default.createElement(Na,{login:l,handleAuthResponse:c}))}var Jf=require("@mantine/notifications"),$f=require("@medplum/core"),Be=m(require("react"));var de=require("@mantine/core"),si=require("@medplum/core"),_=m(require("react"));function ii(e){let[o,t]=(0,_.useState)();return o?_.default.createElement(Lc,{email:o,...e}):_.default.createElement(Ec,{setEmail:t,...e})}function Ec(e){let{setEmail:o,onRegister:t,handleAuthResponse:r,children:a,disableEmailAuth:n,...f}=e,s=T(),l=!e.disableGoogleAuth&&Va(e.googleClientId),i=(0,_.useCallback)(async c=>{if(!c.authorizeUrl)return!1;let y=JSON.stringify({...await s.ensureCodeChallenge(f),domain:c.domain}),b=new URL(c.authorizeUrl);return b.searchParams.set("state",y),window.location.assign(b.toString()),!0},[s,f]),u=(0,_.useCallback)(async c=>{let y=await s.post("auth/method",{email:c.email});await i(y)||o(c.email)},[s,i,o]),d=(0,_.useCallback)(async c=>{let y=await s.startGoogleLogin({...f,googleCredential:c.credential});await i(y)||r(y)},[s,f,i,r]);return _.default.createElement(le,{style:{maxWidth:400},onSubmit:u},_.default.createElement(de.Center,{sx:{flexDirection:"column"}},a),l&&_.default.createElement(_.default.Fragment,null,_.default.createElement(de.Group,{position:"center",p:"xl",style:{height:70}},_.default.createElement(Ha,{googleClientId:l,handleGoogleCredential:d})),!n&&_.default.createElement(de.Divider,{label:"or",labelPosition:"center",my:"lg"})),!n&&_.default.createElement(de.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),_.default.createElement(de.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},_.default.createElement("div",null,t&&_.default.createElement(de.Anchor,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs"},"Register")),!n&&_.default.createElement(de.Button,{type:"submit"},"Next")))}function Lc(e){let{onForgotPassword:o,handleAuthResponse:t,children:r,...a}=e,n=T(),[f,s]=(0,_.useState)(),l=Cr(f,void 0),i=(0,_.useCallback)(u=>{n.startLogin({...a,password:u.password,remember:u.remember==="on"}).then(t).catch(d=>s((0,si.normalizeOperationOutcome)(d)))},[n,a,t]);return _.default.createElement(le,{style:{maxWidth:400},onSubmit:i},_.default.createElement(de.Center,{sx:{flexDirection:"column"}},r),_.default.createElement(vt,{issues:l}),_.default.createElement(de.Stack,{spacing:"xl"},_.default.createElement(de.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:Fe(f,"password")})),_.default.createElement(de.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},o&&_.default.createElement(de.Anchor,{component:"button",type:"button",color:"dimmed",onClick:o,size:"xs"},"Forgot password"),_.default.createElement(de.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),_.default.createElement(de.Button,{type:"submit"},"Sign in")))}var Ge=require("@mantine/core"),ui=require("@medplum/core"),Ke=m(require("react"));function di(e){let o=T(),[t,r]=(0,Ke.useState)();return Ke.default.createElement(Ge.Stack,null,Ke.default.createElement(Ge.Center,{sx:{flexDirection:"column"}},Ke.default.createElement(qo,{size:32}),Ke.default.createElement(Ge.Title,{order:3},"Choose profile")),Ke.default.createElement(vt,{outcome:t}),e.memberships.map(a=>Ke.default.createElement(Ge.UnstyledButton,{key:a.id,onClick:()=>{o.post("auth/profile",{login:e.login,profile:a.id}).then(e.handleAuthResponse).catch(n=>r((0,ui.normalizeOperationOutcome)(n)))}},Ke.default.createElement(Ge.Group,null,Ke.default.createElement(Ge.Avatar,{radius:"xl"}),Ke.default.createElement("div",{style:{flex:1}},Ke.default.createElement(Ge.Text,{size:"sm",weight:500},a.profile?.display),Ke.default.createElement(Ge.Text,{color:"dimmed",size:"xs"},a.project?.display))))))}var oo=require("@mantine/core"),bo=m(require("react"));function ci(e){let o=T();return bo.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)}},bo.default.createElement(oo.Stack,null,bo.default.createElement(oo.Center,{sx:{flexDirection:"column"}},bo.default.createElement(qo,{size:32}),bo.default.createElement(oo.Title,null,"Choose scope")),bo.default.createElement(oo.Stack,null,(e.scope??"openid").split(" ").map(t=>bo.default.createElement(oo.Checkbox,{key:t,id:t,name:t,label:t,defaultChecked:!0}))),bo.default.createElement(oo.Group,{position:"right",mt:"xl"},bo.default.createElement(oo.Button,{type:"submit"},"Set scope"))))}var Qe=require("@mantine/core"),mi=require("@medplum/core");var je=m(require("react"));function pi(e){let o=T(),[t,r]=(0,je.useState)(void 0);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,mi.normalizeErrorString)(n)))}},je.default.createElement(Qe.Stack,null,je.default.createElement(Qe.Center,{sx:{flexDirection:"column"}},je.default.createElement(qo,{size:32}),je.default.createElement(Qe.Title,null,"Enter MFA code")),t&&je.default.createElement(Qe.Alert,{icon:je.default.createElement(lt,{size:16}),title:"Error",color:"red"},t),je.default.createElement(Qe.Stack,null,je.default.createElement(Qe.TextInput,{name:"token",label:"MFA code",required:!0})),je.default.createElement(Qe.Group,{position:"right",mt:"xl"},je.default.createElement(Qe.Button,{type:"submit"},"Submit code"))))}function Rc(e){let{login:o,chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:n,onCode:f,...s}=e,l=T(),[i,u]=(0,Be.useState)(void 0),[d,c]=(0,Be.useState)(!1),[y,b]=(0,Be.useState)(void 0),M=(0,Be.useCallback)(g=>{f?f(g):l.processCode(g).then(()=>{r&&r()}).catch(z=>(0,Jf.showNotification)({color:"red",message:(0,$f.normalizeErrorString)(z)}))},[l,f,r]),D=(0,Be.useCallback)(g=>{c(!!g.mfaRequired),g.login&&u(g.login),g.memberships&&b(g.memberships),g.code&&(t?b(void 0):M(g.code))},[t,M]),A=(0,Be.useCallback)(g=>{M(g.code)},[M]);return(0,Be.useEffect)(()=>{o&&!i&&l.get("auth/login/"+o).then(D).catch(g=>(0,Jf.showNotification)({color:"red",message:(0,$f.normalizeErrorString)(g)}))},[l,o,i,D]),Be.default.createElement(Ar,{width:450},(()=>i?d?Be.default.createElement(pi,{login:i,handleAuthResponse:D}):y?Be.default.createElement(di,{login:i,memberships:y,handleAuthResponse:D}):e.projectId==="new"?Be.default.createElement(Na,{login:i,handleAuthResponse:D}):e.chooseScopes?Be.default.createElement(ci,{login:i,scope:e.scope,handleAuthResponse:A}):Be.default.createElement("div",null,"Success"):Be.default.createElement(ii,{onForgotPassword:a,onRegister:n,handleAuthResponse:D,disableGoogleAuth:e.disableGoogleAuth,disableEmailAuth:e.disableEmailAuth,...s},e.children))())}
|
|
68
68
|
//# sourceMappingURL=index.cjs.map
|