@medplum/react 2.1.0 → 2.1.1
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 +4 -4
- package/dist/cjs/index.cjs.map +3 -3
- package/dist/esm/index.mjs +5 -5
- package/dist/esm/index.mjs.map +3 -3
- package/dist/types/QuestionnaireForm/QuestionnaireForm.d.ts +4 -3
- package/dist/types/QuestionnaireForm/QuestionnaireFormItem/QuestionnaireFormItem.d.ts +4 -3
- package/dist/types/utils/questionnaire.d.ts +2 -2
- package/package.json +1 -1
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var li=Object.create;var Vr=Object.defineProperty;var si=Object.getOwnPropertyDescriptor;var ii=Object.getOwnPropertyNames;var ui=Object.getPrototypeOf,di=Object.prototype.hasOwnProperty;var ci=(e,o)=>{for(var t in o)Vr(e,t,{get:o[t],enumerable:!0})},Qf=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of ii(o))!di.call(e,a)&&a!==t&&Vr(e,a,{get:()=>o[a],enumerable:!(r=si(o,a))||r.enumerable});return e};var m=(e,o,t)=>(t=e!=null?li(ui(e)):{},Qf(o||!e||!e.__esModule?Vr(t,"default",{value:e,enumerable:!0}):t,e)),mi=e=>Qf(Vr({},"__esModule",{value:!0}),e);var Cc={};ci(Cc,{AddressDisplay:()=>Ga,AddressInput:()=>Ua,AnnotationInput:()=>za,AppShell:()=>Ji,AsyncAutocomplete:()=>it,AttachmentArrayDisplay:()=>Bn,AttachmentArrayInput:()=>Fn,AttachmentButton:()=>dt,AttachmentDisplay:()=>io,AttachmentInput:()=>cr,BackboneElementDisplay:()=>Mt,BackboneElementInput:()=>Et,CalendarInput:()=>tf,CheckboxFormSection:()=>hr,CodeInput:()=>dr,CodeableConceptDisplay:()=>ct,CodeableConceptInput:()=>Wn,CodingDisplay:()=>Rn,CodingInput:()=>Xn,ContactDetailDisplay:()=>Hn,ContactDetailInput:()=>Jn,ContactPointDisplay:()=>mr,ContactPointInput:()=>Cr,Container:()=>Lo,DateTimeInput:()=>ao,DefaultResourceTimeline:()=>Ru,DescriptionList:()=>wn,DescriptionListEntry:()=>On,DiagnosticReportDisplay:()=>xa,Document:()=>Br,ElementDefinitionInputSelector:()=>Jl,ElementDefinitionTypeInput:()=>of,EncounterTimeline:()=>Nu,ErrorBoundary:()=>lt,FhirPathTable:()=>Ts,Form:()=>ne,FormSection:()=>Je,Header:()=>bn,HumanNameDisplay:()=>ir,HumanNameInput:()=>Kn,IdentifierDisplay:()=>Vn,IdentifierInput:()=>jn,Loading:()=>Wr,Logo:()=>qo,MedplumLink:()=>be,MedplumProvider:()=>pi,MemoizedFhirPathTable:()=>ld,MemoizedSearchControl:()=>od,MoneyDisplay:()=>Gn,MoneyInput:()=>_n,Navbar:()=>kn,ObservationTable:()=>ts,OperationOutcomeAlert:()=>Ct,Panel:()=>gt,PatientTimeline:()=>sd,PlanDefinitionBuilder:()=>id,QuantityDisplay:()=>Ft,QuantityInput:()=>Ye,QuestionnaireBuilder:()=>Dd,QuestionnaireForm:()=>Rf,QuestionnaireItemType:()=>Ma,QuestionnaireRepeatWrapper:()=>Lf,RangeDisplay:()=>pr,RangeInput:()=>Ht,ReferenceDisplay:()=>Wo,ReferenceInput:()=>It,ReferenceRangeEditor:()=>zd,ReferenceRangeGroupEditor:()=>Vs,RegisterForm:()=>Ic,RequestGroupDisplay:()=>jd,ResourceArrayDisplay:()=>Qn,ResourceArrayInput:()=>Yn,ResourceAvatar:()=>Le,ResourceBadge:()=>Ro,ResourceBlame:()=>rc,ResourceDiff:()=>fc,ResourceForm:()=>Ki,ResourceHistoryTable:()=>sc,ResourceInput:()=>Pr,ResourceName:()=>mo,ResourcePropertyDisplay:()=>ke,ResourcePropertyInput:()=>ho,ResourceTable:()=>Ia,ResourceTimeline:()=>Ho,Scheduler:()=>cc,SearchChangeEvent:()=>Ta,SearchClickEvent:()=>et,SearchControl:()=>Ps,SearchFieldEditor:()=>Df,SearchFilterEditor:()=>Tf,SearchLoadEvent:()=>ka,ServiceRequestTimeline:()=>xc,SignInForm:()=>yc,StatusBadge:()=>kr,Timeline:()=>nf,TimelineItem:()=>No,TimingInput:()=>ef,addDateFilterBetween:()=>ha,addField:()=>Gu,addFilter:()=>yt,addLastMonthFilter:()=>xf,addMissingFilter:()=>ya,addNextMonthFilter:()=>gf,addThisMonthFilter:()=>If,addTodayFilter:()=>cf,addTomorrowFilter:()=>mf,addYearToDateFilter:()=>yf,addYesterdayFilter:()=>df,buildFieldNameString:()=>qe,clearFilters:()=>qu,clearFiltersOnField:()=>Mr,convertIsoToLocal:()=>Ol,convertLocalToIso:()=>El,createScriptTag:()=>Nr,deleteFilter:()=>uf,getErrorsForInput:()=>Be,getIssuesForExpression:()=>yr,getMonthString:()=>Kl,getOpString:()=>$t,getRecaptcha:()=>qf,getSearchOperators:()=>bf,getSortField:()=>vf,getStartMonth:()=>ca,getTimeString:()=>zs,getValueAndType:()=>Xe,initRecaptcha:()=>Vf,isChoiceQuestion:()=>Af,isQuestionEnabled:()=>Ff,isSortDescending:()=>Sf,parseForm:()=>Pn,renderValue:()=>Pf,setFilters:()=>Jt,setOffset:()=>ys,setPage:()=>Cf,setPropertyValue:()=>Ot,setSort:()=>Ca,sortByDateAndPriority:()=>ff,toggleSort:()=>Uu,useMedplum:()=>D,useMedplumContext:()=>vt,useMedplumNavigate:()=>Po,useMedplumProfile:()=>tr,useResource:()=>oe});module.exports=mi(Cc);var Wf=require("@medplum/core"),qa=m(require("react"));function Ga(e){let o=e.value;return o?qa.default.createElement(qa.default.Fragment,null,(0,Wf.formatAddress)(o)):null}var so=require("@mantine/core"),_e=m(require("react"));function Xf(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 Ua(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 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 _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:Xf(o,0),onChange:c=>l(c.currentTarget.value)}),_e.default.createElement(so.TextInput,{placeholder:"Line 2",defaultValue:Xf(o,1),onChange:c=>s(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 jf=require("@mantine/core"),_f=require("@medplum/core"),St=m(require("react"));var $f=require("@mantine/notifications"),Ze=m(require("react")),Kf=(0,Ze.createContext)(void 0);function pi(e){let o=e.medplum,t=e.navigate??xi,[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,$f.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(Kf.Provider,{value:n},e.children)}function vt(){return(0,Ze.useContext)(Kf)}function D(){return vt().medplum}function Po(){return vt().navigate}function tr(){return vt().profile}function xi(e){window.location.assign(e)}function za(e){let o=tr(),[t,r]=(0,St.useState)(e.defaultValue||{}),a=(0,St.useRef)();a.current=t;function n(f){let l=f?{text:f,authorReference:o&&(0,_f.createReference)(o),time:new Date().toISOString()}:{};r(l),e.onChange&&e.onChange(l)}return St.default.createElement(jf.TextInput,{name:e.name,placeholder:"Annotation text",defaultValue:t.text,onChange:f=>n(f.currentTarget.value)})}var ea=require("@mantine/core"),ro=m(require("react"));var rl=require("@mantine/core"),al=require("@medplum/core");var rr=require("react"),zo=m(require("prop-types"));var Zf={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 Ii=Object.defineProperty,gi=Object.defineProperties,hi=Object.getOwnPropertyDescriptors,qr=Object.getOwnPropertySymbols,ol=Object.prototype.hasOwnProperty,tl=Object.prototype.propertyIsEnumerable,Yf=(e,o,t)=>o in e?Ii(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,el=(e,o)=>{for(var t in o||(o={}))ol.call(o,t)&&Yf(e,t,o[t]);if(qr)for(var t of qr(o))tl.call(o,t)&&Yf(e,t,o[t]);return e},yi=(e,o)=>gi(e,hi(o)),Ci=(e,o)=>{var t={};for(var r in e)ol.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&qr)for(var r of qr(e))o.indexOf(r)<0&&tl.call(e,r)&&(t[r]=e[r]);return t},I=(e,o,t)=>{let r=(0,rr.forwardRef)((a,n)=>{var f=a,{color:l="currentColor",size:s=24,stroke:i=2,children:u}=f,d=Ci(f,["color","size","stroke","children"]);return(0,rr.createElement)("svg",el(yi(el({ref:n},Zf),{width:s,height:s,stroke:l,strokeWidth:i,className:`tabler-icon tabler-icon-${e}`}),d),[...t.map(([c,b])=>(0,rr.createElement)(c,b)),...u||[]])});return r.propTypes={color:zo.default.string,size:zo.default.oneOfType([zo.default.string,zo.default.number]),stroke:zo.default.oneOfType([zo.default.string,zo.default.number])},r.displayName=`${o}`,r};var Qa=I("adjustments-horizontal","IconAdjustmentsHorizontal",[["path",{d:"M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M4 6l8 0",key:"svg-1"}],["path",{d:"M16 6l4 0",key:"svg-2"}],["path",{d:"M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M4 12l2 0",key:"svg-4"}],["path",{d:"M10 12l10 0",key:"svg-5"}],["path",{d:"M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-6"}],["path",{d:"M4 18l11 0",key:"svg-7"}],["path",{d:"M19 18l1 0",key:"svg-8"}]]);var ft=I("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=I("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 Xa=I("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=I("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=I("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 Ka=I("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 ja=I("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=I("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 ar=I("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]);var _a=I("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 Za=I("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]);var Qo=I("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 bt=I("circle-plus","IconCirclePlus",[["path",{d:"M20.987 12.497a9 9 0 1 0 -8.467 8.489",key:"svg-0"}],["path",{d:"M16 19h6",key:"svg-1"}],["path",{d:"M19 16v6",key:"svg-2"}]]);var nr=I("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 Ya=I("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 en=I("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 on=I("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 tn=I("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 rn=I("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 Pt=I("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 Dt=I("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);var an=I("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 nn=I("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 fn=I("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 ln=I("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 sn=I("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=I("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]);var Ur=I("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]);var un=I("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 dn=I("pin","IconPin",[["path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4",key:"svg-0"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-1"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-2"}]]);var cn=I("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 mn=I("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);var pn=I("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 xn=I("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 Tt=I("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 fr=I("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 lr=I("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 In=I("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 gn=I("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 hn=I("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 sr=I("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 yn=I("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);var zr=m(require("react")),lt=class extends zr.default.Component{constructor(t){super(t);this.state={}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,r){console.error("Uncaught error:",t,r)}render(){return this.state.error?zr.default.createElement(rl.Alert,{icon:zr.default.createElement(ft,{size:16}),title:"Something went wrong",color:"red"},(0,al.normalizeErrorString)(this.state.error)):this.props.children}};var Qr=require("@mantine/core"),Cn=m(require("react"));function Wr(){return Cn.default.createElement(Qr.Center,{style:{width:"100%",height:"100vh"}},Cn.default.createElement(Qr.Loader,null))}var J=require("@mantine/core"),ur=require("@medplum/core");var W=m(require("react"));var nl=require("@medplum/core"),vn=m(require("react"));function ir(e){let o=e.value;return o?vn.default.createElement(vn.default.Fragment,null,(0,nl.formatHumanName)(o,e.options)):null}var Sn=require("@mantine/core"),Kr=require("@medplum/core"),$r=m(require("react"));var ll=require("@mantine/core"),Jr=require("@medplum/core"),sl=m(require("react"));function Q(e){e.preventDefault(),e.stopPropagation()}function Xr(e){if(fl(e))return!0;if(e instanceof HTMLTableCellElement){let o=e.children;if(o.length===1&&fl(o[0]))return!0}return!1}function fl(e){return e instanceof HTMLInputElement&&e.type==="checkbox"}function be(e){let o=Po(),{to:t,suffix:r,label:a,onClick:n,children:f,...l}=e,s=vi(t);return r&&(s+="/"+r),sl.default.createElement(ll.Anchor,{href:s,"aria-label":a,onClick:i=>{Q(i),n?n(i):t&&o(s)},...l},f)}function vi(e){if(e){if(typeof e=="string")return Si(e);if((0,Jr.isResource)(e))return bi(e);if((0,Jr.isReference)(e))return Pi(e)}return"#"}function Si(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e}function bi(e){return`/${e.resourceType}/${e.id}`}function Pi(e){return`/${e.reference}`}var To=require("@medplum/core"),st=require("react");function oe(e,o){let t=D(),[r,a]=(0,st.useState)(il(t,e)),n=(0,st.useCallback)(f=>{(0,To.deepEquals)(f,r)||a(f)},[r,a]);return(0,st.useEffect)(()=>{n(il(t,e))},[t,e,n]),(0,st.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 il(e,o){if(o){if((0,To.isResource)(o))return o;if((0,To.isReference)(o))return e.getCachedReference(o)}}function Le(e){let o=oe(e.value),t=o?(0,Kr.getDisplayString)(o):e.alt??"",r=(o&&(0,Kr.getImageSrc)(o))??e.src,a=e.radius??"xl",n={...e};return delete n.value,delete n.link,e.link?$r.default.createElement(be,{to:o},$r.default.createElement(Sn.Avatar,{src:r,alt:t,radius:a,...n})):$r.default.createElement(Sn.Avatar,{src:r,alt:t,radius:a,...n})}var ut=require("@mantine/core"),ko=require("@medplum/core");var Qe=m(require("react"));var jr=require("@mantine/core"),ae=m(require("react")),ul=require("@mantine/notifications"),dl=require("@medplum/core");function it(e){let{defaultValue:o,toKey:t,toOption:r,loadOptions:a,onChange:n,onCreate:f,creatable:l,...s}=e,i=Di(o),u=(0,ae.useRef)(null),[d,c]=(0,ae.useState)(void 0),[b,k]=(0,ae.useState)(),[F,h]=(0,ae.useState)(),[B,x]=(0,ae.useState)(),[C,v]=(0,ae.useState)(i.map(r)),[H,Re]=(0,ae.useState)([]),Ne=(0,ae.useRef)();Ne.current=d;let Oe=(0,ae.useRef)();Oe.current=b;let he=(0,ae.useRef)();he.current=F;let Yt=(0,ae.useRef)();Yt.current=B;let P=(0,ae.useRef)();P.current=H;let G=(0,ae.useCallback)(()=>{k(void 0);let pe=u.current?.value.trim()||"";if(pe===Ne.current)return;c(pe);let Te=new AbortController;h(Te),a(pe,Te.signal).then(Ee=>{Te.signal.aborted||(Re(Ee.map(r)),h(void 0),Yt.current&&(Ee.length>0&&n(Ee.slice(0,1)),x(!1)))}).catch(Ee=>{Te.signal.aborted||Ee.message.includes("aborted")||(0,ul.showNotification)({color:"red",message:(0,dl.normalizeErrorString)(Ee)})})},[a,n,r]),lo=(0,ae.useCallback)(()=>{he.current&&(he.current.abort(),h(void 0)),Oe.current!==void 0&&window.clearTimeout(Oe.current);let pe=window.setTimeout(()=>G(),100);k(pe)},[G]),He=(0,ae.useCallback)(pe=>{let Te=[],Ee=[];for(let er of pe){let Hr=P.current?.find(fi=>fi.value===er),or=Hr?.resource;!or&&l!==!1&&f&&(or=f(er),Hr=r(or)),or&&Te.push(or),Hr&&Ee.push(Hr)}n(Te),v(Ee)},[l,n,f,r]),nt=(0,ae.useCallback)(pe=>{pe.key==="Enter"&&(!Oe.current&&!he.current?(Q(pe),P.current&&P.current.length>0&&(Re(P.current.slice(0,1)),He([P.current[0].value]))):x(!0))},[He]),A=(0,ae.useCallback)(pe=>{let Te=r(f(pe));return Re([...P.current,Te]),Te},[f,Re,r]),Y=(0,ae.useCallback)((pe,Te)=>!Te,[]);return(0,ae.useEffect)(()=>()=>{he.current&&he.current.abort()},[]),ae.default.createElement(jr.MultiSelect,{...s,ref:u,defaultValue:i.map(t),searchable:!0,onKeyDown:nt,onSearchChange:lo,data:[...C,...H],onFocus:G,onChange:He,onCreate:A,rightSectionWidth:40,rightSection:F?ae.default.createElement(jr.Loader,{size:16}):null,filter:Y,creatable:!0})}function Di(e){return e?Array.isArray(e)?e:[e]:[]}var Ti=(0,ut.createStyles)(()=>({searchInput:{input:{width:220,transition:"width 0.2s"},"input:focus":{width:400},"@media (max-width: 800px)":{input:{width:150},"input:focus":{width:150}}}}));function ki(e){return e.id}function Bi(e){return{value:e.id,label:(0,ko.getDisplayString)(e),resource:e}}function pl(e){let{classes:o}=Ti(),t=Po(),r=D(),a=(0,Qe.useCallback)(async(f,l)=>{let s=Fi(f),i={signal:l},u=await r.graphql(s,void 0,void 0,i);return Mi(u,f)},[r]),n=(0,Qe.useCallback)(f=>{f.length>0&&t(`/${(0,ko.getReferenceString)(f[0])}`)},[t]);return Qe.default.createElement(it,{key:`${e.pathname}?${e.searchParams}`,size:"sm",radius:"md",className:o.searchInput,icon:Qe.default.createElement(xn,{size:16}),placeholder:"Search",itemComponent:Ai,toKey:ki,toOption:Bi,onChange:n,loadOptions:a,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var Ai=(0,Qe.forwardRef)(({resource:e,...o},t)=>{let r;return e.resourceType==="Patient"?r=e.birthDate:e.resourceType==="ServiceRequest"&&(r=e.subject?.display),Qe.default.createElement("div",{ref:t,...o},Qe.default.createElement(ut.Group,{noWrap:!0},Qe.default.createElement(Le,{value:e}),Qe.default.createElement("div",null,Qe.default.createElement(ut.Text,null,(0,ko.getDisplayString)(e)),Qe.default.createElement(ut.Text,{size:"xs",color:"dimmed"},r))))});function Fi(e){let o=JSON.stringify(e);return(0,ko.isUUID)(e)?`{
|
|
1
|
+
"use strict";var di=Object.create;var qr=Object.defineProperty;var ci=Object.getOwnPropertyDescriptor;var mi=Object.getOwnPropertyNames;var pi=Object.getPrototypeOf,xi=Object.prototype.hasOwnProperty;var Ii=(e,o)=>{for(var t in o)qr(e,t,{get:o[t],enumerable:!0})},Wf=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of mi(o))!xi.call(e,a)&&a!==t&&qr(e,a,{get:()=>o[a],enumerable:!(r=ci(o,a))||r.enumerable});return e};var m=(e,o,t)=>(t=e!=null?di(pi(e)):{},Wf(o||!e||!e.__esModule?qr(t,"default",{value:e,enumerable:!0}):t,e)),gi=e=>Wf(qr({},"__esModule",{value:!0}),e);var Tc={};Ii(Tc,{AddressDisplay:()=>Ua,AddressInput:()=>za,AnnotationInput:()=>Qa,AppShell:()=>_i,AsyncAutocomplete:()=>ut,AttachmentArrayDisplay:()=>An,AttachmentArrayInput:()=>Mn,AttachmentButton:()=>ct,AttachmentDisplay:()=>uo,AttachmentInput:()=>mr,BackboneElementDisplay:()=>wt,BackboneElementInput:()=>Lt,CalendarInput:()=>rf,CheckboxFormSection:()=>yr,CodeInput:()=>cr,CodeableConceptDisplay:()=>mt,CodeableConceptInput:()=>Xn,CodingDisplay:()=>Nn,CodingInput:()=>Jn,ContactDetailDisplay:()=>Vn,ContactDetailInput:()=>$n,ContactPointDisplay:()=>pr,ContactPointInput:()=>vr,Container:()=>Ro,DateTimeInput:()=>no,DefaultResourceTimeline:()=>qu,DescriptionList:()=>On,DescriptionListEntry:()=>En,DiagnosticReportDisplay:()=>Ia,Document:()=>Ar,ElementDefinitionInputSelector:()=>$l,ElementDefinitionTypeInput:()=>tf,EncounterTimeline:()=>Gu,ErrorBoundary:()=>st,FhirPathTable:()=>Ts,Form:()=>fe,FormSection:()=>$e,Header:()=>Pn,HumanNameDisplay:()=>ur,HumanNameInput:()=>jn,IdentifierDisplay:()=>qn,IdentifierInput:()=>_n,Loading:()=>Xr,Logo:()=>Go,MedplumLink:()=>De,MedplumProvider:()=>hi,MemoizedFhirPathTable:()=>dd,MemoizedSearchControl:()=>nd,MoneyDisplay:()=>Un,MoneyInput:()=>Zn,Navbar:()=>Bn,ObservationTable:()=>rs,OperationOutcomeAlert:()=>vt,Panel:()=>ht,PatientTimeline:()=>cd,PlanDefinitionBuilder:()=>md,QuantityDisplay:()=>Mt,QuantityInput:()=>eo,QuestionnaireBuilder:()=>Fd,QuestionnaireForm:()=>Nf,QuestionnaireItemType:()=>wa,QuestionnaireRepeatWrapper:()=>Rf,RangeDisplay:()=>xr,RangeInput:()=>Vt,ReferenceDisplay:()=>Xo,ReferenceInput:()=>gt,ReferenceRangeEditor:()=>jd,ReferenceRangeGroupEditor:()=>zs,RegisterForm:()=>bc,RequestGroupDisplay:()=>rc,ResourceArrayDisplay:()=>Wn,ResourceArrayInput:()=>ef,ResourceAvatar:()=>Re,ResourceBadge:()=>No,ResourceBlame:()=>uc,ResourceDiff:()=>mc,ResourceForm:()=>Yi,ResourceHistoryTable:()=>xc,ResourceInput:()=>Dr,ResourceName:()=>po,ResourcePropertyDisplay:()=>Ae,ResourcePropertyInput:()=>yo,ResourceTable:()=>ga,ResourceTimeline:()=>Vo,Scheduler:()=>yc,SearchChangeEvent:()=>Ta,SearchClickEvent:()=>ot,SearchControl:()=>Ds,SearchFieldEditor:()=>kf,SearchFilterEditor:()=>Tf,SearchLoadEvent:()=>Ba,ServiceRequestTimeline:()=>Sc,SignInForm:()=>kc,StatusBadge:()=>Br,Timeline:()=>ff,TimelineItem:()=>Ho,TimingInput:()=>of,addDateFilterBetween:()=>ya,addField:()=>Wu,addFilter:()=>Ct,addLastMonthFilter:()=>If,addMissingFilter:()=>Ca,addNextMonthFilter:()=>hf,addThisMonthFilter:()=>gf,addTodayFilter:()=>mf,addTomorrowFilter:()=>pf,addYearToDateFilter:()=>Cf,addYesterdayFilter:()=>cf,buildFieldNameString:()=>qe,clearFilters:()=>Qu,clearFiltersOnField:()=>wr,convertIsoToLocal:()=>El,convertLocalToIso:()=>Ll,createScriptTag:()=>Hr,deleteFilter:()=>df,getErrorsForInput:()=>Fe,getIssuesForExpression:()=>Cr,getMonthString:()=>jl,getOpString:()=>Kt,getRecaptcha:()=>Gf,getSearchOperators:()=>Pf,getSortField:()=>Sf,getStartMonth:()=>ma,getTimeString:()=>Js,getValueAndType:()=>Je,initRecaptcha:()=>qf,isChoiceQuestion:()=>Ff,isQuestionEnabled:()=>Mf,isSortDescending:()=>bf,parseForm:()=>Dn,renderValue:()=>Df,setFilters:()=>$t,setOffset:()=>Cs,setPage:()=>vf,setPropertyValue:()=>Et,setSort:()=>va,sortByDateAndPriority:()=>lf,toggleSort:()=>Xu,useMedplum:()=>k,useMedplumContext:()=>bt,useMedplumNavigate:()=>Do,useMedplumProfile:()=>rr,useResource:()=>te});module.exports=gi(Tc);var Xf=require("@medplum/core"),Ga=m(require("react"));function Ua(e){let o=e.value;return o?Ga.default.createElement(Ga.default.Fragment,null,(0,Xf.formatAddress)(o)):null}var io=require("@mantine/core"),Ze=m(require("react"));function Jf(e,o){return e.line&&e.line.length>o?e.line[o]:""}function $f(e,o,t){let r=e.line||[];for(;r.length<=o;)r.push("");return r[o]=t,{...e,line:r}}function za(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($f(r.current||{},0,c))}function s(c){a($f(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:Jf(o,0),onChange:c=>l(c.currentTarget.value)}),Ze.default.createElement(io.TextInput,{placeholder:"Line 2",defaultValue:Jf(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 _f=require("@mantine/core"),Zf=require("@medplum/core"),Pt=m(require("react"));var Kf=require("@mantine/notifications"),Ye=m(require("react")),jf=(0,Ye.createContext)(void 0);function hi(e){let o=e.medplum,t=e.navigate??yi,[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,Kf.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(jf.Provider,{value:n},e.children)}function bt(){return(0,Ye.useContext)(jf)}function k(){return bt().medplum}function Do(){return bt().navigate}function rr(){return bt().profile}function yi(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 l=f?{text:f,authorReference:o&&(0,Zf.createReference)(o),time:new Date().toISOString()}:{};r(l),e.onChange&&e.onChange(l)}return Pt.default.createElement(_f.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 al=require("@mantine/core"),nl=require("@medplum/core");var ar=require("react"),zo=m(require("prop-types"));var Yf={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 Ci=Object.defineProperty,vi=Object.defineProperties,Si=Object.getOwnPropertyDescriptors,Gr=Object.getOwnPropertySymbols,tl=Object.prototype.hasOwnProperty,rl=Object.prototype.propertyIsEnumerable,el=(e,o,t)=>o in e?Ci(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,ol=(e,o)=>{for(var t in o||(o={}))tl.call(o,t)&&el(e,t,o[t]);if(Gr)for(var t of Gr(o))rl.call(o,t)&&el(e,t,o[t]);return e},bi=(e,o)=>vi(e,Si(o)),Pi=(e,o)=>{var t={};for(var r in e)tl.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Gr)for(var r of Gr(e))o.indexOf(r)<0&&rl.call(e,r)&&(t[r]=e[r]);return t},g=(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=Pi(f,["color","size","stroke","children"]);return(0,ar.createElement)("svg",ol(bi(ol({ref:n},Yf),{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:zo.default.string,size:zo.default.oneOfType([zo.default.string,zo.default.number]),stroke:zo.default.oneOfType([zo.default.string,zo.default.number])},r.displayName=`${o}`,r};var Wa=g("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=g("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=g("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 Ja=g("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 $a=g("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 Ka=g("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 ja=g("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 _a=g("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=g("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=g("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]);var Za=g("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 Ya=g("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]);var Qo=g("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=g("circle-plus","IconCirclePlus",[["path",{d:"M20.987 12.497a9 9 0 1 0 -8.467 8.489",key:"svg-0"}],["path",{d:"M16 19h6",key:"svg-1"}],["path",{d:"M19 16v6",key:"svg-2"}]]);var fr=g("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 en=g("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 on=g("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 tn=g("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 rn=g("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 an=g("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=g("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=g("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);var nn=g("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 fn=g("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 ln=g("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 sn=g("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 un=g("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 Ur=g("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]);var zr=g("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]);var dn=g("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 cn=g("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 mn=g("pinned-off","IconPinnedOff",[["path",{d:"M3 3l18 18",key:"svg-0"}],["path",{d:"M15 4.5l-3.249 3.249m-2.57 1.433l-2.181 .818l-1.5 1.5l7 7l1.5 -1.5l.82 -2.186m1.43 -2.563l3.25 -3.251",key:"svg-1"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-2"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-3"}]]);var pn=g("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);var xn=g("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 In=g("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=g("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=g("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=g("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 gn=g("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 hn=g("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 yn=g("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=g("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 Cn=g("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);var Qr=m(require("react")),st=class extends Qr.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?Qr.default.createElement(al.Alert,{icon:Qr.default.createElement(lt,{size:16}),title:"Something went wrong",color:"red"},(0,nl.normalizeErrorString)(this.state.error)):this.props.children}};var Wr=require("@mantine/core"),vn=m(require("react"));function Xr(){return vn.default.createElement(Wr.Center,{style:{width:"100%",height:"100vh"}},vn.default.createElement(Wr.Loader,null))}var J=require("@mantine/core"),dr=require("@medplum/core");var Q=m(require("react"));var fl=require("@medplum/core"),Sn=m(require("react"));function ur(e){let o=e.value;return o?Sn.default.createElement(Sn.default.Fragment,null,(0,fl.formatHumanName)(o,e.options)):null}var bn=require("@mantine/core"),jr=require("@medplum/core"),Kr=m(require("react"));var sl=require("@mantine/core"),$r=require("@medplum/core"),il=m(require("react"));function G(e){e.preventDefault(),e.stopPropagation()}function Jr(e){if(ll(e))return!0;if(e instanceof HTMLTableCellElement){let o=e.children;if(o.length===1&&ll(o[0]))return!0}return!1}function ll(e){return e instanceof HTMLInputElement&&e.type==="checkbox"}function De(e){let o=Do(),{to:t,suffix:r,label:a,onClick:n,children:f,...l}=e,s=Di(t);return r&&(s+="/"+r),il.default.createElement(sl.Anchor,{href:s,"aria-label":a,onClick:i=>{G(i),n?n(i):t&&o(s)},...l},f)}function Di(e){if(e){if(typeof e=="string")return ki(e);if((0,$r.isResource)(e))return Ti(e);if((0,$r.isReference)(e))return Bi(e)}return"#"}function ki(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e}function Ti(e){return`/${e.resourceType}/${e.id}`}function Bi(e){return`/${e.reference}`}var To=require("@medplum/core"),it=require("react");function te(e,o){let t=k(),[r,a]=(0,it.useState)(ul(t,e)),n=(0,it.useCallback)(f=>{(0,To.deepEquals)(f,r)||a(f)},[r,a]);return(0,it.useEffect)(()=>{n(ul(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 ul(e,o){if(o){if((0,To.isResource)(o))return o;if((0,To.isReference)(o))return e.getCachedReference(o)}}function Re(e){let o=te(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(De,{to:o},Kr.default.createElement(bn.Avatar,{src:r,alt:t,radius:a,...n})):Kr.default.createElement(bn.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"),ne=m(require("react")),dl=require("@mantine/notifications"),cl=require("@medplum/core");function ut(e){let{defaultValue:o,toKey:t,toOption:r,loadOptions:a,onChange:n,onCreate:f,creatable:l,...s}=e,i=Ai(o),u=(0,ne.useRef)(null),[d,c]=(0,ne.useState)(void 0),[y,v]=(0,ne.useState)(),[A,D]=(0,ne.useState)(),[B,I]=(0,ne.useState)(),[W,p]=(0,ne.useState)(i.map(r)),[O,Pe]=(0,ne.useState)([]),Ne=(0,ne.useRef)();Ne.current=d;let Ee=(0,ne.useRef)();Ee.current=y;let ye=(0,ne.useRef)();ye.current=A;let er=(0,ne.useRef)();er.current=B;let b=(0,ne.useRef)();b.current=O;let q=(0,ne.useCallback)(()=>{v(void 0);let xe=u.current?.value.trim()||"";if(xe===Ne.current)return;c(xe);let Be=new AbortController;D(Be),a(xe,Be.signal).then(Le=>{Be.signal.aborted||(Pe(Le.map(r)),D(void 0),er.current&&(Le.length>0&&n(Le.slice(0,1)),I(!1)))}).catch(Le=>{Be.signal.aborted||Le.message.includes("aborted")||(0,dl.showNotification)({color:"red",message:(0,cl.normalizeErrorString)(Le)})})},[a,n,r]),so=(0,ne.useCallback)(()=>{ye.current&&(ye.current.abort(),D(void 0)),Ee.current!==void 0&&window.clearTimeout(Ee.current);let xe=window.setTimeout(()=>q(),100);v(xe)},[q]),He=(0,ne.useCallback)(xe=>{let Be=[],Le=[];for(let or of xe){let Vr=b.current?.find(ui=>ui.value===or),tr=Vr?.resource;!tr&&l!==!1&&f&&(tr=f(or),Vr=r(tr)),tr&&Be.push(tr),Vr&&Le.push(Vr)}n(Be),p(Le)},[l,n,f,r]),ft=(0,ne.useCallback)(xe=>{xe.key==="Enter"&&(!Ee.current&&!ye.current?(G(xe),b.current&&b.current.length>0&&(Pe(b.current.slice(0,1)),He([b.current[0].value]))):I(!0))},[He]),T=(0,ne.useCallback)(xe=>{let Be=r(f(xe));return Pe([...b.current,Be]),Be},[f,Pe,r]),ee=(0,ne.useCallback)((xe,Be)=>!Be,[]);return(0,ne.useEffect)(()=>()=>{ye.current&&ye.current.abort()},[]),ne.default.createElement(_r.MultiSelect,{...s,ref:u,defaultValue:i.map(t),searchable:!0,onKeyDown:ft,onSearchChange:so,data:[...W,...O],onFocus:q,onChange:He,onCreate:T,rightSectionWidth:40,rightSection:A?ne.default.createElement(_r.Loader,{size:16}):null,filter:ee,creatable:!0})}function Ai(e){return e?Array.isArray(e)?e:[e]:[]}var Fi=(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 Mi(e){return e.id}function wi(e){return{value:e.id,label:(0,Bo.getDisplayString)(e),resource:e}}function xl(e){let{classes:o}=Fi(),t=Do(),r=k(),a=(0,We.useCallback)(async(f,l)=>{let s=Ei(f),i={signal:l},u=await r.graphql(s,void 0,void 0,i);return Li(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(In,{size:16}),placeholder:"Search",itemComponent:Oi,toKey:Mi,toOption:wi,onChange:n,loadOptions:a,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var Oi=(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(Re,{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 Ei(e){let o=JSON.stringify(e);return(0,Bo.isUUID)(e)?`{
|
|
2
2
|
Patients1: PatientList(_id: ${o}, _count: 1) {
|
|
3
3
|
resourceType
|
|
4
4
|
id
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
display
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
}`.replace(/\s+/g," ")}function Mi(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),Oi(wi(t),o).slice(0,5)}function wi(e){let o=new Set,t=[];for(let r of e)o.has(r.id)||(o.add(r.id),t.push(r));return t}function Oi(e,o){return e.sort((t,r)=>cl(r,o)-cl(t,o))}function cl(e,o){let t=0;if(e.identifier)for(let r of e.identifier)t=Math.max(t,ml(r.value,o));if(e.resourceType==="Patient"&&e.name)for(let r of e.name)t=Math.max(t,ml((0,ko.formatHumanName)(r),o));return t}function ml(e,o){if(!e)return 0;let t=e.toLowerCase().indexOf(o.toLowerCase());return t<0?0:100-t}var Ei=(0,J.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 bn(e){let o=vt(),{medplum:t,profile:r,navigate:a}=o,n=t.getLogins(),{classes:f,cx:l}=Ei(),[s,i]=(0,W.useState)(!1);return W.default.createElement(J.Header,{height:60,p:8,style:{zIndex:101}},W.default.createElement(J.Group,{position:"apart"},W.default.createElement(J.Group,{spacing:"xs"},W.default.createElement(J.UnstyledButton,{className:f.logoButton,onClick:e.navbarToggle},e.logo),W.default.createElement(pl,{pathname:e.pathname,searchParams:e.searchParams})),W.default.createElement(J.Menu,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:s,onClose:()=>i(!1)},W.default.createElement(J.Menu.Target,null,W.default.createElement(J.UnstyledButton,{className:l(f.user,{[f.userActive]:s}),onClick:()=>i(u=>!u)},W.default.createElement(J.Group,{spacing:7},W.default.createElement(Le,{value:r,radius:"xl",size:24}),W.default.createElement(J.Text,{size:"sm",className:f.userName},(0,ur.formatHumanName)(r?.name?.[0])),W.default.createElement(Za,{size:12,stroke:1.5})))),W.default.createElement(J.Menu.Dropdown,null,W.default.createElement(J.Stack,{align:"center",p:"xl"},W.default.createElement(Le,{size:"xl",radius:100,value:o.profile}),W.default.createElement(ir,{value:o.profile?.name?.[0]}),W.default.createElement(J.Text,{color:"dimmed",size:"xs"},t.getActiveLogin()?.project.display)),n.length>1&&W.default.createElement(J.Menu.Divider,null),n.map(u=>u.profile.reference!==(0,ur.getReferenceString)(o.profile)&&W.default.createElement(J.Menu.Item,{key:u.profile.reference,onClick:()=>{t.setActiveLogin(u).then(()=>window.location.reload()).catch(console.log)}},W.default.createElement(J.Group,null,W.default.createElement(J.Avatar,{radius:"xl"}),W.default.createElement("div",{style:{flex:1}},W.default.createElement(J.Text,{size:"sm",weight:500},u.profile.display),W.default.createElement(J.Text,{color:"dimmed",size:"xs"},u.project.display))))),W.default.createElement(J.Menu.Divider,null),W.default.createElement(J.Menu.Item,{icon:W.default.createElement(gn,{size:14,stroke:1.5}),onClick:()=>a("/signin")},"Add another account"),W.default.createElement(J.Menu.Item,{icon:W.default.createElement(Tt,{size:14,stroke:1.5}),onClick:()=>a(`/${(0,ur.getReferenceString)(r)}`)},"Account settings"),W.default.createElement(J.Menu.Item,{icon:W.default.createElement(sn,{size:14,stroke:1.5}),onClick:async()=>{await t.signOut(),a("/signin")}},"Sign out"),W.default.createElement(J.Text,{size:"xs",color:"dimmed",align:"center"},e.version)))))}var We=require("@mantine/core");var xe=m(require("react"));var to=require("@mantine/core"),Dn=require("@mantine/notifications"),_r=require("@medplum/core"),Bo=m(require("react"));var xl=m(require("react"));function Pn(e){let o={};for(let t of Array.from(e.elements))t instanceof HTMLInputElement?Li(o,t):t instanceof HTMLTextAreaElement?o[t.name]=t.value:t instanceof HTMLSelectElement&&Ri(o,t);return o}function Li(e,o){o.disabled||(o.type==="checkbox"||o.type==="radio")&&!o.checked||(e[o.name]=o.value)}function Ri(e,o){e[o.name]=o.value}function ne(e){return xl.default.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:o=>{o.preventDefault();let t=Pn(o.target);e.onSubmit&&e.onSubmit(t)}},e.children)}function Il(e){let o=D(),t=o.getUserConfiguration();function r(a){let{menuname:n,bookmarkname:f}=a,l=`${e.pathname}?${e.searchParams.toString()}`,s=(0,_r.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,Dn.showNotification)({color:"green",message:"Success"}),e.onOk()}).catch(u=>{(0,Dn.showNotification)({color:"red",message:(0,_r.normalizeErrorString)(u)})})}return Bo.default.createElement(to.Modal,{title:"Add Bookmark",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},Bo.default.createElement(ne,{onSubmit:r},Bo.default.createElement(to.Stack,null,Bo.default.createElement(Ni,{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 Ni(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 Yr=m(require("react"));var Zr=m(require("react"));function Tn(e){return typeof e.code=="string"?e.code:JSON.stringify(e)}function Hi(e){return typeof e.display=="string"?e.display:Tn(e)}function Vi(e){return{value:Tn(e),label:Hi(e),resource:e}}function qi(e){return{code:e,display:e}}function kt(e){let o=D(),{elementDefinition:t,creatable:r,clearable:a,...n}=e,f=(0,Zr.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 b of d)b.code&&!c.some(k=>k.code===b.code)&&c.push(b);return c},[o,t]);return Zr.default.createElement(it,{...n,creatable:r??!0,clearable:a??!0,toKey:Tn,toOption:Vi,loadOptions:f,onCreate:qi,getCreateLabel:r===!1?void 0:l=>`+ Create ${l}`})}function dr(e){let[o,t]=(0,Yr.useState)(e.defaultValue);function r(a){let n=a[0],f=Ui(n);t(f),e.onChange&&e.onChange(f)}return Yr.default.createElement(kt,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:Gi(o),onChange:r,creatable:e.creatable,maxSelectedValues:e.maxSelectedValues??1,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable})}function Gi(e){return e?{code:e}:void 0}function Ui(e){return e?.code}var gl=(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 kn(e){let{classes:o}=gl(),t=Po(),r=Wi(e.pathname,e.searchParams,e.menus),[a,n]=(0,xe.useState)(!1);function f(s,i){s.stopPropagation(),s.preventDefault(),t(i),window.innerWidth<768&&e.closeNavbar()}function l(s){s&&t(`/${s}`)}return xe.default.createElement(xe.default.Fragment,null,xe.default.createElement(We.Navbar,{width:{sm:250},p:"xs"},xe.default.createElement(We.ScrollArea,null,xe.default.createElement(We.Navbar.Section,{mb:"sm"},xe.default.createElement(dr,{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})),xe.default.createElement(We.Navbar.Section,{grow:!0},e.menus?.map(s=>xe.default.createElement(xe.default.Fragment,{key:`menu-${s.title}`},xe.default.createElement(We.Text,{className:o.menuTitle},s.title),s.links?.map(i=>xe.default.createElement(zi,{key:i.href,to:i.href,active:i.href===r?.href,onClick:u=>f(u,i.href)},xe.default.createElement(Qi,{to:i.href,icon:i.icon}),xe.default.createElement("span",null,i.label))))),e.displayAddBookmark&&xe.default.createElement(We.Button,{variant:"subtle",size:"xs",mt:"xl",leftIcon:xe.default.createElement(mn,{size:"0.75rem"}),onClick:()=>n(!0)},"Add Bookmark")))),e.pathname&&e.searchParams&&xe.default.createElement(Il,{pathname:e.pathname,searchParams:e.searchParams,visible:a,onOk:()=>n(!1),onCancel:()=>n(!1)}))}function zi(e){let{classes:o,cx:t}=gl();return xe.default.createElement(be,{onClick:e.onClick,to:e.to,className:t(o.link,{[o.linkActive]:e.active})},e.children)}function Qi(e){return e.icon?e.icon:xe.default.createElement(We.Space,{w:30})}function Wi(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=Xi(e,o,f.href);l>a&&(a=l,r=f)}return r}function Xi(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 Ji(e){let o=(0,ea.useMantineTheme)(),[t,r]=(0,ro.useState)(localStorage.navbarOpen==="true"),a=D(),n=tr();function f(i){localStorage.navbarOpen=i.toString(),r(i)}function l(){f(!1)}function s(){f(!t)}return a.isLoading()?ro.default.createElement(Wr,null):ro.default.createElement(ea.AppShell,{styles:{main:{background:o.colorScheme==="dark"?o.colors.dark[8]:o.colors.gray[0]}},padding:0,fixed:!0,header:n&&ro.default.createElement(bn,{pathname:e.pathname,searchParams:e.searchParams,logo:e.logo,version:e.version,navbarToggle:s}),navbar:n&&t?ro.default.createElement(kn,{pathname:e.pathname,searchParams:e.searchParams,menus:e.menus,closeNavbar:l,displayAddBookmark:e.displayAddBookmark}):void 0},ro.default.createElement(lt,{key:`${e.pathname}?${e.searchParams?.toString()}`},ro.default.createElement(ro.Suspense,{fallback:ro.default.createElement(Wr,null)},e.children)))}var oa=m(require("react"));var hl=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(hl.Anchor,{href:o?.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},o?.title||"Download"))):null}function Bn(e){return oa.default.createElement("div",null,e.values?.map((o,t)=>oa.default.createElement("div",{key:"attatchment-"+t},oa.default.createElement(io,{value:o,maxWidth:e.maxWidth}))))}var An=require("@mantine/core");var ue=m(require("react"));var Bt=m(require("react"));function dt(e){let o=D(),t=(0,Bt.useRef)(null);function r(f){Q(f),t.current?.click()}function a(f){Q(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 Bt.default.createElement(Bt.default.Fragment,null,Bt.default.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:t,onChange:f=>a(f)}),e.children({onClick:r}))}function Fn(e){let[o,t]=(0,ue.useState)(e.defaultValue??[]),r=(0,ue.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return ue.default.createElement("table",{style:{width:"100%"}},ue.default.createElement("colgroup",null,ue.default.createElement("col",{width:"97%"}),ue.default.createElement("col",{width:"3%"})),ue.default.createElement("tbody",null,o.map((n,f)=>ue.default.createElement("tr",{key:`${f}-${o.length}`},ue.default.createElement("td",null,ue.default.createElement(io,{value:n,maxWidth:200})),ue.default.createElement("td",null,ue.default.createElement(An.ActionIcon,{title:"Remove",size:"sm",onClick:l=>{Q(l);let s=o.slice();s.splice(f,1),a(s)}},ue.default.createElement(Qo,null))))),ue.default.createElement("tr",null,ue.default.createElement("td",null),ue.default.createElement("td",null,ue.default.createElement(dt,{onUpload:n=>{a([...r.current,n])}},n=>ue.default.createElement(An.ActionIcon,{...n,title:"Add",size:"sm",color:"green"},ue.default.createElement(nr,{size:16})))))))}var Mn=require("@mantine/core"),Fo=m(require("react"));function cr(e){let[o,t]=(0,Fo.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return o?Fo.default.createElement(Fo.default.Fragment,null,Fo.default.createElement(io,{value:o,maxWidth:200}),Fo.default.createElement(Mn.Button,{onClick:a=>{Q(a),r(void 0)}},"Remove")):Fo.default.createElement(dt,{onUpload:r},a=>Fo.default.createElement(Mn.Button,{...a},"Upload..."))}var na=require("@medplum/core"),wt=m(require("react"));var ta=["meta","implicitRules","language","text","contained","extension","modifierExtension"];var yl=require("@mantine/core"),At=m(require("react")),$i=(0,yl.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 wn(e){let{children:o,compact:t}=e,{classes:r,cx:a}=$i();return At.default.createElement("dl",{className:a(r.root,{[r.compact]:t})},o)}function On(e){return At.default.createElement(At.default.Fragment,null,At.default.createElement("dt",null,e.term),At.default.createElement("dd",null,e.children))}var R=require("@medplum/core"),V=m(require("react"));var Cl=require("@medplum/core"),En=m(require("react"));function ct(e){return En.default.createElement(En.default.Fragment,null,(0,Cl.formatCodeableConcept)(e.value))}var vl=require("@medplum/core"),Ln=m(require("react"));function Rn(e){return Ln.default.createElement(Ln.default.Fragment,null,(0,vl.formatCoding)(e.value))}var ra=m(require("react"));var Nn=m(require("react"));function mr(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("]")),Nn.default.createElement(Nn.default.Fragment,null,t.join("").trim())}function Hn(e){let o=e.value;return o?ra.default.createElement(ra.default.Fragment,null,o.name,o.name&&": ",o.telecom?.map(t=>ra.default.createElement(mr,{key:`telecom-${o.name}-${t.value}`,value:t}))):null}var Sl=m(require("react"));function Vn(e){return Sl.default.createElement("div",null,e.value?.system,": ",e.value?.value)}var bl=require("@medplum/core"),qn=m(require("react"));function Gn(e){return qn.default.createElement(qn.default.Fragment,null,(0,bl.formatMoney)(e.value))}var Pl=require("@medplum/core"),Un=m(require("react"));function Ft(e){return Un.default.createElement(Un.default.Fragment,null,(0,Pl.formatQuantity)(e.value))}var Dl=require("@medplum/core"),zn=m(require("react"));function pr(e){return zn.default.createElement(zn.default.Fragment,null,(0,Dl.formatRange)(e.value))}var xr=m(require("react"));function Tl(e){let o=e.value;return o?xr.default.createElement(xr.default.Fragment,null,xr.default.createElement(Ft,{value:o.numerator}),"\xA0/\xA0",xr.default.createElement(Ft,{value:o.denominator})):null}var kl=require("@medplum/core"),aa=m(require("react"));function Wo(e){if(!e.value)return null;let o=e.value.display||e.value.reference||(0,kl.stringify)(e.value);return e.link!==!1&&e.value.reference?aa.default.createElement(be,{to:e.value},o):aa.default.createElement(aa.default.Fragment,null,o)}var Ir=m(require("react"));function Qn(e){let o=e.property,t=e.values??[],r=o.type?.[0]?.code;return Ir.default.createElement(Ir.default.Fragment,null,t.map((a,n)=>Ir.default.createElement("div",{key:`${n}-${t.length}`},Ir.default.createElement(ke,{arrayElement:!0,property:o,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))))}var Xo=require("@mantine/core");function ke(e){let{property:o,propertyType:t,value:r}=e;if(o?.path?.endsWith(".id"))return V.default.createElement(Xo.Box,{component:"div",sx:{display:"flex",gap:3,alignItems:"center"}},r,V.default.createElement(Xo.CopyButton,{value:r,timeout:2e3},({copied:n,copy:f})=>V.default.createElement(Xo.Tooltip,{label:n?"Copied":"Copy",withArrow:!0,position:"right"},V.default.createElement(Xo.ActionIcon,{color:n?"teal":"gray",onClick:f},n?V.default.createElement(ar,{size:"1rem"}):V.default.createElement(en,{size:"1rem"})))));if(o?.max==="*"&&!e.arrayElement)return t===R.PropertyType.Attachment?V.default.createElement(Bn,{values:r,maxWidth:e.maxWidth}):V.default.createElement(Qn,{property:o,values:r,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(t){case R.PropertyType.boolean:return V.default.createElement(V.default.Fragment,null,r===void 0?"":(!!r).toString());case R.PropertyType.SystemString:case R.PropertyType.string:return V.default.createElement("div",{style:{whiteSpace:"pre-wrap"}},r);case R.PropertyType.code:case R.PropertyType.date:case R.PropertyType.integer:case R.PropertyType.positiveInt:case R.PropertyType.unsignedInt:case R.PropertyType.uri:case R.PropertyType.url:return V.default.createElement(V.default.Fragment,null,r);case R.PropertyType.canonical:return V.default.createElement(Wo,{value:{reference:r},link:e.link});case R.PropertyType.dateTime:case R.PropertyType.instant:return V.default.createElement(V.default.Fragment,null,(0,R.formatDateTime)(r));case R.PropertyType.markdown:return V.default.createElement("pre",null,r);case R.PropertyType.Address:return V.default.createElement(Ga,{value:r});case R.PropertyType.Annotation:return V.default.createElement(V.default.Fragment,null,r?.text);case R.PropertyType.Attachment:return V.default.createElement(io,{value:r,maxWidth:e.maxWidth});case R.PropertyType.CodeableConcept:return V.default.createElement(ct,{value:r});case R.PropertyType.Coding:return V.default.createElement(Rn,{value:r});case R.PropertyType.ContactDetail:return V.default.createElement(Hn,{value:r});case R.PropertyType.ContactPoint:return V.default.createElement(mr,{value:r});case R.PropertyType.HumanName:return V.default.createElement(ir,{value:r});case R.PropertyType.Identifier:return V.default.createElement(Vn,{value:r});case R.PropertyType.Money:return V.default.createElement(Gn,{value:r});case R.PropertyType.Period:return V.default.createElement(V.default.Fragment,null,(0,R.formatPeriod)(r));case R.PropertyType.Quantity:case R.PropertyType.Duration:return V.default.createElement(Ft,{value:r});case R.PropertyType.Range:return V.default.createElement(pr,{value:r});case R.PropertyType.Ratio:return V.default.createElement(Tl,{value:r});case R.PropertyType.Reference:return V.default.createElement(Wo,{value:r,link:e.link});case R.PropertyType.Timing:return V.default.createElement(V.default.Fragment,null,(0,R.formatTiming)(r));case R.PropertyType.Dosage:case R.PropertyType.UsageContext:return V.default.createElement(Mt,{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 V.default.createElement(Mt,{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 Mt(e){let o=e.value,t=o.value;if(!t)return null;let r=o.type,a=na.globalSchema.types[r];return a?typeof t=="object"&&"name"in t&&Object.keys(t).length===1&&typeof t.name=="string"?wt.default.createElement("div",null,t.name):wt.default.createElement(wn,{compact:e.compact},Object.entries(a.properties).map(n=>{let f=n[0];if(ta.includes(f))return null;let l=n[1];l.path||(l.path=r+"."+f);let[s,i]=Xe(o,f);return e.ignoreMissingValues&&(!s||Array.isArray(s)&&s.length===0)?null:wt.default.createElement(On,{key:f,term:(0,na.getPropertyDisplayName)(f)},wt.default.createElement(ke,{property:l,propertyType:i,value:s,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))})):wt.default.createElement("div",null,r,"\xA0not implemented")}var $l=require("@mantine/core"),Dr=require("@medplum/core"),Oo=m(require("react"));var fa=require("@mantine/core"),gr=m(require("react"));function hr(e){return gr.default.createElement(fa.Group,{noWrap:!0},gr.default.createElement("div",null,e.children),gr.default.createElement("div",null,gr.default.createElement(fa.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk},(()=>null)())))}var Al=require("@mantine/core"),Fl=m(require("react"));function Be(e,o){return e?.issue?.filter(t=>Bl(t.expression?.[0],o))?.map(t=>t.details?.text)?.join(`
|
|
65
|
-
`)}function yr(e,o){return e?.issue?.filter(t=>Bl(t.expression?.[0],o))}function Bl(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 Fl.default.createElement(Al.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk,error:Be(e.outcome,e.htmlFor)},e.children)}var Io=require("@mantine/core"),la=require("@medplum/core"),Ae=m(require("react"));function Ki(e){let o=D(),t=oe(e.defaultValue),[r,a]=(0,Ae.useState)(),[n,f]=(0,Ae.useState)();return(0,Ae.useEffect)(()=>{t&&(f((0,la.deepClone)(t)),o.requestSchema(t.resourceType).then(a).catch(console.log))},[o,t]),!r||!n?Ae.default.createElement("div",null,"Loading..."):Ae.default.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:l=>{l.preventDefault(),e.onSubmit&&e.onSubmit(n)}},Ae.default.createElement(Io.Stack,{mb:"xl"},Ae.default.createElement(Je,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},Ae.default.createElement(Io.TextInput,{name:"resourceType",defaultValue:n.resourceType,disabled:!0})),Ae.default.createElement(Je,{title:"ID",htmlFor:"id",outcome:e.outcome},Ae.default.createElement(Io.TextInput,{name:"id",defaultValue:n.id,disabled:!0}))),Ae.default.createElement(Et,{typeName:n.resourceType,defaultValue:n,outcome:e.outcome,onChange:f}),Ae.default.createElement(Io.Group,{position:"right",mt:"xl"},Ae.default.createElement(Io.Button,{type:"submit"},"OK"),e.onDelete&&Ae.default.createElement(Io.Button,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(n)}},"Delete")))}function Ot(e,o,t,r,a){let n=r.type;if(n.length>1)for(let f of n){let l=o.replace("[x]",(0,la.capitalize)(f.code));l in e&&delete e[l]}return e[t]=a,e}var no=require("@mantine/core"),N=require("@medplum/core"),U=m(require("react"));var sa=m(require("react"));function Wn(e){let[o,t]=(0,sa.useState)(e.defaultValue);function r(a){let n=_i(a);t(n),e.onChange&&e.onChange(n)}return sa.default.createElement(kt,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:o&&ji(o),maxSelectedValues:1,onChange:r})}function ji(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function _i(e){if(e.length!==0)return{coding:e.map(o=>({system:o.system,code:o.code,display:o.display}))}}var ia=m(require("react"));function Xn(e){let[o,t]=(0,ia.useState)(e.defaultValue);function r(a){let n=a[0],f=n&&Yi(n);t(f),e.onChange&&e.onChange(f)}return ia.default.createElement(kt,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:o&&Zi(o),maxSelectedValues:1,onChange:r})}function Zi(e){return{system:e.system,code:e.code,display:e.display}}function Yi(e){return{system:e.system,code:e.code,display:e.display}}var ua=require("@mantine/core"),Jo=m(require("react"));var mt=require("@mantine/core"),Mo=m(require("react"));function Cr(e){let[o,t]=(0,Mo.useState)(e.defaultValue),r=(0,Mo.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 Mo.default.createElement(mt.Group,{spacing:"xs",grow:!0,noWrap:!0},Mo.default.createElement(mt.NativeSelect,{"data-testid":"system",defaultValue:o?.system,onChange:s=>n(s.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),Mo.default.createElement(mt.NativeSelect,{"data-testid":"use",defaultValue:o?.use,onChange:s=>f(s.currentTarget.value),data:["","home","work","temp","old","mobile"]}),Mo.default.createElement(mt.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:s=>l(s.currentTarget.value)}))}function Jn(e){let[o,t]=(0,Jo.useState)(e.defaultValue),r=(0,Jo.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 Jo.default.createElement(ua.Group,{spacing:"xs",grow:!0,noWrap:!0},Jo.default.createElement(ua.TextInput,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:o?.name,onChange:l=>n(l.currentTarget.value)}),Jo.default.createElement(Cr,{name:e.name+"-telecom",defaultValue:o?.telecom?.[0],onChange:f}))}var Ml=require("@mantine/core"),$n=require("@medplum/core"),wl=m(require("react"));function ao(e){return wl.default.createElement(Ml.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:eu(),defaultValue:Ol(e.defaultValue),autoFocus:e.autoFocus,error:Be(e.outcome,e.name),onChange:o=>{if(e.onChange){let t=o.currentTarget.value;e.onChange(El(t))}}})}function Ol(e){if(!e)return"";let o=new Date(e);return(0,$n.isValidDate)(o)?o.toLocaleDateString("sv")+"T"+o.toLocaleTimeString("sv"):""}function El(e){if(!e)return"";let o=new Date(e);return(0,$n.isValidDate)(o)?o.toISOString():""}function eu(){return"datetime-local"}var Ll=require("@mantine/core"),Rl=require("@medplum/core"),Nl=m(require("react"));function Hl(e){return Nl.default.createElement(Ll.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:(0,Rl.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 Kn(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 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 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=>l(u.currentTarget.value)}),uo.default.createElement(wo.TextInput,{name:e.name+"-family",placeholder:"Family",defaultValue:o?.family,onChange:u=>s(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 vr=require("@mantine/core"),Lt=m(require("react"));function jn(e){let[o,t]=(0,Lt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Lt.default.createElement(vr.Group,{spacing:"xs",grow:!0,noWrap:!0},Lt.default.createElement(vr.TextInput,{placeholder:"System",defaultValue:o?.system,onChange:a=>r({...o,system:a.currentTarget.value})}),Lt.default.createElement(vr.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:a=>r({...o,value:a.currentTarget.value})}))}var da=require("@mantine/core");var go=m(require("react")),ou=["USD","EUR","CAD","GBP","AUD"];function _n(e){let{onChange:o}=e,[t,r]=(0,go.useState)(e.defaultValue),a=(0,go.useCallback)(s=>{r(s),o&&o(s)},[o]),n=(0,go.useCallback)(s=>{a({...t,currency:s.currentTarget.value})},[t,a]),f=(0,go.useCallback)(s=>{a({...t,value:s.currentTarget.valueAsNumber})},[t,a]),l=go.default.createElement(da.NativeSelect,{defaultValue:t?.currency,data:ou,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:n});return go.default.createElement(da.TextInput,{type:"number",label:e.label,placeholder:e.placeholder??"Value",defaultValue:t?.value?.toString()??"USD",icon:go.default.createElement(on,{size:14}),rightSection:l,rightSectionWidth:92,onChange:f})}var Vl=require("@mantine/core"),Rt=m(require("react"));function ql(e){let[o,t]=(0,Rt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Rt.default.createElement(Vl.Group,{spacing:"xs",grow:!0,noWrap:!0},Rt.default.createElement(ao,{name:e.name+".start",placeholder:"Start",defaultValue:o?.start,onChange:a=>r({...o,start:a})}),Rt.default.createElement(ao,{name:e.name+".end",placeholder:"End",defaultValue:o?.end,onChange:a=>r({...o,end:a})}))}var xt=require("@mantine/core"),pt=m(require("react"));function Ye(e){let[o,t]=(0,pt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return pt.default.createElement(xt.Group,{spacing:"xs",grow:!0,noWrap:!0},pt.default.createElement(xt.NativeSelect,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:o?.comparator,data:["","<","<=",">=",">"],onChange:a=>r({...o,comparator:a.currentTarget.value})}),pt.default.createElement(xt.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:tu(a.currentTarget.value)})}}),pt.default.createElement(xt.TextInput,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:o?.unit,onChange:a=>r({...o,unit:a.currentTarget.value})}))}function tu(e){if(e)return parseFloat(e)}var Gl=require("@mantine/core"),Nt=m(require("react"));function Ht(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(Ye,{name:e.name+"-low",defaultValue:o?.low,onChange:a=>r({...o,low:a})}),Nt.default.createElement(Ye,{name:e.name+"-high",defaultValue:o?.high,onChange:a=>r({...o,high:a})}))}var Ul=require("@mantine/core"),Vt=m(require("react"));function zl(e){let[o,t]=(0,Vt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Vt.default.createElement(Ul.Group,{spacing:"xs",grow:!0,noWrap:!0},Vt.default.createElement(Ye,{name:e.name+"-numerator",defaultValue:o?.numerator,onChange:a=>r({...o,numerator:a})}),Vt.default.createElement(Ye,{name:e.name+"-denominator",defaultValue:o?.denominator,onChange:a=>r({...o,denominator:a})}))}var qt=require("@mantine/core"),Ql=require("@medplum/core"),co=m(require("react"));var Sr=require("@mantine/core"),br=require("@medplum/core"),Ve=m(require("react"));var ru={Observation:"code",User:"email:contains"},au=["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 nu(e){return{value:(0,br.getReferenceString)(e),label:(0,br.getDisplayString)(e),resource:e}}function Pr(e){let o=D(),t=e.resourceType,[r,a]=(0,Ve.useState)(),n=oe(e.defaultValue,a),f=e.onChange,l=(0,Ve.useCallback)(async(i,u)=>{let d=lu(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(it,{name:e.name,itemComponent:fu,defaultValue:n,placeholder:e.placeholder,maxSelectedValues:1,toKey:br.getReferenceString,toOption:nu,loadOptions:l,onChange:s,clearable:!0})}var fu=(0,Ve.forwardRef)(({label:e,resource:o,...t},r)=>Ve.default.createElement("div",{ref:r,...t},Ve.default.createElement(Sr.Group,{noWrap:!0},Ve.default.createElement(Le,{value:o}),Ve.default.createElement("div",null,Ve.default.createElement(Sr.Text,null,e),Ve.default.createElement(Sr.Text,{size:"xs",color:"dimmed"},o.birthDate)))));function lu(e){return ru[e]??(au.includes(e)?"name":"_id")}function It(e){let o=su(e.targetTypes),t=iu(e.defaultValue,o),[r,a]=(0,co.useState)(e.defaultValue),[n,f]=(0,co.useState)(t),l=(0,co.useRef)();l.current=r;let s=(0,co.useRef)();s.current=n;function i(u){a(u),e.onChange&&e.onChange(u)}return co.default.createElement(qt.Group,{spacing:"xs",grow:!0,noWrap:!0},o?co.default.createElement(qt.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(qt.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(Pr,{resourceType:n,name:e.name+"-id",placeholder:e.placeholder,defaultValue:r,onChange:u=>{i(u?(0,Ql.createReference)(u):void 0)}}))}function su(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 Zn=require("@mantine/core");var Ie=m(require("react"));function Yn(e){let[o,t]=(0,Ie.useState)(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),r=(0,Ie.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return Ie.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},Ie.default.createElement("colgroup",null,Ie.default.createElement("col",{width:"97%"}),Ie.default.createElement("col",{width:"3%"})),Ie.default.createElement("tbody",null,o.map((n,f)=>Ie.default.createElement("tr",{key:`${f}-${o.length}`},Ie.default.createElement("td",null,Ie.default.createElement(ho,{arrayElement:!0,property:e.property,name:e.name+"."+f,defaultValue:n,onChange:l=>{let s=[...r.current];s[f]=l,a(s)}})),Ie.default.createElement("td",{style:{textAlign:"right"}},Ie.default.createElement(Zn.ActionIcon,{title:"Remove",size:"sm",onClick:l=>{Q(l);let s=[...r.current];s.splice(f,1),a(s)}},Ie.default.createElement(Qo,null))))),Ie.default.createElement("tr",null,Ie.default.createElement("td",null),Ie.default.createElement("td",{style:{textAlign:"right"}},Ie.default.createElement(Zn.ActionIcon,{title:"Add",size:"sm",color:"green",onClick:n=>{Q(n);let f=[...r.current];f.push(void 0),a(f)}},Ie.default.createElement(bt,null))))))}var ge=require("@mantine/core"),Xl=require("@medplum/core"),j=m(require("react"));var uu=["sun","mon","tue","wed","thu","fri","sat"];function ef(e){let[o,t]=(0,j.useState)(e.defaultValue),[r,a]=(0,j.useState)(!1),n=(0,j.useRef)();return n.current=o,j.default.createElement(j.default.Fragment,null,j.default.createElement(ge.Group,{spacing:"xs",grow:!0,noWrap:!0},j.default.createElement("span",null,(0,Xl.formatTiming)(n.current)||"No repeat"),j.default.createElement(ge.Button,{onClick:()=>a(!0)},"Edit")),j.default.createElement(du,{visible:r,defaultValue:n.current,onOk:f=>{e.onChange&&e.onChange(f),t(f),a(!1)},onCancel:()=>a(!1)}))}var Wl={repeat:{period:1,periodUnit:"d"}};function du(e){let[o,t]=(0,j.useState)(e.defaultValue||Wl),r=(0,j.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 j.default.createElement(ge.Modal,{title:"Timing",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>e.onCancel()},j.default.createElement(ge.Stack,null,j.default.createElement(Je,{title:"Starts on",htmlFor:"timing-dialog-start"},j.default.createElement(ao,{name:"timing-dialog-start",onChange:i=>a(i)})),j.default.createElement(ge.Switch,{label:"Repeat",checked:!!o.repeat,onChange:i=>n(i.currentTarget.checked?Wl.repeat:void 0)}),o.repeat&&j.default.createElement(j.default.Fragment,null,j.default.createElement(Je,{title:"Repeat every",htmlFor:"timing-dialog-period"},j.default.createElement(ge.Group,{spacing:"xs",grow:!0,noWrap:!0},j.default.createElement(ge.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)}),j.default.createElement(ge.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"&&j.default.createElement(Je,{title:"Repeat on"},j.default.createElement(ge.Chip.Group,{multiple:!0,onChange:s},j.default.createElement(ge.Group,{position:"apart",mt:"md",spacing:"xs"},uu.map(i=>j.default.createElement(ge.Chip,{key:i,value:i,size:"xs",radius:"xl"},i.charAt(0).toUpperCase())))))),j.default.createElement(ge.Group,{position:"right"},j.default.createElement(ge.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?U.default.createElement(Fn,{name:r,defaultValue:a,onChange:e.onChange}):U.default.createElement(Yn,{property:o,name:r,defaultValue:a,onChange:e.onChange});let n=o.type;return n.length>1?U.default.createElement(Jl,{elementDefinitionTypes:n,...e}):U.default.createElement(of,{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,U.useState)(t);return U.default.createElement(no.Group,{spacing:"xs",grow:!0,noWrap:!0},U.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}))}),U.default.createElement(of,{...e,elementDefinitionType:r,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",(0,N.capitalize)(r.code)))}}))}function of(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 U.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:Be(e.outcome,r)});case N.PropertyType.date:return U.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:Be(e.outcome,r)});case N.PropertyType.dateTime:case N.PropertyType.instant:return U.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 U.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 U.default.createElement(dr,{property:o,name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.boolean:return U.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 U.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 U.default.createElement(Ua,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Annotation:return U.default.createElement(za,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Attachment:return U.default.createElement(cr,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.CodeableConcept:return U.default.createElement(Wn,{property:o,name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Coding:return U.default.createElement(Xn,{property:o,name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.ContactDetail:return U.default.createElement(Jn,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.ContactPoint:return U.default.createElement(Cr,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Extension:return U.default.createElement(Hl,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.HumanName:return U.default.createElement(Kn,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Identifier:return U.default.createElement(jn,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Money:return U.default.createElement(_n,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Period:return U.default.createElement(ql,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Duration:case N.PropertyType.Quantity:return U.default.createElement(Ye,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Range:return U.default.createElement(Ht,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Ratio:return U.default.createElement(zl,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Reference:return U.default.createElement(It,{name:r,defaultValue:a,targetTypes:cu(o),onChange:e.onChange});case N.PropertyType.Timing:return U.default.createElement(ef,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Dosage:case N.PropertyType.UsageContext:return U.default.createElement(Et,{typeName:t,defaultValue:a,onChange:e.onChange,outcome:e.outcome});default:return U.default.createElement(Et,{typeName:(0,N.getElementDefinitionTypeName)(o),defaultValue:a,onChange:e.onChange,outcome:e.outcome})}}function cu(e){return e?.type?.[0]?.targetProfile?.map(o=>o.split("/").pop())}function Et(e){let[o,t]=(0,Oo.useState)(e.defaultValue??{});function r(l){t(l),e.onChange&&e.onChange(l)}let a=e.typeName,n=Dr.globalSchema.types[a];if(!n)return Oo.default.createElement("div",null,a,"\xA0not implemented");let f={type:a,value:o};return Oo.default.createElement($l.Stack,null,Object.entries(n.properties).map(l=>{let s=l[0];if(s==="id"||ta.includes(s))return null;let i=l[1];if(!i.type)return null;let[u,d]=Xe(f,s),c=i.min!==void 0&&i.min>0;return i.type.length===1&&i.type[0].code==="boolean"?Oo.default.createElement(hr,{key:s,title:(0,Dr.getPropertyDisplayName)(s),description:i.definition,htmlFor:s},Oo.default.createElement(ho,{property:i,name:s,defaultValue:u,defaultPropertyType:d,outcome:e.outcome,onChange:(b,k)=>{r(Ot(o,s,k??s,l[1],b))}})):Oo.default.createElement(Je,{key:s,title:(0,Dr.getPropertyDisplayName)(s),description:i.definition,withAsterisk:c,htmlFor:s,outcome:e.outcome},Oo.default.createElement(ho,{property:i,name:s,defaultValue:u,defaultPropertyType:d,onChange:(b,k)=>{r(Ot(o,s,k??s,l[1],b))}}))}))}var Eo=require("@mantine/core"),fe=m(require("react")),mu=(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 Kl(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function tf(e){let{classes:o}=mu(),{onChangeMonth:t,onClick:r}=e,[a,n]=(0,fe.useState)(ca);function f(s){n(i=>{let u=new Date(i.getTime());return u.setMonth(i.getMonth()+s),t(u),u})}let l=(0,fe.useMemo)(()=>pu(a,e.slots),[a,e.slots]);return fe.default.createElement("div",null,fe.default.createElement(Eo.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},fe.default.createElement("p",{style:{flex:1}},Kl(a)),fe.default.createElement(Eo.Group,{position:"right",spacing:"xs"},fe.default.createElement(Eo.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>f(-1)},"<"),fe.default.createElement(Eo.Button,{variant:"outline","aria-label":"Next month",onClick:()=>f(1)},">"))),fe.default.createElement("table",{className:o.table},fe.default.createElement("thead",null,fe.default.createElement("tr",null,fe.default.createElement("th",null,"SUN"),fe.default.createElement("th",null,"MON"),fe.default.createElement("th",null,"TUE"),fe.default.createElement("th",null,"WED"),fe.default.createElement("th",null,"THU"),fe.default.createElement("th",null,"FRI"),fe.default.createElement("th",null,"SAT"))),fe.default.createElement("tbody",null,l.map((s,i)=>fe.default.createElement("tr",{key:"week-"+i},s.map((u,d)=>fe.default.createElement("td",{key:"day-"+d},u&&fe.default.createElement(Eo.Button,{disabled:!u.available,onClick:()=>r(u.date)},u.date.getDate()))))))))}function ca(){let e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}function pu(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:xu(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 xu(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 ma=require("@mantine/core"),jl=m(require("react")),Iu=(0,ma.createStyles)(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function Lo(e){let{children:o,...t}=e,{classes:r}=Iu();return jl.default.createElement(ma.Container,{className:r.root,...t},o)}var ds=m(require("react"));var le=require("@mantine/core"),Wt=require("@mantine/notifications"),Ko=require("@medplum/core");var S=m(require("react"));var ee=require("@mantine/core"),fo=require("@medplum/core"),g=m(require("react"));var Gt=require("@mantine/core"),rf=m(require("react")),gu=(0,Gt.createStyles)(e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));function af({value:e}){let{classes:o}=gu();return e?rf.default.createElement(Gt.Stack,{justify:"flex-start",spacing:"xs"},e.map(t=>t.text&&rf.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 Zl=require("@mantine/core"),pa=m(require("react"));var _l=require("@mantine/core"),Ut=require("@medplum/core"),Tr=m(require("react"));function mo(e){let{value:o,link:t,...r}=e,[a,n]=(0,Tr.useState)(),f=oe(o,n),l;if(a&&!(0,Ut.isOk)(a))l=`[${(0,Ut.normalizeErrorString)(a)}]`;else if(f)l=(0,Ut.getDisplayString)(f);else return null;return t?Tr.default.createElement(be,{to:o,...r},l):Tr.default.createElement(_l.Text,{component:"span",...r},l)}function Ro(e){return pa.default.createElement(Zl.Group,{spacing:"xs"},pa.default.createElement(Le,{size:24,radius:12,value:e.value,link:e.link}),pa.default.createElement(mo,{value:e.value,link:e.link}))}var Yl=require("@mantine/core"),es=m(require("react")),hu={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 kr(e){return es.default.createElement(Yl.Badge,{color:hu[e.status]},e.status)}var os=(0,ee.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}}));xa.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};function xa(e){let o=D(),t=oe(e.value),[r,a]=(0,g.useState)();if((0,g.useEffect)(()=>{t?.specimen&&Promise.allSettled(t.specimen.map(f=>o.readReference(f))).then(f=>f.filter(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 g.default.createElement(ee.Stack,null,g.default.createElement(ee.Title,null,"Diagnostic Report"),g.default.createElement(yu,{value:t}),!e.hideSpecimenInfo&&Cu(r),t.result&&g.default.createElement(ts,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&g.default.createElement(af,{value:n}))}function yu({value:e}){return g.default.createElement(ee.Group,{mt:"md",spacing:30},e.subject&&g.default.createElement("div",null,g.default.createElement(ee.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),g.default.createElement(ee.Text,null,g.default.createElement(Ro,{value:e.subject,link:!0}))),e.resultsInterpreter?.map(o=>g.default.createElement("div",{key:o.reference},g.default.createElement(ee.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),g.default.createElement(ee.Text,null,g.default.createElement(Ro,{value:o,link:!0})))),e.performer?.map(o=>g.default.createElement("div",{key:o.reference},g.default.createElement(ee.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Performer"),g.default.createElement(ee.Text,null,g.default.createElement(Ro,{value:o,link:!0})))),e.issued&&g.default.createElement("div",null,g.default.createElement(ee.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),g.default.createElement(ee.Text,null,(0,fo.formatDateTime)(e.issued))),e.status&&g.default.createElement("div",null,g.default.createElement(ee.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),g.default.createElement(ee.Text,null,(0,fo.capitalize)(e.status))))}function Cu(e){return g.default.createElement(ee.Stack,{spacing:"xs"},g.default.createElement(ee.Title,{order:2,size:"h6"},"Specimens"),g.default.createElement(ee.List,{type:"ordered"},e?.map(o=>g.default.createElement(ee.List.Item,{ml:"sm",key:`specimen-${o.id}`},g.default.createElement(ee.Group,{spacing:20},g.default.createElement(ee.Group,{spacing:5},g.default.createElement(ee.Text,{fw:500},"Collected:")," ",(0,fo.formatDateTime)(o.collection?.collectedDateTime)),g.default.createElement(ee.Group,{spacing:5},g.default.createElement(ee.Text,{fw:500},"Received:")," ",(0,fo.formatDateTime)(o.receivedTime)))))))}function ts(e){let{classes:o}=os();return g.default.createElement("table",{className:o.table},g.default.createElement("thead",null,g.default.createElement("tr",null,g.default.createElement("th",null,"Test"),g.default.createElement("th",null,"Value"),g.default.createElement("th",null,"Reference Range"),g.default.createElement("th",null,"Interpretation"),g.default.createElement("th",null,"Category"),g.default.createElement("th",null,"Performer"),g.default.createElement("th",null,"Status"))),g.default.createElement("tbody",null,g.default.createElement(rs,{value:e.value,hideObservationNotes:e.hideObservationNotes})))}function rs(e){return g.default.createElement(g.default.Fragment,null,e.value?.map(o=>g.default.createElement(vu,{key:`obs-${(0,fo.isReference)(o)?o.reference:o.id}`,hideObservationNotes:e.hideObservationNotes,value:o})))}function vu(e){let{classes:o,cx:t}=os(),r=oe(e.value);if(!r)return null;let a=!e.hideObservationNotes&&r.note,n=Pu(r);return g.default.createElement(g.default.Fragment,null,g.default.createElement("tr",{className:t({[o.criticalRow]:n})},g.default.createElement("td",{rowSpan:a?2:1},g.default.createElement(be,{to:r},g.default.createElement(ct,{value:r.code}))),g.default.createElement("td",null,g.default.createElement(Su,{value:r})),g.default.createElement("td",null,g.default.createElement(bu,{value:r.referenceRange})),g.default.createElement("td",null,r.interpretation&&r.interpretation.length>0&&g.default.createElement(ct,{value:r.interpretation[0]})),g.default.createElement("td",null,r.category&&r.category.length>0&&g.default.createElement(g.default.Fragment,null,r.category.map(f=>g.default.createElement("div",{key:`category-${(0,fo.formatCodeableConcept)(f)}`},g.default.createElement(ct,{value:f}))))),g.default.createElement("td",null,r.performer?.map(f=>g.default.createElement(Wo,{key:f.reference,value:f}))),g.default.createElement("td",null,r.status&&g.default.createElement(kr,{status:r.status}))),r.hasMember&&g.default.createElement(rs,{value:r.hasMember,hideObservationNotes:e.hideObservationNotes}),a&&g.default.createElement("tr",null,g.default.createElement("td",{colSpan:6},g.default.createElement(af,{value:r.note}))))}function Su(e){let o=e.value;return g.default.createElement(g.default.Fragment,null,(0,fo.formatObservationValue)(o))}function bu(e){let o=e.value&&e.value.length>0&&e.value[0];return o?o.text?g.default.createElement(g.default.Fragment,null,o.text):g.default.createElement(pr,{value:o}):null}function Pu(e){let o=e.interpretation?.[0]?.coding?.[0]?.code;return o==="AA"||o==="LL"||o==="HH"||o==="A"}var zt=require("@mantine/core"),as=m(require("react")),Du=(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%"}}})),Tu={shadow:"xs",radius:"md",withBorder:!0};function gt(e){let{className:o,children:t,width:r,fill:a,unstyled:n,...f}=(0,zt.useComponentDefaultProps)("Panel",Tu,e),{classes:l,cx:s}=Du({width:r,fill:a},{name:"Panel",unstyled:n});return as.default.createElement(zt.Paper,{className:s(l.paper,o),...f},t)}var fs=require("@mantine/core"),$o=require("@medplum/core"),de=m(require("react"));var ku=(0,fs.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 ls(e){let{classes:o}=ku(),t=D(),[r,a]=(0,de.useState)();if((0,de.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?de.default.createElement("table",{className:o.root},de.default.createElement("colgroup",null,de.default.createElement("col",{style:{width:"30%"}}),de.default.createElement("col",{style:{width:"35%"}}),de.default.createElement("col",{style:{width:"35%"}})),de.default.createElement("thead",null,de.default.createElement("tr",null,de.default.createElement("th",null,"Property"),de.default.createElement("th",null,"Before"),de.default.createElement("th",null,"After"))),de.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]=Xe((0,$o.toTypedValue)(e.original),l),[d,c]=Xe((0,$o.toTypedValue)(e.revised),l);return ns(i)&&ns(d)||(0,$o.stringify)(i)===(0,$o.stringify)(d)?null:de.default.createElement("tr",{key:l},de.default.createElement("td",null,(0,$o.getPropertyDisplayName)(l)),de.default.createElement("td",{className:o.removed},de.default.createElement(ke,{property:s,propertyType:u,value:i,ignoreMissingValues:!0})),de.default.createElement("td",{className:o.added},de.default.createElement(ke,{property:s,propertyType:c,value:d,ignoreMissingValues:!0})))}))):null}function ns(e){return!e||Array.isArray(e)&&e.length===0||typeof e=="object"&&Object.keys(e).length===0}var Qt=m(require("react"));function Ia(e){let o=D(),t=oe(e.value),[r,a]=(0,Qt.useState)();return(0,Qt.useEffect)(()=>{t&&o.requestSchema(t.resourceType).then(a).catch(console.log)},[o,t]),!r||!t?null:Qt.default.createElement(Mt,{value:{type:t.resourceType,value:e.forceUseInput?e.value:t},ignoreMissingValues:e.ignoreMissingValues})}var po=require("@mantine/core"),ga=require("@medplum/core");var ye=m(require("react"));function nf(e){return ye.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,l=e.dateTime??o.meta?.lastUpdated;return ye.default.createElement(gt,{"data-testid":"timeline-item",fill:!0,...n},ye.default.createElement(po.Group,{position:"apart",spacing:8,mx:"xs",my:"sm"},ye.default.createElement(Le,{value:f,link:!0,size:"md"}),ye.default.createElement("div",{style:{flex:1}},ye.default.createElement(po.Text,{size:"sm"},ye.default.createElement(mo,{color:"dark",weight:500,value:f,link:!0})),ye.default.createElement(po.Text,{size:"xs"},ye.default.createElement(be,{color:"dimmed",to:e.resource},(0,ga.formatDateTime)(l)),ye.default.createElement(po.Text,{component:"span",color:"dimmed",mx:8},"\xB7"),ye.default.createElement(be,{color:"dimmed",to:e.resource},e.resource.resourceType))),a&&ye.default.createElement(po.Menu,{position:"bottom-end",shadow:"md",width:200},ye.default.createElement(po.Menu.Target,null,ye.default.createElement(po.ActionIcon,{radius:"xl","aria-label":`Actions for ${(0,ga.getReferenceString)(e.resource)}`},ye.default.createElement(tn,null))),a)),ye.default.createElement(lt,null,r&&ye.default.createElement("div",{style:{padding:"0 16px 16px 16px"}},e.children),!r&&ye.default.createElement(ye.default.Fragment,null,e.children)))}function ff(e,o){e.sort((t,r)=>{let a=ss(t,o),n=ss(r,o);return a>n?1:a<n?-1:is(t,o)-is(r,o)})}function ss(e,o){if(!us(e,o)){let t=e.priority;if(typeof t=="string")return{stat:4,asap:3,urgent:2}[t]??0}return 0}function is(e,o){if(!us(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 us(e,o){return!!o&&e.resourceType===o.resourceType&&e.id===o.id}var Bu=(0,le.createStyles)(e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}}));function Ho(e){let o=D(),t=Po(),r=o.getProfile(),a=(0,S.useRef)(null),n=oe(e.value),[f,l]=(0,S.useState)(),[s,i]=(0,S.useState)([]),u=e.loadTimelineResources,d=(0,S.useRef)(s);d.current=s;let c=(0,S.useCallback)(P=>{ff(P,n),P.reverse(),i(P)},[n]),b=(0,S.useCallback)(P=>{let G=[];for(let lo of P){if(lo.status!=="fulfilled")continue;let He=lo.value;if(He.type==="history"&&l(He),He.entry)for(let nt of He.entry)G.push(nt.resource)}c(G)},[c]),k=(0,S.useCallback)(P=>c([...d.current,P]),[c]),F=(0,S.useCallback)(()=>{let P,G;"resourceType"in e.value?(P=e.value.resourceType,G=e.value.id):[P,G]=e.value.reference?.split("/"),u(o,P,G).then(b).catch(console.log)},[o,e.value,u,b]);(0,S.useEffect)(()=>F(),[F]);function h(P){!n||!e.createCommunication||o.createResource(e.createCommunication(n,r,P)).then(G=>k(G)).catch(console.log)}function B(P){!n||!e.createMedia||o.createResource(e.createMedia(n,r,P)).then(G=>k(G)).then(()=>(0,Wt.updateNotification)({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:S.default.createElement(ar,{size:16}),autoClose:2e3})).catch(G=>(0,Wt.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,Ko.normalizeErrorString)(G),icon:S.default.createElement(an,{size:16}),autoClose:2e3}))}function x(P,G){return o.updateResource({...P,priority:G})}function C(P){x(P,"stat").then(F).catch(console.log)}function v(P){x(P,"routine").then(F).catch(console.log)}function H(P){t(`/${P.resourceType}/${P.id}`)}function Re(P){t(`/${P.resourceType}/${P.id}/edit`)}function Ne(P){t(`/${P.resourceType}/${P.id}/delete`)}function Oe(P){t(`/${P.resourceType}/${P.id}/_history/${P.meta?.versionId}`)}function he(){(0,Wt.showNotification)({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})}function Yt(P){(0,Wt.updateNotification)({id:"upload-notification",loading:!0,title:"Uploading...",message:Lu(P),autoClose:!1,withCloseButton:!1})}return n?S.default.createElement(nf,null,e.createCommunication&&S.default.createElement(gt,null,S.default.createElement(ne,{testid:"timeline-form",onSubmit:P=>{h(P.text);let G=a.current;G&&(G.value="",G.focus())}},S.default.createElement(le.Group,{spacing:"xs",noWrap:!0,style:{width:"100%"}},S.default.createElement(Le,{value:r}),S.default.createElement(le.TextInput,{name:"text",ref:a,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),S.default.createElement(le.ActionIcon,{type:"submit",radius:"xl",color:"blue",variant:"filled"},S.default.createElement(un,{size:16})),S.default.createElement(dt,{onUpload:B,onUploadStart:he,onUploadProgress:Yt},P=>S.default.createElement(le.ActionIcon,{...P,radius:"xl",color:"blue",variant:"filled"},S.default.createElement(nr,{size:16})))))),s.map(P=>{if(!P)return null;let G=`${P.resourceType}/${P.id}/${P.meta?.versionId}`;if(P.resourceType===n.resourceType&&P.id===n.id)return S.default.createElement(Au,{key:G,history:f,resource:P,onDetails:Oe});switch(P.resourceType){case"AuditEvent":return S.default.createElement(Ou,{key:G,resource:P,onDetails:H});case"Communication":return S.default.createElement(Mu,{key:G,resource:P,onPin:P.priority!=="stat"?C:void 0,onUnpin:P.priority==="stat"?v:void 0,onDetails:H,onEdit:Re,onDelete:Ne});case"DiagnosticReport":return S.default.createElement(Eu,{key:G,resource:P,onDetails:H,onEdit:Re,onDelete:Ne});case"Media":return S.default.createElement(wu,{key:G,resource:P,onDetails:H,onEdit:Re,onDelete:Ne});default:return S.default.createElement(No,{key:G,resource:P,padding:!0},S.default.createElement(Ia,{value:P,ignoreMissingValues:!0}))}})):S.default.createElement(le.Center,{style:{width:"100%",height:"100%"}},S.default.createElement(le.Loader,null))}function Xt(e){return S.default.createElement(le.Menu.Dropdown,null,S.default.createElement(le.Menu.Label,null,"Resource"),e.onPin&&S.default.createElement(le.Menu.Item,{icon:S.default.createElement(dn,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${(0,Ko.getReferenceString)(e.resource)}`},"Pin"),e.onUnpin&&S.default.createElement(le.Menu.Item,{icon:S.default.createElement(cn,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${(0,Ko.getReferenceString)(e.resource)}`},"Unpin"),e.onDetails&&S.default.createElement(le.Menu.Item,{icon:S.default.createElement(ln,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${(0,Ko.getReferenceString)(e.resource)}`},"Details"),e.onEdit&&S.default.createElement(le.Menu.Item,{icon:S.default.createElement(rn,{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(le.Menu.Divider,null),S.default.createElement(le.Menu.Label,null,"Danger zone"),S.default.createElement(le.Menu.Item,{color:"red",icon:S.default.createElement(sr,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${(0,Ko.getReferenceString)(e.resource)}`},"Delete")))}function Au(e){let o=Fu(e.history,e.resource);return o?S.default.createElement(No,{resource:e.resource,padding:!0,popupMenuItems:S.default.createElement(Xt,{...e})},S.default.createElement(ls,{original:o,revised:e.resource})):S.default.createElement(No,{resource:e.resource,padding:!0,popupMenuItems:S.default.createElement(Xt,{...e})},S.default.createElement("h3",null,"Created"),S.default.createElement(Ia,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0}))}function Fu(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 Mu(e){let{classes:o}=Bu(),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(Xt,{...e})},S.default.createElement("p",null,e.resource.payload?.[0]?.contentString))}function wu(e){let o=e.resource.content?.contentType,t=o&&!o.startsWith("image/")&&!o.startsWith("video/")&&o!=="application/pdf";return S.default.createElement(No,{resource:e.resource,padding:!!t,popupMenuItems:S.default.createElement(Xt,{...e})},S.default.createElement(io,{value:e.resource.content}))}function Ou(e){return S.default.createElement(No,{resource:e.resource,padding:!0,popupMenuItems:S.default.createElement(Xt,{...e})},S.default.createElement(le.ScrollArea,null,S.default.createElement("pre",null,e.resource.outcomeDesc)))}function Eu(e){return S.default.createElement(No,{resource:e.resource,padding:!0,popupMenuItems:S.default.createElement(Xt,{...e})},S.default.createElement(xa,{value:e.resource}))}function Lu(e){if(e.lengthComputable){let o=100*e.loaded/e.total;return`Uploaded: ${lf(e.loaded)} / ${lf(e.total)} ${o.toFixed(2)}%`}return`Uploaded: ${lf(e.loaded)}`}function lf(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 Ru(e){return ds.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 sf=m(require("react"));function Br(e){let{children:o,...t}=e;return sf.default.createElement(Lo,null,sf.default.createElement(gt,{...t},o))}var Ar=require("@medplum/core"),cs=m(require("react"));function Nu(e){return cs.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,Ar.createReference)(o),subject:o.subject,sender:(0,Ar.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",encounter:(0,Ar.createReference)(o),subject:o.subject,operator:(0,Ar.createReference)(t),issued:new Date().toISOString(),content:r})})}var _t=require("@mantine/core"),Ds=require("@medplum/core"),_=m(require("react"));var ms=require("@medplum/core"),ps=m(require("react"));function xs(e){let o;try{o=(0,ms.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 ps.default.createElement(ke,{value:o[0]||"",propertyType:e.propertyType})}var z=require("@mantine/core"),ot=require("@medplum/core");var y=m(require("react"));var jo=require("@mantine/core"),ht=m(require("react"));function gs(e){return ht.default.createElement(jo.Modal,{title:"Export",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},ht.default.createElement(jo.Box,{display:"flex",sx:{justifyContent:"space-between"}},e.exportCsv&&ht.default.createElement(Is,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&ht.default.createElement(Is,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})),ht.default.createElement(jo.Text,{sx:{marginTop:"10px",marginLeft:"2px"}},"Limited to 1000 records"))}function Is(e){return ht.default.createElement(jo.Button,{onClick:()=>{e.exportLogic(),e.onCancel()}},`Export as ${e.text}`)}var _o=require("@mantine/core"),va=require("@medplum/core"),X=m(require("react"));var M=require("@medplum/core"),Fr=m(require("react"));var Hu={string:[M.Operator.EQUALS,M.Operator.NOT,M.Operator.CONTAINS,M.Operator.EXACT],fulltext:[M.Operator.EQUALS,M.Operator.NOT,M.Operator.CONTAINS,M.Operator.EXACT],token:[M.Operator.EQUALS,M.Operator.NOT],reference:[M.Operator.EQUALS,M.Operator.NOT],numeric:[M.Operator.EQUALS,M.Operator.NOT_EQUALS,M.Operator.GREATER_THAN,M.Operator.LESS_THAN,M.Operator.GREATER_THAN_OR_EQUALS,M.Operator.LESS_THAN_OR_EQUALS],quantity:[M.Operator.EQUALS,M.Operator.NOT_EQUALS,M.Operator.GREATER_THAN,M.Operator.LESS_THAN,M.Operator.GREATER_THAN_OR_EQUALS,M.Operator.LESS_THAN_OR_EQUALS],date:[M.Operator.EQUALS,M.Operator.NOT_EQUALS,M.Operator.GREATER_THAN,M.Operator.LESS_THAN,M.Operator.GREATER_THAN_OR_EQUALS,M.Operator.LESS_THAN_OR_EQUALS,M.Operator.STARTS_AFTER,M.Operator.ENDS_BEFORE,M.Operator.APPROXIMATELY],datetime:[M.Operator.EQUALS,M.Operator.NOT_EQUALS,M.Operator.GREATER_THAN,M.Operator.LESS_THAN,M.Operator.GREATER_THAN_OR_EQUALS,M.Operator.LESS_THAN_OR_EQUALS,M.Operator.STARTS_AFTER,M.Operator.ENDS_BEFORE,M.Operator.APPROXIMATELY]},Vu={eq:"equals",ne:"not equals",gt:"greater than",lt:"less than",ge:"greater than or equals",le:"less than or equals",sa:"starts after",eb:"ends before",ap:"approximately",contains:"contains",exact:"exact",text:"text",not:"not",above:"above",below:"below",in:"in","not-in":"not in","of-type":"of type",missing:"missing",identifier:"identifier",iterate:"iterate"};function Jt(e,o){return{...e,filters:o,offset:0,name:void 0}}function qu(e){return Jt(e,[])}function Mr(e,o){return Jt(e,(e.filters??[]).filter(t=>t.code!==o))}function yt(e,o,t,r,a){a&&(e=Mr(e,o));let n=[];return e.filters&&n.push(...e.filters),n.push({code:o,operator:t,value:r??""}),Jt(e,n)}function Gu(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 uf(e,o){if(!e.filters)return e;let t=[...e.filters];return t.splice(o,1),{...e,filters:t,name:void 0}}function df(e,o){return pf(e,o,-1)}function cf(e,o){return pf(e,o,0)}function mf(e,o){return pf(e,o,1)}function pf(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),ha(e,o,r,a)}function xf(e,o){return hf(e,o,-1)}function If(e,o){return hf(e,o,0)}function gf(e,o){return hf(e,o,1)}function hf(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),ha(e,o,r,a)}function yf(e,o){let t=new Date;return t.setMonth(0),t.setDate(1),t.setHours(0,0,0,0),ha(e,o,t,new Date)}function ha(e,o,t,r){return e=Mr(e,o),e=hs(e,o,M.Operator.GREATER_THAN_OR_EQUALS,t),e=hs(e,o,M.Operator.LESS_THAN_OR_EQUALS,r),e}function hs(e,o,t,r){return yt(e,o,t,r.toISOString())}function ya(e,o,t=!0){return yt(e,o,M.Operator.MISSING,t.toString())}function ys(e,o){return e.offset===o?e:{...e,offset:o,name:void 0}}function Cf(e,o){let t=e.count??M.DEFAULT_SEARCH_COUNT,r=(o-1)*t;return ys(e,r)}function Ca(e,o,t){return o===vf(e)&&t!==void 0&&t===Sf(e)?e:{...e,sortRules:[{code:o,descending:!!t}],name:void 0}}function Uu(e,o){let t=!1;return vf(e)===o&&(t=!Sf(e)),Ca(e,o,t)}function vf(e){let o=e.sortRules;if(!o||o.length===0)return;let t=o[0].code;return t.startsWith("-")?t.substr(1):t}function Sf(e){let o=e.sortRules;return!o||o.length===0?!1:!!o[0].descending}function bf(e){return Hu[e.type]}function $t(e){return Vu[e]??""}function qe(e){let o=e;return o.includes(".")&&(o=o.split(".").pop()),o==="id"?"ID":o==="versionId"?"Version ID":(o=o.replace("[x]",""),o=o.replace(/([A-Z])/g," $1"),o=o.replace(/[-_]/g," "),o=o.replace(/\s+/g," "),o=o.trim(),o.split(/\s/).map(M.capitalize).join(" "))}function Pf(e,o){let t=o.name;return t==="id"?e.id:t==="meta.versionId"?e.meta?.versionId:t==="_lastUpdated"?(0,M.formatDateTime)(e.meta?.lastUpdated):o.elementDefinition&&`${e.resourceType}.${o.name}`===o.elementDefinition.path?zu(e,o.elementDefinition):o.searchParams&&o.searchParams.length===1&&o.name===o.searchParams[0].code?Qu(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(ke,{property:o,propertyType:a,value:r,maxWidth:200,ignoreMissingValues:!0,link:!1}):null}function Qu(e,o){let t=(0,M.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(ke,{key:`${a}-${t.length}`,propertyType:r.type,value:r.value,maxWidth:200,ignoreMissingValues:!0,link:!1})))}function Df(e){let[o,t]=(0,X.useState)({search:JSON.parse((0,va.stringify)(e.search))}),r=(0,X.useRef)(null),a=(0,X.useRef)(null);(0,X.useEffect)(()=>{t({search:e.search})},[e.search]);function n(x){x.key==="Enter"&&i()}function f(){i()}function l(x){x.key==="Enter"&&u()}function s(){u()}function i(){let x=o.search.fields??[],C=r.current?.value;if(C){let v=[...x,C];t({search:{...o.search,fields:v}})}}function u(){let x=o.search.fields??[],C=a.current?.value;if(C){let v=[...x];v.splice(v.indexOf(C),1),t({search:{...o.search,fields:v}})}}function d(){let x=o.search.fields??[],C=a.current?.value;if(!C)return;let v=[...x],H=v.indexOf(C);H<=0||(b(v,H,H-1),t({search:{...o.search,fields:v}}))}function c(){let x=o.search.fields??[],C=a.current?.value;if(!C)return;let v=[...x],H=v.indexOf(C);H>=v.length-1||(b(v,H,H+1),t({search:{...o.search,fields:v}}))}function b(x,C,v){let H=x[C];x[C]=x[v],x[v]=H}if(!e.visible)return null;let k=e.search.resourceType,F=va.globalSchema.types[k],h=o.search.fields??[],B=Wu(F).filter(x=>!h.includes(x)).sort((x,C)=>x.localeCompare(C));return X.default.createElement(_o.Modal,{title:"Fields",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},X.default.createElement("div",null,X.default.createElement("table",{style:{margin:"auto"}},X.default.createElement("thead",null,X.default.createElement("tr",null,X.default.createElement("th",{colSpan:2,align:"center"},"Available"),X.default.createElement("th",{colSpan:2,align:"center"},"Selected"))),X.default.createElement("tbody",null,X.default.createElement("tr",null,X.default.createElement("td",{colSpan:2,align:"center"},X.default.createElement("select",{ref:r,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:x=>n(x),onDoubleClick:()=>f(),"data-testid":"available"},B.map(x=>X.default.createElement("option",{key:x,value:x},qe(x))))),X.default.createElement("td",{colSpan:2,align:"center"},X.default.createElement("select",{ref:a,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:x=>l(x),onDoubleClick:()=>s(),"data-testid":"selected"},h.map(x=>X.default.createElement("option",{key:x,value:x},qe(x))))))),X.default.createElement("tfoot",null,X.default.createElement("tr",null,X.default.createElement("td",{align:"center"},X.default.createElement(_o.Button,{compact:!0,variant:"outline",onClick:i},"Add")),X.default.createElement("td",{align:"center"},X.default.createElement(_o.Button,{compact:!0,variant:"outline",onClick:u},"Remove")),X.default.createElement("td",{align:"center"},X.default.createElement(_o.Button,{compact:!0,variant:"outline",onClick:d},"Up")),X.default.createElement("td",{align:"center"},X.default.createElement(_o.Button,{compact:!0,variant:"outline",onClick:c},"Down")))))),X.default.createElement(_o.Button,{onClick:()=>e.onOk(o.search)},"OK"))}function Wu(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"),wr=require("@medplum/core"),E=m(require("react"));var xo=require("@medplum/core"),Kt=m(require("react"));function Sa(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 Kt.default.createElement(mo,{value:{reference:t.value}});let a=(0,xo.getSearchParameterDetails)(o,r);if(t.code==="_lastUpdated"||a.type===xo.SearchParameterType.DATETIME)return Kt.default.createElement(Kt.default.Fragment,null,(0,xo.formatDateTime)(t.value))}return Kt.default.createElement(Kt.default.Fragment,null,t.value)}var jt=require("@mantine/core"),Vo=require("@medplum/core"),Zo=m(require("react"));function ba(e){let o=(0,Vo.getSearchParameterDetails)(e.resourceType,e.searchParam),t="filter-value";switch(o.type){case Vo.SearchParameterType.REFERENCE:return Zo.default.createElement(It,{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(jt.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(jt.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(jt.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:Xu(e.defaultValue),autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(`${r.value}`):e.onChange("")}});default:return Zo.default.createElement(jt.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 Xu(e){if(e){let[o,t,r]=e.split("|");if(o)return{value:parseFloat(o),system:t,unit:r}}}function Tf(e){let[o,t]=(0,E.useState)(JSON.parse((0,wr.stringify)(e.search))),[r,a]=(0,E.useState)(-1),n=(0,E.useRef)(o);n.current=o,(0,E.useEffect)(()=>{t(JSON.parse((0,wr.stringify)(e.search)))},[e.search]);function f(u){t(yt(n.current,u.code,u.operator,u.value))}if(!e.visible)return null;let l=e.search.resourceType,s=wr.globalSchema.types[l].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(Cs,{key:`filter-${u.code}-${u.operator}-${u.value}-input`,resourceType:l,searchParams:s,defaultValue:u,okText:"Save",onOk:c=>{let b=[...i];b[d]=c,t(Jt(n.current,b)),a(-1)},onCancel:()=>a(-1)}):E.default.createElement(Ju,{key:`filter-${u.code}-${u.operator}-${u.value}-display`,resourceType:l,searchParams:s,filter:u,onEdit:()=>a(d),onDelete:()=>t(uf(n.current,d))})),E.default.createElement(Cs,{resourceType:l,searchParams:s,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 Ju(e){let{filter:o}=e;return E.default.createElement("tr",null,E.default.createElement("td",null,qe(o.code)),E.default.createElement("td",null,$t(o.operator)),E.default.createElement("td",null,E.default.createElement(Sa,{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 Cs(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&&bf(l);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,s&&E.default.createElement(eo.NativeSelect,{"data-testid":"filter-operation",defaultValue:o.operator,onChange:i=>n(i.currentTarget.value),data:["",...s.map(i=>({value:i,label:$t(i)}))]})),E.default.createElement("td",null,l&&o.operator&&E.default.createElement(ba,{resourceType:e.resourceType,searchParam:l,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 vs(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(ne,{onSubmit:r},yo.default.createElement(Yo.Grid,null,yo.default.createElement(Yo.Grid.Col,{span:10},yo.default.createElement(ba,{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 O=require("@mantine/core"),Pe=require("@medplum/core");var p=m(require("react"));function Ss(e){if(!e.searchParams)return null;function o(n,f){a(Ca(e.search,n.code,f))}function t(n){a(Mr(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($u,{search:e.search,searchParam:e.searchParams[0],onSort:o,onPrompt:r,onChange:a,onClear:t}):p.default.createElement(O.Menu.Dropdown,null,e.searchParams.map(n=>p.default.createElement(O.Menu.Item,{key:n.code},qe(n.code))))}function $u(e){switch(e.searchParam.type){case"date":return p.default.createElement(Ku,{...e});case"number":case"quantity":return p.default.createElement(ju,{...e});case"reference":return p.default.createElement(_u,{...e});case"string":case"token":case"uri":return p.default.createElement(Zu,{...e});default:return p.default.createElement(p.default.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function Ku(e){let{searchParam:o}=e,t=o.code;return p.default.createElement(O.Menu.Dropdown,null,p.default.createElement(O.Menu.Item,{icon:p.default.createElement(fr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Oldest to Newest"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(lr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Newest to Oldest"),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Dt,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.EQUALS)},"Equals..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Pt,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.NOT_EQUALS)},"Does not equal..."),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Ur,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.ENDS_BEFORE)},"Before..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Gr,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.STARTS_AFTER)},"After..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement($a,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.EQUALS)},"Between..."),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(mf(e.search,t))},"Tomorrow"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(cf(e.search,t))},"Today"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(df(e.search,t))},"Yesterday"),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(gf(e.search,t))},"Next Month"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(If(e.search,t))},"This Month"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(xf(e.search,t))},"Last Month"),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Do,{size:14}),onClick:()=>e.onChange(yf(e.search,t))},"Year to date"),p.default.createElement(Pa,{...e}))}function ju(e){let{searchParam:o}=e;return p.default.createElement(O.Menu.Dropdown,null,p.default.createElement(O.Menu.Item,{icon:p.default.createElement(fr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Smallest to Largest"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(lr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Largest to Smallest"),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Dt,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.EQUALS)},"Equals..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Pt,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.NOT_EQUALS)},"Does not equal..."),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Gr,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.GREATER_THAN)},"Greater than..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Tt,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Ur,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.LESS_THAN)},"Less than..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Tt,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),p.default.createElement(Pa,{...e}))}function _u(e){let{searchParam:o}=e;return p.default.createElement(O.Menu.Dropdown,null,p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Dt,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.EQUALS)},"Equals..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Pt,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.NOT)},"Does not equal..."),p.default.createElement(Pa,{...e}))}function Zu(e){let{searchParam:o}=e;return p.default.createElement(O.Menu.Dropdown,null,p.default.createElement(O.Menu.Item,{icon:p.default.createElement(fr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort A to Z"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(lr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Z to A"),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Dt,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.EQUALS)},"Equals..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Pt,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.NOT)},"Does not equal..."),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(ja,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.CONTAINS)},"Contains..."),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Ka,{size:14}),onClick:()=>e.onPrompt(o,Pe.Operator.EQUALS)},"Does not contain..."),p.default.createElement(Pa,{...e}))}function Pa(e){let{searchParam:o}=e,t=o.code;return p.default.createElement(p.default.Fragment,null,p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Xa,{size:14}),onClick:()=>e.onChange(ya(e.search,t))},"Missing"),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(Wa,{size:14}),onClick:()=>e.onChange(ya(e.search,t,!1))},"Not missing"),p.default.createElement(O.Menu.Divider,null),p.default.createElement(O.Menu.Item,{icon:p.default.createElement(yn,{size:14}),onClick:()=>e.onClear(o)},"Clear filters"))}var Da=require("@medplum/core");function bs(e){let o=e.resourceType,t=[];for(let r of e.fields||["id","_lastUpdated"])t.push(Yu(o,r));return t}function Yu(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=Da.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,Da.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}},ka=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}},ed=(0,z.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 Ps(e){let{classes:o}=ed(),t=D(),[r,a]=(0,y.useState)(!1),[n,f]=(0,y.useState)(),{search:l,onLoad:s}=e,[i,u]=(0,y.useState)({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,exportDialogVisible:!1,filterDialogVisible:!1}),d=(0,y.useRef)(i);d.current=i;let c=l.total??"accurate",b=(0,y.useCallback)(A=>{f(void 0),t.search(l.resourceType,(0,ot.formatSearchQuery)({...l,total:c,fields:void 0}),A).then(Y=>{u({...d.current,searchResponse:Y}),s&&s(new ka(Y))}).catch(Y=>{u({...d.current,searchResponse:void 0}),f(Y)})},[t,l,c,s]),k=(0,y.useCallback)(()=>{u({...d.current,searchResponse:void 0}),b({cache:"reload"})},[b]);(0,y.useEffect)(()=>{b()},[b]);function F(A,Y){A.stopPropagation();let Te=A.target.checked,Ee={...d.current.selected};Te?Ee[Y]=!0:delete Ee[Y],u({...d.current,selected:Ee})}function h(A){A.stopPropagation();let pe=A.target.checked,Te={},Ee=d.current.searchResponse;pe&&Ee?.entry&&Ee.entry.forEach(er=>{er.resource?.id&&(Te[er.resource.id]=!0)}),u({...d.current,selected:Te})}function B(){let A=d.current;if(!A.searchResponse?.entry||A.searchResponse.entry.length===0)return!1;for(let Y of A.searchResponse.entry)if(Y.resource?.id&&!A.selected[Y.resource.id])return!1;return!0}function x(A){e.onChange&&e.onChange(new Ta(A))}function C(A,Y){if(Xr(A.target)||A.button===2)return;Q(A);let pe=A.button===1||A.ctrlKey||A.metaKey;!pe&&e.onClick&&e.onClick(new et(Y,A)),pe&&e.onAuxClick&&e.onAuxClick(new et(Y,A))}function v(){return!!(e.onExport??e.onExportCsv??e.onExportTransactionBundle)}if((0,y.useEffect)(()=>{a(!1),t.requestSchema(e.search.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.search.resourceType]),!(r&&ot.globalSchema.types[e.search.resourceType]))return y.default.createElement(z.Center,{style:{width:"100%",height:"100%"}},y.default.createElement(z.Loader,null));let Re=e.checkboxesEnabled,Ne=bs(l),Oe=l.resourceType,he=i.searchResponse,P=he?.entry?.map(A=>A.resource),G="subtle",lo="gray",He=16,nt=window.innerWidth<768;return y.default.createElement("div",{className:o.root,"data-testid":"search-control"},!e.hideToolbar&&y.default.createElement(z.Group,{position:"apart",mb:"xl"},y.default.createElement(z.Group,{spacing:2},y.default.createElement(z.Button,{compact:!0,variant:G,color:lo,leftIcon:y.default.createElement(Ya,{size:He}),onClick:()=>u({...d.current,fieldEditorVisible:!0})},"Fields"),y.default.createElement(z.Button,{compact:!0,variant:G,color:lo,leftIcon:y.default.createElement(fn,{size:He}),onClick:()=>u({...d.current,filterEditorVisible:!0})},"Filters"),e.onNew&&y.default.createElement(z.Button,{compact:!0,variant:G,color:lo,leftIcon:y.default.createElement(nn,{size:He}),onClick:e.onNew},"New..."),!nt&&v()&&y.default.createElement(z.Button,{compact:!0,variant:G,color:lo,leftIcon:y.default.createElement(hn,{size:He}),onClick:e.onExport?e.onExport:()=>u({...d.current,exportDialogVisible:!0})},"Export..."),!nt&&e.onDelete&&y.default.createElement(z.Button,{compact:!0,variant:G,color:lo,leftIcon:y.default.createElement(sr,{size:He}),onClick:()=>e.onDelete(Object.keys(i.selected))},"Delete..."),!nt&&e.onBulk&&y.default.createElement(z.Button,{compact:!0,variant:G,color:lo,leftIcon:y.default.createElement(Ja,{size:He}),onClick:()=>e.onBulk(Object.keys(i.selected))},"Bulk...")),y.default.createElement(z.Group,{spacing:2},he&&y.default.createElement(z.Text,{size:"xs",color:"dimmed"},nd(l,he.total),"-",fd(l,he.total)," of"," ",`${c==="estimate"?"~":""}${he.total?.toLocaleString()}`),y.default.createElement(z.ActionIcon,{title:"Refresh",onClick:k},y.default.createElement(pn,{size:"1.125rem"})))),y.default.createElement(z.Table,{className:o.table},y.default.createElement("thead",null,y.default.createElement("tr",null,Re&&y.default.createElement("th",null,y.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:B(),onChange:A=>h(A)})),Ne.map(A=>y.default.createElement("th",{key:A.name},y.default.createElement(z.Menu,{shadow:"md",width:240,position:"bottom-end"},y.default.createElement(z.Menu.Target,null,y.default.createElement(z.UnstyledButton,{className:o.control},y.default.createElement(z.Group,{position:"apart",noWrap:!0},y.default.createElement(z.Text,{weight:500,size:"sm"},qe(A.name)),y.default.createElement(z.Center,{className:o.icon},y.default.createElement(Qa,{size:14,stroke:1.5}))))),y.default.createElement(Ss,{search:e.search,searchParams:A.searchParams,onPrompt:(Y,pe)=>{u({...d.current,filterDialogVisible:!0,filterDialogSearchParam:Y,filterDialogFilter:pe})},onChange:Y=>{x(Y)}}))))),!e.hideFilters&&y.default.createElement("tr",null,Re&&y.default.createElement("th",null),Ne.map(A=>y.default.createElement("th",{key:A.name},A.searchParams&&y.default.createElement(td,{resourceType:Oe,searchParams:A.searchParams,filters:e.search.filters}))))),y.default.createElement("tbody",null,P?.map(A=>A&&y.default.createElement("tr",{key:A.id,className:o.tr,"data-testid":"search-control-row",onClick:Y=>C(Y,A),onAuxClick:Y=>C(Y,A)},Re&&y.default.createElement("td",null,y.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${A.id}`,checked:!!i.selected[A.id],onChange:Y=>F(Y,A.id)})),Ne.map(Y=>y.default.createElement("td",{key:Y.name},Pf(A,Y))))))),P?.length===0&&y.default.createElement(Lo,null,y.default.createElement(z.Center,{style:{height:150}},y.default.createElement(z.Text,{size:"xl",color:"dimmed"},"No results"))),he?.total!==void 0&&he.total>0&&y.default.createElement(z.Center,{m:"md",p:"md"},y.default.createElement(z.Pagination,{value:rd(l),total:ad(l,he.total),onChange:A=>x(Cf(l,A)),getControlProps:A=>{switch(A){case"previous":return{"aria-label":"Previous page"};case"next":return{"aria-label":"Next page"};default:return{}}}})),n&&y.default.createElement("div",{"data-testid":"search-error"},y.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(n,void 0,2))),y.default.createElement(Df,{search:e.search,visible:d.current.fieldEditorVisible,onOk:A=>{x(A),u({...d.current,fieldEditorVisible:!1})},onCancel:()=>{u({...d.current,fieldEditorVisible:!1})}}),y.default.createElement(Tf,{search:e.search,visible:d.current.filterEditorVisible,onOk:A=>{x(A),u({...d.current,filterEditorVisible:!1})},onCancel:()=>{u({...d.current,filterEditorVisible:!1})}}),y.default.createElement(gs,{visible:d.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{u({...d.current,exportDialogVisible:!1})}}),y.default.createElement(vs,{key:i.filterDialogSearchParam?.code,visible:d.current.filterDialogVisible,title:i.filterDialogSearchParam?.code?qe(i.filterDialogSearchParam.code):"",resourceType:Oe,searchParam:i.filterDialogSearchParam,filter:i.filterDialogFilter,defaultValue:"",onOk:A=>{x(yt(e.search,A.code,A.operator,A.value)),u({...d.current,filterDialogVisible:!1})},onCancel:()=>{u({...d.current,filterDialogVisible:!1})}}))}var od=y.default.memo(Ps);function td(e){let o=(e.filters??[]).filter(t=>e.searchParams.find(r=>r.code===t.code));return o.length===0?y.default.createElement("span",null,"no filters"):y.default.createElement(y.default.Fragment,null,o.map(t=>y.default.createElement("div",{key:`filter-${t.code}-${t.operator}-${t.value}`},$t(t.operator),"\xA0",y.default.createElement(Sa,{resourceType:e.resourceType,filter:t}))))}function rd(e){return Math.floor((e.offset??0)/(e.count??ot.DEFAULT_SEARCH_COUNT))+1}function ad(e,o){let t=e.count??ot.DEFAULT_SEARCH_COUNT;return Math.ceil(o/t)}function nd(e,o){return Math.min(o,(e.offset??0)+1)}function fd(e,o){return Math.min(o,((e.offset??0)+1)*(e.count??ot.DEFAULT_SEARCH_COUNT))}function Ts(e){let o=D(),[t,r]=(0,_.useState)(),[a,n]=(0,_.useState)(),{query:f,fields:l}=e,[s,i]=(0,_.useState)(),[u,d]=(0,_.useState)({}),c=(0,_.useRef)();c.current=s;let b=(0,_.useRef)({});b.current=u,(0,_.useEffect)(()=>{n(void 0),o.graphql(f).then(i).catch(v=>n((0,Ds.normalizeOperationOutcome)(v)))},[o,f]);function k(v,H){v.stopPropagation();let Ne=v.target.checked,Oe={...b.current};Ne?Oe[H]=!0:delete Oe[H],d(Oe)}function F(v){v.stopPropagation();let Re=v.target.checked,Ne={},Oe=c.current?.data.ResourceList;Re&&Oe&&Oe.forEach(he=>{he.id&&(Ne[he.id]=!0)}),d(Ne)}function h(){let v=c.current?.data.ResourceList;if(!v||v.length===0)return!1;for(let H of v)if(H.id&&!b.current[H.id])return!1;return!0}function B(v,H){Xr(v.target)||(Q(v),v.button!==1&&e.onClick&&e.onClick(new et(H,v)),v.button===1&&e.onAuxClick&&e.onAuxClick(new et(H,v)))}if((0,_.useEffect)(()=>{o.requestSchema(e.resourceType).then(v=>{r({...v})}).catch(console.log)},[o,e.resourceType]),!t?.types[e.resourceType])return _.default.createElement(_t.Loader,null);let C=e.checkboxesEnabled;return _.default.createElement("div",{onContextMenu:v=>Q(v),"data-testid":"search-control"},_.default.createElement(_t.Table,null,_.default.createElement("thead",null,_.default.createElement("tr",null,C&&_.default.createElement("th",null,_.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:h(),onChange:v=>F(v)})),l.map(v=>_.default.createElement("th",{key:v.name},v.name)))),_.default.createElement("tbody",null,s?.data.ResourceList.map(v=>v&&_.default.createElement("tr",{key:v.id,"data-testid":"search-control-row",onClick:H=>B(H,v),onAuxClick:H=>B(H,v)},C&&_.default.createElement("td",null,_.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${v.id}`,checked:!!u[v.id],onChange:H=>k(H,v.id)})),l.map(H=>_.default.createElement("td",{key:H.name},_.default.createElement(xs,{propertyType:H.propertyType,path:H.fhirPath,resource:v}))))))),s?.data.ResourceList.length===0&&_.default.createElement("div",{"data-testid":"empty-search"},"No results"),a&&_.default.createElement("div",{"data-testid":"search-error"},_.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(a,void 0,2))),e.onBulk&&_.default.createElement(_t.Button,{onClick:()=>e.onBulk(Object.keys(b.current))},"Bulk..."))}var ld=_.default.memo(Ts);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 ks=require("@mantine/core");var Ba=m(require("react"));function Ct(e){let o=e.outcome?.issue||e.issues;return!o||o.length===0?null:Ba.default.createElement(ks.Alert,{icon:Ba.default.createElement(ft,{size:16}),color:"red"},o.map(t=>Ba.default.createElement("div",{"data-testid":"text-field-error",key:t.details?.text},t.details?.text)))}var Or=require("@medplum/core"),Aa=m(require("react"));function sd(e){let o=(0,Aa.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 Aa.default.createElement(Ho,{value:e.patient,loadTimelineResources:o,createCommunication:(t,r,a)=>({resourceType:"Communication",status:"completed",subject:(0,Or.createReference)(t),sender:(0,Or.createReference)(r),sent:new Date().toISOString(),payload:[{contentString:a}]}),createMedia:(t,r,a)=>({resourceType:"Media",status:"completed",subject:(0,Or.createReference)(t),operator:(0,Or.createReference)(r),issued:new Date().toISOString(),content:a})})}var Ge=require("@mantine/core"),Bs=require("@medplum/core"),L=m(require("react"));var As=(0,Ge.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=D(),t=oe(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 b=(0,L.useRef)();if(b.current=i,(0,L.useEffect)(()=>{o.requestSchema("PlanDefinition").then(a).catch(console.log)},[o]),(0,L.useEffect)(()=>(u(xd(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 k(F,h){u({...b.current,[F]:h})}return L.default.createElement("div",null,L.default.createElement(ne,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(i)},L.default.createElement(Ge.TextInput,{label:"Plan Title",defaultValue:i.title,onChange:F=>k("title",F.currentTarget.value)}),L.default.createElement(Fs,{actions:i.action||[],selectedKey:n,setSelectedKey:f,hoverKey:l,setHoverKey:s,onChange:F=>k("action",F)}),L.default.createElement(Ge.Button,{type:"submit"},"Save")))}function Fs(e){let{classes:o}=As(),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(ud,{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(Ge.Anchor,{href:"#",onClick:f=>{Q(f),a({id:ws()})}},"Add action")))}function ud(e){let{classes:o,cx:t}=As(),{action:r}=e,a=pd(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){Q(u),e.setHoverKey(e.action.id)}let i=t(o.section,{[o.editing]:n,[o.hovering]:f&&!n});return L.default.createElement("div",{"data-testid":r.id,className:i,onClick:l,onMouseOver:s},n?L.default.createElement(cd,{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(dd,{action:r,actionType:a}),L.default.createElement("div",{className:o.bottomActions},L.default.createElement(Ge.Anchor,{href:"#",onClick:u=>{u.preventDefault(),e.onRemove()}},"Remove")))}var Bf={path:"PlanDefinition.action.timing[x]",min:0,max:"1",type:[{code:"dateTime"},{code:"Period"},{code:"Range"},{code:"Timing"}]};function dd(e){let{action:o,actionType:t}=e,[r,a]=Ms(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(ke,{property:Bf,propertyType:a,value:r})))}function cd(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(Ge.Stack,{spacing:"xl"},L.default.createElement(Ge.TextInput,{name:`actionTitle-${o.id}`,label:"Title",defaultValue:o.title,onChange:n=>a("title",n.currentTarget.value)}),L.default.createElement(Ge.TextInput,{name:`actionDescription-${o.id}`,label:"Description",defaultValue:o.description,onChange:n=>a("description",n.currentTarget.value)}),L.default.createElement(Ge.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(Fs,{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(md,{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(Pr,{name:o,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:a=>{a?e.onChange({...e.action,definitionCanonical:(0,Bs.getReferenceString)(a)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function md(e){let o=e.action,t="timing",[r,a]=Ms(o);return L.default.createElement(ho,{property:Bf,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(n,f)=>{e.onChange(Ot(o,t,f??t,Bf,n))}})}function pd(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task"}function Ms(e){return Xe({type:"PlanDefinitionAction",value:e},"timing")}var kf=1;function ws(e){if(e){if(e.startsWith("id-")){let o=parseInt(e.substring(3),10);isNaN(o)||(kf=Math.max(kf,o+1))}return e}return"id-"+kf++}function xd(e){return{...e,action:Os(e.action)}}function Os(e){if(e)return e.map(o=>({...o,id:ws(o.id),action:Os(o.action)}))}var se=require("@mantine/core"),Oa=require("@medplum/core"),T=m(require("react"));var Er=require("@medplum/core"),Ma=(B=>(B.group="group",B.display="display",B.question="question",B.boolean="boolean",B.decimal="decimal",B.integer="integer",B.date="date",B.dateTime="dateTime",B.time="time",B.string="string",B.text="text",B.url="url",B.choice="choice",B.openChoice="open-choice",B.attachment="attachment",B.reference="reference",B.quantity="quantity",B))(Ma||{});function Af(e){return e.type==="choice"||e.type==="open-choice"}function Ff(e,o){if(!e.enableWhen)return!0;let t=e.enableBehavior??"any";for(let r of e.enableWhen){if(r.operator==="exists"&&!r.answerBoolean&&!o[r.question]?.length){if(t==="any")return!0;continue}let{anyMatch:a,allMatch:n}=gd(r,o,t);if(t==="any"&&a)return!0;if(t==="all"&&!n)return!1}return t!=="any"}function Id(e,o,t){if(t==="exists")return!!e===o.value;if(e){let r=t==="="||t==="!="?t?.replace("=","~"):t,[{value:a}]=(0,Er.evalFhirPathTyped)(`%actualAnswer ${r} %expectedAnswer`,[e],{actualAnswer:e,expectedAnswer:o});return a}else return!1}function gd(e,o,t){let r=o[e.question]||[],a=(0,Er.getTypedPropertyValue)({type:"QuestionnaireItemEnableWhen",value:e},"answer[x]"),n=!1,f=!0;for(let l of r){let s=(0,Er.getTypedPropertyValue)({type:"QuestionnaireResponseItemAnswer",value:l},"value[x]"),{operator:i}=e;if(Id(s,a,i)?n=!0:f=!1,t==="any"&&n)break}return{anyMatch:n,allMatch:f}}var Fe=require("@mantine/core"),Me=require("@medplum/core"),Ce=m(require("react"));function wa(e){let o=e.item,t=e.index;function r(l,s){let i=s??0,u=e.responseItems?.filter(c=>c.linkId===o.linkId)??[],d;Array.isArray(l)?d=l:d=Cd(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 Ce.default.createElement(hr,{key:e.item.linkId,title:e.item.text,htmlFor:e.item.linkId},Ce.default.createElement(Fe.Checkbox,{id:e.item.linkId,name:e.item.linkId,defaultChecked:f?.valueBoolean,onChange:l=>r({valueBoolean:l.currentTarget.checked},t)}));case"decimal":return Ce.default.createElement(Fe.TextInput,{type:"number",step:"any",id:n,name:n,defaultValue:f?.valueDecimal,onChange:l=>r({valueDecimal:l.currentTarget.valueAsNumber},t)});case"integer":return Ce.default.createElement(Fe.TextInput,{type:"number",step:1,id:n,name:n,defaultValue:f?.valueInteger,onChange:l=>r({valueInteger:l.currentTarget.valueAsNumber},t)});case"date":return Ce.default.createElement(Fe.TextInput,{type:"date",id:n,name:n,defaultValue:f?.valueDate,onChange:l=>r({valueDate:l.currentTarget.value},t)});case"dateTime":return Ce.default.createElement(ao,{name:n,defaultValue:f?.valueDateTime,onChange:l=>r({valueDateTime:l},t)});case"time":return Ce.default.createElement(Fe.TextInput,{type:"time",id:n,name:n,defaultValue:f?.valueTime,onChange:l=>r({valueTime:l.currentTarget.value},t)});case"string":case"url":return Ce.default.createElement(Fe.TextInput,{id:n,name:n,defaultValue:f?.valueString,onChange:l=>r({valueString:l.currentTarget.value},t)});case"text":return Ce.default.createElement(Fe.Textarea,{id:n,name:n,defaultValue:f?.valueString,onChange:l=>r({valueString:l.currentTarget.value},t)});case"attachment":return Ce.default.createElement(cr,{name:n,defaultValue:f?.valueAttachment,onChange:l=>r({valueAttachment:l},t)});case"reference":return Ce.default.createElement(It,{name:n,targetTypes:vd(o),defaultValue:f?.valueReference,onChange:l=>r({valueReference:l},t)});case"quantity":return Ce.default.createElement(Ye,{name:n,defaultValue:f?.valueQuantity,onChange:l=>r({valueQuantity:l},t),disableWheel:!0});case"choice":case"open-choice":return Sd(o)?Ce.default.createElement(hd,{name:n,item:o,initial:f,answers:e.answers,onChangeAnswer:l=>r(l,t)}):Ce.default.createElement(yd,{name:n,item:o,initial:f,answers:e.answers,onChangeAnswer:l=>r(l,t)});default:return null}}function hd(e){let{name:o,item:t,initial:r}=e,a=(0,Me.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),n=[""];if(t.answerOption)for(let f of t.answerOption){let l=(0,Me.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:f},"value");n.push(Mf(l))}if(t.repeats){let{propertyName:f,data:l}=bd(e.item);return Ce.default.createElement(Fe.MultiSelect,{data:l,placeholder:"Select items",searchable:!0,defaultValue:[Mf(a)??""],onChange:s=>{let i=s.map(u=>{let d=t.answerOption?.find(b=>b[f]===u),c=(0,Me.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:d},"value");return{[f]:c.value}});e.onChangeAnswer(i)}})}return Ce.default.createElement(Fe.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,Me.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:s},"value"),u="value"+(0,Me.capitalize)(i.type);e.onChangeAnswer({[u]:i.value})},defaultValue:Mf(a),data:n})}function yd(e){let{name:o,item:t,initial:r,onChangeAnswer:a}=e,n=Me.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],f=(0,Me.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),l=[],s;if(t.answerOption)for(let i=0;i<t.answerOption.length;i++){let u=t.answerOption[i],d=`${o}-option-${i}`,c=(0,Me.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:u},"value");f&&(0,Me.stringify)(c)===(0,Me.stringify)(f)&&(s=d),l.push([d,c])}return Ce.default.createElement(Fe.Radio.Group,{name:o,defaultValue:s,onChange:i=>{let u=l.find(d=>d[0]===i);if(u){let d=u[1],c="value"+(0,Me.capitalize)(d.type);a({[c]:d.value})}}},l.map(([i,u])=>Ce.default.createElement(Fe.Radio,{key:i,id:i,value:i,label:Ce.default.createElement(ke,{property:n,propertyType:u.type,value:u.value})})))}function Cd(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 vd(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 Sd(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function bd(e){if(e.answerOption?.length===0)return{propertyName:"",data:[]};let o=e.answerOption[0],t=(0,Me.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:o},"value"),r="value"+(0,Me.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 Mf(e){if(e)return e.type==="CodeableConcept"?e.value.coding[0].display:e.type==="Coding"?e.value.display:e.value.toString()}var Pd=(0,se.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:4,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}},linkIdInput:{width:100,marginBottom:4},typeSelect:{width:100}}));function Dd(e){let o=D(),t=oe(e.questionnaire),[r,a]=(0,T.useState)(),[n,f]=(0,T.useState)(),[l,s]=(0,T.useState)(),[i,u]=(0,T.useState)();function d(){u(void 0)}function c(){s(void 0)}return(0,T.useEffect)(()=>{o.requestSchema("Questionnaire").then(a).catch(console.log)},[o]),(0,T.useEffect)(()=>(f(Bd(t??{resourceType:"Questionnaire"})),document.addEventListener("mouseover",d),document.addEventListener("click",c),()=>{document.removeEventListener("mouseover",d),document.removeEventListener("click",c)}),[t]),!r||!n?null:T.default.createElement("div",null,T.default.createElement(ne,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(n)},T.default.createElement(Es,{item:n,selectedKey:l,setSelectedKey:s,hoverKey:i,setHoverKey:u,onChange:f}),T.default.createElement(se.Button,{type:"submit"},"Save")))}function Es(e){let{classes:o,cx:t}=Pd(),r=e.item,a=e.item,n=(0,Oa.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,T.useRef)();u.current=e.item;function d(C){Q(C),e.setSelectedKey(e.item.id)}function c(C){Q(C),e.setHoverKey(e.item.id)}function b(C){let v=u.current;e.onChange({...v,item:v.item?.map(H=>H.id===C.id?C:H)})}function k(C){e.onChange({...e.item,item:[...e.item.item??[],C]})}function F(C){e.onChange({...e.item,item:e.item.item?.filter(v=>v!==C)})}function h(C,v){e.onChange({...u.current,[C]:v})}function B(C){e.onChange({...e.item,item:e.item.item?.map(v=>v===C?{...v,repeats:!v.repeats}:v)})}let x=t(o.section,{[o.editing]:s,[o.hovering]:i&&!s});return T.default.createElement("div",{"data-testid":a.linkId,className:x,onClick:d,onMouseOver:c},T.default.createElement("div",{className:o.questionBody},s?T.default.createElement(T.default.Fragment,null,n&&T.default.createElement(se.TextInput,{size:"xl",defaultValue:r.title,onChange:C=>h("title",C.currentTarget.value)}),!n&&T.default.createElement(se.Textarea,{autosize:!0,minRows:2,defaultValue:a.text,onChange:C=>h("text",C.currentTarget.value)}),a.type==="reference"&&T.default.createElement(kd,{item:a,onChange:C=>h("extension",C)}),Af(a)&&T.default.createElement(Td,{options:a.answerOption,onChange:C=>h("answerOption",C)})):T.default.createElement(T.default.Fragment,null,r.title&&T.default.createElement(se.Title,null,r.title),a.text&&T.default.createElement("div",null,a.text),!f&&T.default.createElement(wa,{item:a,index:0,answers:{},onChange:()=>{}}))),a.item?.map(C=>T.default.createElement("div",{key:C.id},T.default.createElement(Es,{item:C,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:b,onRemove:()=>F(C),onRepeatable:B}))),!f&&T.default.createElement("div",{className:o.topActions},s?T.default.createElement(T.default.Fragment,null,T.default.createElement(se.TextInput,{size:"xs",className:o.linkIdInput,defaultValue:a.linkId,onChange:C=>h("linkId",C.currentTarget.value)}),!f&&T.default.createElement(se.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:a.type,onChange:C=>h("type",C.currentTarget.value),data:[{value:"display",label:"Display"},{value:"boolean",label:"Boolean"},{value:"decimal",label:"Decimal"},{value:"integer",label:"Integer"},{value:"date",label:"Date"},{value:"dateTime",label:"Date/Time"},{value:"time",label:"Time"},{value:"string",label:"String"},{value:"text",label:"Text"},{value:"url",label:"URL"},{value:"choice",label:"Choice"},{value:"open-choice",label:"Open Choice"},{value:"attachment",label:"Attachment"},{value:"reference",label:"Reference"},{value:"quantity",label:"Quantity"}]})):T.default.createElement("div",null,l)),T.default.createElement("div",{className:o.bottomActions},f&&T.default.createElement(T.default.Fragment,null,T.default.createElement(se.Anchor,{href:"#",onClick:C=>{C.preventDefault(),k({id:rt(),linkId:Ef("q"),type:"string",text:"Question"})}},"Add item"),T.default.createElement(se.Anchor,{href:"#",onClick:C=>{C.preventDefault(),k({id:rt(),linkId:Ef("g"),type:"group",text:"Group"})}},"Add group")),n&&T.default.createElement(se.Anchor,{href:"#",onClick:C=>{C.preventDefault(),k(Fd())}},"Add Page"),s&&!n&&T.default.createElement(T.default.Fragment,null,T.default.createElement(se.Anchor,{href:"#",onClick:C=>{C.preventDefault(),e.onRepeatable&&e.onRepeatable(a)}},a.repeats?"Remove Repeatable":"Make Repeatable"),T.default.createElement(se.Anchor,{href:"#",onClick:C=>{C.preventDefault(),e.onRemove&&e.onRemove()}},"Remove"))))}function Td(e){let o=Oa.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],t=e.options??[];return T.default.createElement("div",null,t.map(r=>{let[a,n]=Xe({type:"QuestionnaireItemAnswerOption",value:r},"value");return T.default.createElement("div",{key:r.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},T.default.createElement("div",null,T.default.createElement(ho,{key:r.id,name:"value[x]",property:o,defaultPropertyType:n,defaultValue:a,onChange:(f,l)=>{let s=[...t],i=s.findIndex(u=>u.id===r.id);s[i]={id:r.id,[l]:f},e.onChange(s)}})),T.default.createElement("div",null,T.default.createElement(se.Anchor,{href:"#",onClick:f=>{Q(f),e.onChange(t.filter(l=>l.id!==r.id))}},"Remove")))}),T.default.createElement(se.Anchor,{href:"#",onClick:r=>{Q(r),e.onChange([...t,{id:rt()}])}},"Add choice"))}function kd(e){let o=e.item.extension??[],t=o.filter(r=>r.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource")??[];return T.default.createElement(T.default.Fragment,null,t.map(r=>T.default.createElement("div",{key:r.id},T.default.createElement("div",{style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},T.default.createElement("div",null,T.default.createElement(se.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)}}))),T.default.createElement("div",null,T.default.createElement(se.Anchor,{href:"#",onClick:a=>{Q(a),e.onChange(o.filter(n=>n.id!==r.id))}},"Remove")))),T.default.createElement(se.Anchor,{href:"#",onClick:r=>{Q(r),e.onChange([...o,{id:rt(),url:"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource",valueCodeableConcept:{coding:[{system:"http://hl7.org/fhir/fhir-types",display:"",code:""}]}}])}},"Add Resource"))}var wf=1,Of=1;function Ef(e){return e+wf++}function rt(){return"id-"+Of++}function Bd(e){return{...e,id:e.id||rt(),item:Ls(e.item)}}function Ls(e){if(e)return e.forEach(o=>{o.id?.match(/^id-\d+$/)&&(Of=Math.max(Of,parseInt(o.id.substring(3),10)+1)),o.linkId?.match(/^q\d+$/)&&(wf=Math.max(wf,parseInt(o.linkId.substring(1),10)+1))}),e.map(o=>({...o,id:o.id||rt(),item:Ls(o.item),answerOption:Ad(o.answerOption)}))}function Ad(e){if(e)return e.map(o=>({...o,id:o.id||rt()}))}function Fd(){return{id:rt(),linkId:Ef("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"}]}}]}}var ve=require("@mantine/core"),Go=require("@medplum/core"),w=m(require("react"));function Rf(e){let o=D(),t=o.getProfile(),[r,a]=(0,w.useState)(),n=oe(e.questionnaire),[f,l]=(0,w.useState)(),[s,i]=(0,w.useState)({}),[u,d]=(0,w.useState)(0),c=Rd(n?.item??[]),b=()=>d(h=>h>=c?h:h+1),k=()=>d(h=>h<=0?h:h-1);(0,w.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>o.requestSchema("QuestionnaireResponse")).then(a).catch(console.log)},[o]),(0,w.useEffect)(()=>{l(n?wd(n):void 0)},[n]);function F(h){let B={resourceType:"QuestionnaireResponse",item:h};l(B),i((0,Go.getAllQuestionnaireAnswers)(B))}return!r||!n?null:w.default.createElement(ne,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&f&&e.onSubmit({...f,questionnaire:(0,Go.getReferenceString)(n),subject:e.subject,source:(0,Go.createReference)(t),authored:new Date().toISOString(),status:"completed"})}},n.title&&w.default.createElement(ve.Title,null,n.title),n.item&&w.default.createElement(Ns,{items:n.item??[],answers:s,onChange:F,renderPages:c>1,activePage:u}),w.default.createElement(ve.Group,{position:"right",mt:"xl"},w.default.createElement(Md,{activePage:u,numberOfPages:c,nextStep:b,prevStep:k,submitButtonText:e.submitButtonText})))}function Ns(e){let[o,t]=(0,w.useState)(Nf(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?w.default.createElement(ve.Stepper.Step,{label:n.text,key:n.linkId},w.default.createElement(Rs,{key:`${n.linkId}-${f}`,item:n,index:f,answers:e.answers,responseItems:o,setResponseItem:r})):w.default.createElement(Rs,{key:`${n.linkId}-${f}`,item:n,index:f,answers:e.answers,responseItems:o,setResponseItem:r}));return e.renderPages?w.default.createElement(ve.Stepper,{active:e.activePage??0,allowNextStepsSelect:!1,p:6},a):w.default.createElement(ve.Stack,null,a)}function Rs(e){return Ff(e.item,e.answers)?e.item.type==="display"?w.default.createElement("p",{key:e.item.linkId},e.item.text):e.item.type==="group"?w.default.createElement(Lf,{key:e.item.linkId,item:e.item,answers:e.answers,responseItems:e.responseItems,onChange:o=>e.setResponseItem(o.id,o)}):w.default.createElement(Je,{key:e.item.linkId,htmlFor:e.item.linkId,title:e.item.text??""},w.default.createElement(Lf,{item:e.item,answers:e.answers,responseItems:e.responseItems,onChange:o=>e.setResponseItem(o.id,o)})):null}function Lf(e){let o=e.item;function t(r,a){let n=a??0,f=e.responseItems.filter(l=>l.linkId===o.linkId);e.onChange({id:Vd(f,n),linkId:o.linkId,text:o.text,item:r})}return o.type==="group"?w.default.createElement(Nd,{key:e.item.linkId,text:o.text??"",item:o??[],answers:e.answers,onChange:t}):w.default.createElement(Hd,{item:e.item,key:e.item.linkId},({index:r})=>w.default.createElement(wa,{...e,index:r}))}function Md(e){return e.activePage===0&&e.numberOfPages<=0?w.default.createElement(ve.Button,{type:"submit"},e.submitButtonText??"OK"):e.activePage>=e.numberOfPages?w.default.createElement(w.default.Fragment,null,w.default.createElement(ve.Button,{onClick:e.prevStep},"Back"),w.default.createElement(ve.Button,{onClick:e.nextStep,type:"submit"},e.submitButtonText??"OK")):e.activePage===0?w.default.createElement(w.default.Fragment,null,w.default.createElement(ve.Button,{onClick:e.nextStep},"Next")):w.default.createElement(w.default.Fragment,null,w.default.createElement(ve.Button,{onClick:e.prevStep},"Back"),w.default.createElement(ve.Button,{onClick:e.nextStep},"Next"))}function wd(e){return{resourceType:"QuestionnaireResponse",questionnaire:(0,Go.getReferenceString)(e),item:Nf(e.item)}}function Nf(e){return e?.map(Od)??[]}function Od(e){return{id:Hs(),linkId:e.linkId,text:e.text,item:Nf(e.item),answer:e.initial?.map(Ld)??[]}}var Ed=1;function Hs(){return"id-"+Ed++}function Ld(e){return{...e}}function Rd(e){return e.filter(t=>(0,Go.getExtension)(t,"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl")?.valueCodeableConcept?.coding?.[0]?.code==="page").length>0?e.length:0}function Nd(e){let[o,t]=(0,w.useState)(1),r=e.item;return w.default.createElement(w.default.Fragment,null,[...Array(o)].map((a,n)=>w.default.createElement("div",{key:n},w.default.createElement("h3",null,e.text),w.default.createElement(Ns,{items:r.item??[],answers:e.answers,onChange:f=>e.onChange(f,n)}))),e.item.repeats&&w.default.createElement(ve.Anchor,{onClick:()=>t(a=>a+1)},"Add Group"))}function Hd(e){let[o,t]=(0,w.useState)(1),r=e.item?.repeats&&e.item.type!=="choice"&&e.item.type!=="open-choice";return w.default.createElement(w.default.Fragment,null,[...Array(o)].map((a,n)=>w.default.createElement(w.default.Fragment,{key:`${e.item.linkId}-${n}`},e.children({index:n}))),r&&w.default.createElement(ve.Anchor,{onClick:()=>t(a=>a+1)},"Add Item"))}function Vd(e,o){return e.length===0||e.length<o+1?Hs():e[o].id}var Z=require("@mantine/core"),Lr=require("@medplum/core");var q=m(require("react"));var qd=(0,Z.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"}})),Gd=["gender","age","gestationalAge","context","appliesTo","category"],Ud={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function zd(e){e=Object.assign(Ud,e);let o=e.definition,[t,r]=(0,q.useState)([]),[a,n]=(0,q.useState)(1),[f,l]=(0,q.useState)(1);return(0,q.useEffect)(()=>{let k=Wd(o,l);r(Xd(k.qualifiedInterval||[],n))},[o]),q.default.createElement(ne,{testid:"reference-range-editor",onSubmit:s},q.default.createElement(Z.Stack,null,t.map(k=>q.default.createElement(Vs,{unit:$d(o.quantitativeDetails?.unit),onChange:d,onAdd:c,onRemove:b,onRemoveGroup:u,key:`group-${k.id}`,intervalGroup:k}))),q.default.createElement(Z.ActionIcon,{title:"Add Group",size:"sm",onClick:k=>{Q(k),i({id:`group-id-${a}`,filters:{},intervals:[]}),n(F=>F+1)}},q.default.createElement(bt,null)),q.default.createElement(Z.Group,{position:"right"},q.default.createElement(Z.Button,{type:"submit"},"Save")));function s(){let k=t.flatMap(F=>F.intervals).filter(F=>!Kd(F));e.onSubmit({...o,qualifiedInterval:k})}function i(k){r(F=>[...F,k])}function u(k){r(F=>F.filter(h=>h.id!==k.id))}function d(k,F){r(h=>{h=[...h];let B=h.find(C=>C.id===k),x=B?.intervals.findIndex(C=>C.id===F.id);return x!==void 0&&B?.intervals[x]&&(B.intervals[x]=F),h})}function c(k,F){F.id===void 0&&(F.id=`id-${f}`,l(h=>h+1)),r(h=>{h=[...h];let B=h.findIndex(x=>x.id===k);if(B!==-1){let x={...h[B]};F={...F,...x.filters},x.intervals=[...x.intervals,F],h[B]=x}return h})}function b(k,F){r(h=>{h=[...h];let B=h.find(x=>x.id===k);return B&&(B.intervals=B.intervals.filter(x=>x.id!==F.id)),h})}}function Vs(e){let{intervalGroup:o,unit:t}=e,{classes:r}=qd();return q.default.createElement(Lo,{"data-testid":o.id,className:r.section},q.default.createElement(Z.Stack,{spacing:"lg"},q.default.createElement(Z.Group,{position:"right"},q.default.createElement(Z.ActionIcon,{title:"Remove Group","data-testid":`remove-group-button-${o.id}`,key:`remove-group-button-${o.id}`,size:"sm",onClick:a=>{Q(a),e.onRemoveGroup(o)}},q.default.createElement(Qo,null))),q.default.createElement(Qd,{intervalGroup:o,onChange:e.onChange}),q.default.createElement(Z.Divider,null),o.intervals.map(a=>q.default.createElement(Z.Stack,{key:`interval-${a.id}`,spacing:"xs"},q.default.createElement(Z.Group,null,q.default.createElement(Z.TextInput,{key:`condition-${a.id}`,"data-testid":`condition-${a.id}`,defaultValue:a.condition,label:"Condition: ",size:"sm",onChange:n=>{Q(n),e.onChange(o.id,{...a,condition:n.currentTarget.value.trim()})}}),q.default.createElement(Z.ActionIcon,{title:"Remove Interval",size:"sm",key:`remove-interval-${a.id}`,"data-testid":`remove-interval-${a.id}`,onClick:n=>{Q(n),e.onRemove(o.id,a)}},q.default.createElement(Qo,null))),q.default.createElement(Ht,{onChange:n=>{e.onChange(o.id,{...a,range:n})},key:`range-${a.id}`,name:`range-${a.id}`,defaultValue:a.range}))),q.default.createElement(Z.ActionIcon,{title:"Add Interval",size:"sm",onClick:a=>{Q(a),e.onAdd(o.id,{range:{low:{unit:t},high:{unit:t}}})}},q.default.createElement(bt,null))))}function Qd(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 q.default.createElement(Z.Stack,{style:{maxWidth:"50%"}},q.default.createElement(Z.Group,null,q.default.createElement(Z.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})}}})),q.default.createElement(Z.Group,{spacing:"xs"},q.default.createElement(Z.Text,{component:"label",htmlFor:`div-age-${o.id}`},"Age:"),q.default.createElement("div",{id:`div-age-${o.id}`},q.default.createElement(Ht,{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})}}))),q.default.createElement(Z.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"}]}})}}}),q.default.createElement(Z.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 Wd(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 Xd(e,o){let t=1,r={};for(let a of e){let n=Jd(a);n in r||(r[n]={id:`group-id-${t++}`,filters:Object.fromEntries(Gd.map(f=>[f,a[f]])),intervals:[]}),r[n].intervals.push(a)}return o(t),Object.values(r)}function Jd(e){return[`gender=${e.gender}`,`age=${(0,Lr.formatRange)(e.age)}`,`gestationalAge=${(0,Lr.formatRange)(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map(t=>t.text).join("+")}`,`category=${e.category}`].join(":")}function $d(e){return e&&((0,Lr.getCodeBySystem)(e,"http://unitsofmeasure.org")||e.text)}function Kd(e){return e.range?.low?.value===void 0&&e.range?.high?.value===void 0}var Co=require("@mantine/core"),Ea=require("@medplum/core");var ce=m(require("react"));function jd(e){let o=D(),t=oe(e.value),[r,a]=(0,ce.useState)(!1),[n,f]=(0,ce.useState)();if((0,ce.useEffect)(()=>{t&&!r&&(o.executeBatch(l(t)).then(f).catch(console.log),a(!0))},[o,t,r]),!t||!n)return null;return ce.default.createElement(Co.Grid,null,t.action?.map((i,u)=>{let d=i.resource&&s(i.resource),c=d?.input?.[0]?.valueReference,b=d?.output?.[0]?.valueReference;return ce.default.createElement(ce.default.Fragment,{key:`action-${u}`},ce.default.createElement(Co.Grid.Col,{span:1,p:"md"},d?.status==="completed"?ce.default.createElement(_a,null):ce.default.createElement(In,{color:"gray"})),ce.default.createElement(Co.Grid.Col,{span:9,p:"xs"},ce.default.createElement(Co.Text,{weight:500},i.title),i.description&&ce.default.createElement("div",null,i.description),ce.default.createElement("div",null,"Last edited by\xA0",ce.default.createElement(mo,{value:d?.meta?.author}),"\xA0on\xA0",(0,Ea.formatDateTime)(d?.meta?.lastUpdated)),ce.default.createElement("div",null,"Status: ",ce.default.createElement(kr,{status:d?.status||"unknown"}))),ce.default.createElement(Co.Grid.Col,{span:2,p:"md"},c&&!b&&ce.default.createElement(Co.Button,{onClick:()=>e.onStart(d,c)},"Start"),c&&b&&ce.default.createElement(Co.Button,{onClick:()=>e.onEdit(d,c,b)},"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,Ea.getReferenceString)(u.resource))return u.resource}}var Us=require("@mantine/core"),Se=m(require("react"));var qs=require("@medplum/core");function La(e,o){let t=_d(e,o);return Zd(t,e,o)}function _d(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,b=l[d],k=l[c],F,h=0;i===-s||i!==s&&k.i<b.i?(h=b.i,F=b):(h=k.i+1,F=k),l[c]=void 0;let B=h-i,x={i:h,j:B,prev:Yd(F),snake:!1};for(;h<t&&B<r&&e[h]===o[B];)h++,B++;if(h>x.i&&(x={i:h,j:B,prev:x,snake:!0}),l[u]=x,h>=t&&B>=r)return l[u]}l[f+s-1]=void 0}}function Zd(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 Yd(e){return e&&!e.snake&&e.prev?e.prev:e}function Gs(e){let o=e.entry.filter(r=>!!r.resource).map(r=>({meta:r.resource?.meta,lines:(0,qs.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 ec(t,o),oc(t),t}function ec(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,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 oc(e){let o=0;for(;o<e.length;){let t=o;for(;t<e.length&&e[t].id===e[o].id;)e[t].span=-1,t++;e[o].span=t-o,o=t}}var tc=(0,Us.createStyles)(e=>({container:{overflowX:"auto"},root:{border:`0.1px solid ${e.colors.gray[3]}`,borderCollapse:"collapse",borderRadius:e.radius.sm,borderSpacing:0,fontSize:e.fontSizes.xs,width:"100%","& td":{padding:"2px 4px 0 4px",verticalAlign:"top",whiteSpace:"nowrap"}},startRow:{borderTop:`0.1px solid ${e.colors.gray[3]}`},normalRow:{borderTop:0},author:{lineHeight:"10px"},dateTime:{borderRight:`0.1px solid ${e.colors.gray[3]}`,lineHeight:"20px"},lineNumber:{backgroundColor:e.colors.gray[1],border:0,color:e.colors.gray[5],fontFamily:e.fontFamilyMonospace,padding:`${e.spacing.xs} ${e.spacing.sm}`,textAlign:"right"},line:{fontFamily:e.fontFamilyMonospace,fontSize:e.fontSizes.sm,padding:`${e.spacing.xs} ${e.spacing.sm}`},pre:{margin:0}}));function rc(e){let{classes:o}=tc(),t=D(),[r,a]=(0,Se.useState)(e.history);if((0,Se.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 Se.default.createElement("div",null,"Loading...");let n=r.entry?.[0]?.resource;if(!n)return null;let f=Gs(r);return Se.default.createElement("div",{className:o.container},Se.default.createElement("table",{className:o.root},Se.default.createElement("tbody",null,f.map((l,s)=>Se.default.createElement("tr",{key:"row-"+s,className:l.span>0?o.startRow:o.normalRow},l.span>0&&Se.default.createElement(Se.default.Fragment,null,Se.default.createElement("td",{className:o.author,rowSpan:l.span},Se.default.createElement(Ro,{value:l.meta.author,link:!0})),Se.default.createElement("td",{className:o.dateTime,rowSpan:l.span},Se.default.createElement(be,{to:ac(n,l.meta.versionId)},zs(l.meta.lastUpdated)))),Se.default.createElement("td",{className:o.lineNumber},s+1),Se.default.createElement("td",{className:o.line},Se.default.createElement("pre",{className:o.pre},l.value)))))))}function ac(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 Zt(t,"year");let r=Math.floor(o/2592e3);if(r>0)return Zt(r,"month");let a=Math.floor(o/86400);if(a>0)return Zt(a,"day");let n=Math.floor(o/3600);if(n>0)return Zt(n,"hour");let f=Math.floor(o/60);return f>0?Zt(f,"minute"):Zt(o,"second")}function Zt(e,o){return`${e} ${e===1?o:o+"s"} ago`}var Qs=require("@mantine/core"),Hf=require("@medplum/core"),Uo=m(require("react"));var nc=(0,Qs.createStyles)(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function fc(e){let o=e.original,t=e.revised;e.ignoreMeta&&(o={...o,meta:void 0},t={...t,meta:void 0});let r=(0,Hf.stringify)(o,!0).match(/[^\r\n]+/g),a=(0,Hf.stringify)(t,!0).match(/[^\r\n]+/g),n=La(r,a);return Uo.default.createElement("pre",{style:{color:"gray"}},n.map((f,l)=>Uo.default.createElement(lc,{key:"delta"+l,delta:f})))}function lc(e){let{classes:o}=nc();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(`
|
|
64
|
+
}`.replace(/\s+/g," ")}function Li(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),Ni(Ri(t),o).slice(0,5)}function Ri(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 Ni(e,o){return e.sort((t,r)=>ml(r,o)-ml(t,o))}function ml(e,o){let t=0;if(e.identifier)for(let r of e.identifier)t=Math.max(t,pl(r.value,o));if(e.resourceType==="Patient"&&e.name)for(let r of e.name)t=Math.max(t,pl((0,Bo.formatHumanName)(r),o));return t}function pl(e,o){if(!e)return 0;let t=e.toLowerCase().indexOf(o.toLowerCase());return t<0?0:100-t}var Hi=(0,J.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 Pn(e){let o=bt(),{medplum:t,profile:r,navigate:a}=o,n=t.getLogins(),{classes:f,cx:l}=Hi(),[s,i]=(0,Q.useState)(!1);return Q.default.createElement(J.Header,{height:60,p:8,style:{zIndex:101}},Q.default.createElement(J.Group,{position:"apart"},Q.default.createElement(J.Group,{spacing:"xs"},Q.default.createElement(J.UnstyledButton,{className:f.logoButton,onClick:e.navbarToggle},e.logo),Q.default.createElement(xl,{pathname:e.pathname,searchParams:e.searchParams})),Q.default.createElement(J.Menu,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:s,onClose:()=>i(!1)},Q.default.createElement(J.Menu.Target,null,Q.default.createElement(J.UnstyledButton,{className:l(f.user,{[f.userActive]:s}),onClick:()=>i(u=>!u)},Q.default.createElement(J.Group,{spacing:7},Q.default.createElement(Re,{value:r,radius:"xl",size:24}),Q.default.createElement(J.Text,{size:"sm",className:f.userName},(0,dr.formatHumanName)(r?.name?.[0])),Q.default.createElement(Ya,{size:12,stroke:1.5})))),Q.default.createElement(J.Menu.Dropdown,null,Q.default.createElement(J.Stack,{align:"center",p:"xl"},Q.default.createElement(Re,{size:"xl",radius:100,value:o.profile}),Q.default.createElement(ur,{value:o.profile?.name?.[0]}),Q.default.createElement(J.Text,{color:"dimmed",size:"xs"},t.getActiveLogin()?.project.display)),n.length>1&&Q.default.createElement(J.Menu.Divider,null),n.map(u=>u.profile.reference!==(0,dr.getReferenceString)(o.profile)&&Q.default.createElement(J.Menu.Item,{key:u.profile.reference,onClick:()=>{t.setActiveLogin(u).then(()=>window.location.reload()).catch(console.log)}},Q.default.createElement(J.Group,null,Q.default.createElement(J.Avatar,{radius:"xl"}),Q.default.createElement("div",{style:{flex:1}},Q.default.createElement(J.Text,{size:"sm",weight:500},u.profile.display),Q.default.createElement(J.Text,{color:"dimmed",size:"xs"},u.project.display))))),Q.default.createElement(J.Menu.Divider,null),Q.default.createElement(J.Menu.Item,{icon:Q.default.createElement(hn,{size:14,stroke:1.5}),onClick:()=>a("/signin")},"Add another account"),Q.default.createElement(J.Menu.Item,{icon:Q.default.createElement(Bt,{size:14,stroke:1.5}),onClick:()=>a(`/${(0,dr.getReferenceString)(r)}`)},"Account settings"),Q.default.createElement(J.Menu.Item,{icon:Q.default.createElement(un,{size:14,stroke:1.5}),onClick:async()=>{await t.signOut(),a("/signin")}},"Sign out"),Q.default.createElement(J.Text,{size:"xs",color:"dimmed",align:"center"},e.version)))))}var Xe=require("@mantine/core");var Ie=m(require("react"));var ro=require("@mantine/core"),kn=require("@mantine/notifications"),Zr=require("@medplum/core"),Ao=m(require("react"));var Il=m(require("react"));function Dn(e){let o={};for(let t of Array.from(e.elements))t instanceof HTMLInputElement?Vi(o,t):t instanceof HTMLTextAreaElement?o[t.name]=t.value:t instanceof HTMLSelectElement&&qi(o,t);return o}function Vi(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 fe(e){return Il.default.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:o=>{o.preventDefault();let t=Dn(o.target);e.onSubmit&&e.onSubmit(t)}},e.children)}function gl(e){let o=k(),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,kn.showNotification)({color:"green",message:"Success"}),e.onOk()}).catch(u=>{(0,kn.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(fe,{onSubmit:r},Ao.default.createElement(ro.Stack,null,Ao.default.createElement(Gi,{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 Gi(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 Tn(e){return typeof e.code=="string"?e.code:JSON.stringify(e)}function Ui(e){return typeof e.display=="string"?e.display:Tn(e)}function zi(e){return{value:Tn(e),label:Ui(e),resource:e}}function Qi(e){return{code:e,display:e}}function Wo(e){let o=k(),{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(v=>v.code===y.code)&&c.push(y);return c},[o,t]);return Yr.default.createElement(ut,{...n,creatable:r??!0,clearable:a??!0,toKey:Tn,toOption:zi,loadOptions:f,onCreate:Qi,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=Xi(n);t(f),e.onChange&&e.onChange(f)}return ea.default.createElement(Wo,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:Wi(o),onChange:r,creatable:e.creatable,maxSelectedValues:e.maxSelectedValues??1,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable})}function Wi(e){return e?{code:e}:void 0}function Xi(e){return e?.code}var hl=(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 Bn(e){let{classes:o}=hl(),t=Do(),r=Ki(e.pathname,e.searchParams,e.menus),[a,n]=(0,Ie.useState)(!1);function f(s,i){s.stopPropagation(),s.preventDefault(),t(i),window.innerWidth<768&&e.closeNavbar()}function l(s){s&&t(`/${s}`)}return Ie.default.createElement(Ie.default.Fragment,null,Ie.default.createElement(Xe.Navbar,{width:{sm:250},p:"xs"},Ie.default.createElement(Xe.ScrollArea,null,Ie.default.createElement(Xe.Navbar.Section,{mb:"sm"},Ie.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})),Ie.default.createElement(Xe.Navbar.Section,{grow:!0},e.menus?.map(s=>Ie.default.createElement(Ie.default.Fragment,{key:`menu-${s.title}`},Ie.default.createElement(Xe.Text,{className:o.menuTitle},s.title),s.links?.map(i=>Ie.default.createElement(Ji,{key:i.href,to:i.href,active:i.href===r?.href,onClick:u=>f(u,i.href)},Ie.default.createElement($i,{to:i.href,icon:i.icon}),Ie.default.createElement("span",null,i.label))))),e.displayAddBookmark&&Ie.default.createElement(Xe.Button,{variant:"subtle",size:"xs",mt:"xl",leftIcon:Ie.default.createElement(pn,{size:"0.75rem"}),onClick:()=>n(!0)},"Add Bookmark")))),e.pathname&&e.searchParams&&Ie.default.createElement(gl,{pathname:e.pathname,searchParams:e.searchParams,visible:a,onOk:()=>n(!1),onCancel:()=>n(!1)}))}function Ji(e){let{classes:o,cx:t}=hl();return Ie.default.createElement(De,{onClick:e.onClick,to:e.to,className:t(o.link,{[o.linkActive]:e.active})},e.children)}function $i(e){return e.icon?e.icon:Ie.default.createElement(Xe.Space,{w:30})}function Ki(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=ji(e,o,f.href);l>a&&(a=l,r=f)}return r}function ji(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 _i(e){let o=(0,oa.useMantineTheme)(),[t,r]=(0,ao.useState)(localStorage.navbarOpen==="true"),a=k(),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(Pn,{pathname:e.pathname,searchParams:e.searchParams,logo:e.logo,version:e.version,navbarToggle:s}),navbar:n&&t?ao.default.createElement(Bn,{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 yl=require("@mantine/core"),Fo=m(require("react"));function uo(e){let o=e.value,{contentType:t,url:r,title:a}=o??{};return r?Fo.default.createElement("div",{"data-testid":"attachment-display"},t?.startsWith("image/")&&Fo.default.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:r,alt:o?.title}),t?.startsWith("video/")&&Fo.default.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},Fo.default.createElement("source",{type:t,src:r})),t==="application/pdf"&&!a?.endsWith(".pdf")&&Fo.default.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},Fo.default.createElement("iframe",{width:"100%",height:"400",src:r+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),Fo.default.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},Fo.default.createElement(yl.Anchor,{href:o?.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},o?.title||"Download"))):null}function An(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 Fn=require("@mantine/core");var ue=m(require("react"));var At=m(require("react"));function ct(e){let o=k(),t=(0,At.useRef)(null);function r(f){G(f),t.current?.click()}function a(f){G(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 Mn(e){let[o,t]=(0,ue.useState)(e.defaultValue??[]),r=(0,ue.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return ue.default.createElement("table",{style:{width:"100%"}},ue.default.createElement("colgroup",null,ue.default.createElement("col",{width:"97%"}),ue.default.createElement("col",{width:"3%"})),ue.default.createElement("tbody",null,o.map((n,f)=>ue.default.createElement("tr",{key:`${f}-${o.length}`},ue.default.createElement("td",null,ue.default.createElement(uo,{value:n,maxWidth:200})),ue.default.createElement("td",null,ue.default.createElement(Fn.ActionIcon,{title:"Remove",size:"sm",onClick:l=>{G(l);let s=o.slice();s.splice(f,1),a(s)}},ue.default.createElement(Qo,null))))),ue.default.createElement("tr",null,ue.default.createElement("td",null),ue.default.createElement("td",null,ue.default.createElement(ct,{onUpload:n=>{a([...r.current,n])}},n=>ue.default.createElement(Fn.ActionIcon,{...n,title:"Add",size:"sm",color:"green"},ue.default.createElement(fr,{size:16})))))))}var wn=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(uo,{value:o,maxWidth:200}),Mo.default.createElement(wn.Button,{onClick:a=>{G(a),r(void 0)}},"Remove")):Mo.default.createElement(ct,{onUpload:r},a=>Mo.default.createElement(wn.Button,{...a},"Upload..."))}var fa=require("@medplum/core"),Ot=m(require("react"));var ra=["meta","implicitRules","language","text","contained","extension","modifierExtension"];var Cl=require("@mantine/core"),Ft=m(require("react")),Zi=(0,Cl.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 On(e){let{children:o,compact:t}=e,{classes:r,cx:a}=Zi();return Ft.default.createElement("dl",{className:a(r.root,{[r.compact]:t})},o)}function En(e){return Ft.default.createElement(Ft.default.Fragment,null,Ft.default.createElement("dt",null,e.term),Ft.default.createElement("dd",null,e.children))}var Jo=require("@mantine/core"),R=require("@medplum/core");var H=m(require("react"));var vl=require("@medplum/core"),Ln=m(require("react"));function mt(e){return Ln.default.createElement(Ln.default.Fragment,null,(0,vl.formatCodeableConcept)(e.value))}var Sl=require("@medplum/core"),Rn=m(require("react"));function Nn(e){return Rn.default.createElement(Rn.default.Fragment,null,(0,Sl.formatCoding)(e.value))}var aa=m(require("react"));var Hn=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("]")),Hn.default.createElement(Hn.default.Fragment,null,t.join("").trim())}function Vn(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 bl=m(require("react"));function qn(e){return bl.default.createElement("div",null,e.value?.system,": ",e.value?.value)}var Pl=require("@medplum/core"),Gn=m(require("react"));function Un(e){return Gn.default.createElement(Gn.default.Fragment,null,(0,Pl.formatMoney)(e.value))}var Dl=require("@medplum/core"),zn=m(require("react"));function Mt(e){return zn.default.createElement(zn.default.Fragment,null,(0,Dl.formatQuantity)(e.value))}var kl=require("@medplum/core"),Qn=m(require("react"));function xr(e){return Qn.default.createElement(Qn.default.Fragment,null,(0,kl.formatRange)(e.value))}var Ir=m(require("react"));function Tl(e){let o=e.value;return o?Ir.default.createElement(Ir.default.Fragment,null,Ir.default.createElement(Mt,{value:o.numerator}),"\xA0/\xA0",Ir.default.createElement(Mt,{value:o.denominator})):null}var Bl=require("@medplum/core"),na=m(require("react"));function Xo(e){if(!e.value)return null;let o=e.value.display||e.value.reference||(0,Bl.stringify)(e.value);return e.link!==!1&&e.value.reference?na.default.createElement(De,{to:e.value},o):na.default.createElement(na.default.Fragment,null,o)}var gr=m(require("react"));function Wn(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(Ae,{arrayElement:!0,property:o,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))))}function Ae(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(on,{size:"1rem"})))));if(o?.max==="*"&&!e.arrayElement)return t===R.PropertyType.Attachment?H.default.createElement(An,{values:r,maxWidth:e.maxWidth}):H.default.createElement(Wn,{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(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(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(Nn,{value:r});case R.PropertyType.ContactDetail:return H.default.createElement(Vn,{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(qn,{value:r});case R.PropertyType.Money:return H.default.createElement(Un,{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(Mt,{value:r});case R.PropertyType.Range:return H.default.createElement(xr,{value:r});case R.PropertyType.Ratio:return H.default.createElement(Tl,{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(On,{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(En,{key:f,term:(0,fa.getPropertyDisplayName)(f)},Ot.default.createElement(Ae,{property:l,propertyType:i,value:s,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))})):Ot.default.createElement("div",null,r,"\xA0not implemented")}var Kl=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 Fl=require("@mantine/core"),Ml=m(require("react"));function Fe(e,o){return e?.issue?.filter(t=>Al(t.expression?.[0],o))?.map(t=>t.details?.text)?.join(`
|
|
65
|
+
`)}function Cr(e,o){return e?.issue?.filter(t=>Al(t.expression?.[0],o))}function Al(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 Ml.default.createElement(Fl.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"),Me=m(require("react"));function Yi(e){let o=k(),t=te(e.defaultValue),[r,a]=(0,Me.useState)(),[n,f]=(0,Me.useState)();return(0,Me.useEffect)(()=>{t&&(f((0,sa.deepClone)(t)),o.requestSchema(t.resourceType).then(a).catch(console.log))},[o,t]),!r||!n?Me.default.createElement("div",null,"Loading..."):Me.default.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:l=>{l.preventDefault(),e.onSubmit&&e.onSubmit(n)}},Me.default.createElement(go.Stack,{mb:"xl"},Me.default.createElement($e,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},Me.default.createElement(go.TextInput,{name:"resourceType",defaultValue:n.resourceType,disabled:!0})),Me.default.createElement($e,{title:"ID",htmlFor:"id",outcome:e.outcome},Me.default.createElement(go.TextInput,{name:"id",defaultValue:n.id,disabled:!0}))),Me.default.createElement(Lt,{typeName:n.resourceType,defaultValue:n,outcome:e.outcome,onChange:f}),Me.default.createElement(go.Group,{position:"right",mt:"xl"},Me.default.createElement(go.Button,{type:"submit"},"OK"),e.onDelete&&Me.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"),U=m(require("react"));var ia=m(require("react"));function Xn(e){let[o,t]=(0,ia.useState)(e.defaultValue);function r(a){let n=ou(a);t(n),e.onChange&&e.onChange(n)}return ia.default.createElement(Wo,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:o&&eu(o),maxSelectedValues:1,onChange:r})}function eu(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function ou(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 Jn(e){let[o,t]=(0,ua.useState)(e.defaultValue);function r(a){let n=a[0],f=n&&ru(n);t(f),e.onChange&&e.onChange(f)}return ua.default.createElement(Wo,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:o&&tu(o),maxSelectedValues:1,onChange:r})}function tu(e){return{system:e.system,code:e.code,display:e.display}}function ru(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 $n(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 wl=require("@mantine/core"),Kn=require("@medplum/core"),Ol=m(require("react"));function no(e){return Ol.default.createElement(wl.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:au(),defaultValue:El(e.defaultValue),autoFocus:e.autoFocus,error:Fe(e.outcome,e.name),onChange:o=>{if(e.onChange){let t=o.currentTarget.value;e.onChange(Ll(t))}}})}function El(e){if(!e)return"";let o=new Date(e);return(0,Kn.isValidDate)(o)?o.toLocaleDateString("sv")+"T"+o.toLocaleTimeString("sv"):""}function Ll(e){if(!e)return"";let o=new Date(e);return(0,Kn.isValidDate)(o)?o.toISOString():""}function au(){return"datetime-local"}var Rl=require("@mantine/core"),Nl=require("@medplum/core"),Hl=m(require("react"));function Vl(e){return Hl.default.createElement(Rl.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:(0,Nl.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 jn(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 _n(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")),nu=["USD","EUR","CAD","GBP","AUD"];function Zn(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:nu,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(tn,{size:14}),rightSection:l,rightSectionWidth:92,onChange:f})}var ql=require("@mantine/core"),Nt=m(require("react"));function Gl(e){let[o,t]=(0,Nt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Nt.default.createElement(ql.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:fu(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 fu(e){if(e)return parseFloat(e)}var Ul=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(Ul.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 zl=require("@mantine/core"),qt=m(require("react"));function Ql(e){let[o,t]=(0,qt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return qt.default.createElement(zl.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 Gt=require("@mantine/core"),Wl=require("@medplum/core"),mo=m(require("react"));var br=require("@mantine/core"),Pr=require("@medplum/core"),Ve=m(require("react"));var lu={Observation:"code",User:"email:contains"},su=["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 iu(e){return{value:(0,Pr.getReferenceString)(e),label:(0,Pr.getDisplayString)(e),resource:e}}function Dr(e){let o=k(),t=e.resourceType,[r,a]=(0,Ve.useState)(),n=te(e.defaultValue,a),f=e.onChange,l=(0,Ve.useCallback)(async(i,u)=>{let d=du(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:uu,defaultValue:n,placeholder:e.placeholder,maxSelectedValues:1,toKey:Pr.getReferenceString,toOption:iu,loadOptions:l,onChange:s,clearable:!0})}var uu=(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(Re,{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 du(e){return lu[e]??(su.includes(e)?"name":"_id")}function gt(e){let o=cu(e.targetTypes),t=mu(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(Gt.Group,{spacing:"xs",grow:!0,noWrap:!0},o?mo.default.createElement(Gt.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(Gt.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,Wl.createReference)(u):void 0)}}))}function cu(e){if(!(!e||e.length===0||e.length===1&&e[0]==="Resource"))return e}function mu(e,o){let t=e?.reference?.split("/")[0];if(t)return t;if(o&&o.length>0)return o[0]}var Yn=require("@mantine/core");var ge=m(require("react"));function ef(e){let[o,t]=(0,ge.useState)(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),r=(0,ge.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return ge.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},ge.default.createElement("colgroup",null,ge.default.createElement("col",{width:"97%"}),ge.default.createElement("col",{width:"3%"})),ge.default.createElement("tbody",null,o.map((n,f)=>ge.default.createElement("tr",{key:`${f}-${o.length}`},ge.default.createElement("td",null,ge.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)}})),ge.default.createElement("td",{style:{textAlign:"right"}},ge.default.createElement(Yn.ActionIcon,{title:"Remove",size:"sm",onClick:l=>{G(l);let s=[...r.current];s.splice(f,1),a(s)}},ge.default.createElement(Qo,null))))),ge.default.createElement("tr",null,ge.default.createElement("td",null),ge.default.createElement("td",{style:{textAlign:"right"}},ge.default.createElement(Yn.ActionIcon,{title:"Add",size:"sm",color:"green",onClick:n=>{G(n);let f=[...r.current];f.push(void 0),a(f)}},ge.default.createElement(Dt,null))))))}var he=require("@mantine/core"),Jl=require("@medplum/core"),j=m(require("react"));var pu=["sun","mon","tue","wed","thu","fri","sat"];function of(e){let[o,t]=(0,j.useState)(e.defaultValue),[r,a]=(0,j.useState)(!1),n=(0,j.useRef)();return n.current=o,j.default.createElement(j.default.Fragment,null,j.default.createElement(he.Group,{spacing:"xs",grow:!0,noWrap:!0},j.default.createElement("span",null,(0,Jl.formatTiming)(n.current)||"No repeat"),j.default.createElement(he.Button,{onClick:()=>a(!0)},"Edit")),j.default.createElement(xu,{visible:r,defaultValue:n.current,onOk:f=>{e.onChange&&e.onChange(f),t(f),a(!1)},onCancel:()=>a(!1)}))}var Xl={repeat:{period:1,periodUnit:"d"}};function xu(e){let[o,t]=(0,j.useState)(e.defaultValue||Xl),r=(0,j.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 j.default.createElement(he.Modal,{title:"Timing",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>e.onCancel()},j.default.createElement(he.Stack,null,j.default.createElement($e,{title:"Starts on",htmlFor:"timing-dialog-start"},j.default.createElement(no,{name:"timing-dialog-start",onChange:i=>a(i)})),j.default.createElement(he.Switch,{label:"Repeat",checked:!!o.repeat,onChange:i=>n(i.currentTarget.checked?Xl.repeat:void 0)}),o.repeat&&j.default.createElement(j.default.Fragment,null,j.default.createElement($e,{title:"Repeat every",htmlFor:"timing-dialog-period"},j.default.createElement(he.Group,{spacing:"xs",grow:!0,noWrap:!0},j.default.createElement(he.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)}),j.default.createElement(he.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"&&j.default.createElement($e,{title:"Repeat on"},j.default.createElement(he.Chip.Group,{multiple:!0,onChange:s},j.default.createElement(he.Group,{position:"apart",mt:"md",spacing:"xs"},pu.map(i=>j.default.createElement(he.Chip,{key:i,value:i,size:"xs",radius:"xl"},i.charAt(0).toUpperCase())))))),j.default.createElement(he.Group,{position:"right"},j.default.createElement(he.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?U.default.createElement(Mn,{name:r,defaultValue:a,onChange:e.onChange}):U.default.createElement(ef,{property:o,name:r,defaultValue:a,onChange:e.onChange});let n=o.type;return n.length>1?U.default.createElement($l,{elementDefinitionTypes:n,...e}):U.default.createElement(tf,{elementDefinitionType:n[0],...e})}function $l(e){let o=e.elementDefinitionTypes,t;e.defaultPropertyType&&(t=o.find(n=>n.code===e.defaultPropertyType)),t||(t=o[0]);let[r,a]=(0,U.useState)(t);return U.default.createElement(fo.Group,{spacing:"xs",grow:!0,noWrap:!0},U.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}))}),U.default.createElement(tf,{...e,elementDefinitionType:r,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",(0,N.capitalize)(r.code)))}}))}function tf(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 U.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 U.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 U.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 U.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 U.default.createElement(cr,{property:o,name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.boolean:return U.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 U.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 U.default.createElement(za,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Annotation:return U.default.createElement(Qa,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Attachment:return U.default.createElement(mr,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.CodeableConcept:return U.default.createElement(Xn,{property:o,name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Coding:return U.default.createElement(Jn,{property:o,name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.ContactDetail:return U.default.createElement($n,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.ContactPoint:return U.default.createElement(vr,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Extension:return U.default.createElement(Vl,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.HumanName:return U.default.createElement(jn,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Identifier:return U.default.createElement(_n,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Money:return U.default.createElement(Zn,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Period:return U.default.createElement(Gl,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Duration:case N.PropertyType.Quantity:return U.default.createElement(eo,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Range:return U.default.createElement(Vt,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Ratio:return U.default.createElement(Ql,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Reference:return U.default.createElement(gt,{name:r,defaultValue:a,targetTypes:Iu(o),onChange:e.onChange});case N.PropertyType.Timing:return U.default.createElement(of,{name:r,defaultValue:a,onChange:e.onChange});case N.PropertyType.Dosage:case N.PropertyType.UsageContext:return U.default.createElement(Lt,{typeName:t,defaultValue:a,onChange:e.onChange,outcome:e.outcome});default:return U.default.createElement(Lt,{typeName:(0,N.getElementDefinitionTypeName)(o),defaultValue:a,onChange:e.onChange,outcome:e.outcome})}}function Iu(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(Kl.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,v)=>{r(Et(o,s,v??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,v)=>{r(Et(o,s,v??s,l[1],y))}}))}))}var Lo=require("@mantine/core"),le=m(require("react")),gu=(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 jl(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function rf(e){let{classes:o}=gu(),{onChangeMonth:t,onClick:r}=e,[a,n]=(0,le.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,le.useMemo)(()=>hu(a,e.slots),[a,e.slots]);return le.default.createElement("div",null,le.default.createElement(Lo.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},le.default.createElement("p",{style:{flex:1}},jl(a)),le.default.createElement(Lo.Group,{position:"right",spacing:"xs"},le.default.createElement(Lo.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>f(-1)},"<"),le.default.createElement(Lo.Button,{variant:"outline","aria-label":"Next month",onClick:()=>f(1)},">"))),le.default.createElement("table",{className:o.table},le.default.createElement("thead",null,le.default.createElement("tr",null,le.default.createElement("th",null,"SUN"),le.default.createElement("th",null,"MON"),le.default.createElement("th",null,"TUE"),le.default.createElement("th",null,"WED"),le.default.createElement("th",null,"THU"),le.default.createElement("th",null,"FRI"),le.default.createElement("th",null,"SAT"))),le.default.createElement("tbody",null,l.map((s,i)=>le.default.createElement("tr",{key:"week-"+i},s.map((u,d)=>le.default.createElement("td",{key:"day-"+d},u&&le.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 hu(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:yu(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 yu(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"),_l=m(require("react")),Cu=(0,pa.createStyles)(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function Ro(e){let{children:o,...t}=e,{classes:r}=Cu();return _l.default.createElement(pa.Container,{className:r.root,...t},o)}var cs=m(require("react"));var se=require("@mantine/core"),Xt=require("@mantine/notifications"),jo=require("@medplum/core");var S=m(require("react"));var oe=require("@mantine/core"),lo=require("@medplum/core"),h=m(require("react"));var Ut=require("@mantine/core"),af=m(require("react")),vu=(0,Ut.createStyles)(e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));function nf({value:e}){let{classes:o}=vu();return e?af.default.createElement(Ut.Stack,{justify:"flex-start",spacing:"xs"},e.map(t=>t.text&&af.default.createElement(Ut.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 Yl=require("@mantine/core"),xa=m(require("react"));var Zl=require("@mantine/core"),zt=require("@medplum/core"),Tr=m(require("react"));function po(e){let{value:o,link:t,...r}=e,[a,n]=(0,Tr.useState)(),f=te(o,n),l;if(a&&!(0,zt.isOk)(a))l=`[${(0,zt.normalizeErrorString)(a)}]`;else if(f)l=(0,zt.getDisplayString)(f);else return null;return t?Tr.default.createElement(De,{to:o,...r},l):Tr.default.createElement(Zl.Text,{component:"span",...r},l)}function No(e){return xa.default.createElement(Yl.Group,{spacing:"xs"},xa.default.createElement(Re,{size:24,radius:12,value:e.value,link:e.link}),xa.default.createElement(po,{value:e.value,link:e.link}))}var es=require("@mantine/core"),os=m(require("react")),Su={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 os.default.createElement(es.Badge,{color:Su[e.status]},e.status)}var ts=(0,oe.createStyles)(e=>({table:{border:`0.1px solid ${e.colors.gray[5]}`,borderCollapse:"collapse","& td, & th":{border:`0.1px solid ${e.colors.gray[5]}`,padding:4}},criticalRow:{background:e.colorScheme==="dark"?e.colors.red[7]:e.colors.red[1],border:`0.1px solid ${e.colors.red[5]}`,color:e.colors.red[5],fontWeight:500,"& td":{border:`0.1px solid ${e.colors.red[5]}`}},noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));Ia.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};function Ia(e){let o=k(),t=te(e.value),[r,a]=(0,h.useState)();if((0,h.useEffect)(()=>{t?.specimen&&Promise.allSettled(t.specimen.map(f=>o.readReference(f))).then(f=>f.filter(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(oe.Stack,null,h.default.createElement(oe.Title,null,"Diagnostic Report"),h.default.createElement(bu,{value:t}),!e.hideSpecimenInfo&&Pu(r),t.result&&h.default.createElement(rs,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&h.default.createElement(nf,{value:n}))}function bu({value:e}){return h.default.createElement(oe.Group,{mt:"md",spacing:30},e.subject&&h.default.createElement("div",null,h.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),h.default.createElement(oe.Text,null,h.default.createElement(No,{value:e.subject,link:!0}))),e.resultsInterpreter?.map(o=>h.default.createElement("div",{key:o.reference},h.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),h.default.createElement(oe.Text,null,h.default.createElement(No,{value:o,link:!0})))),e.performer?.map(o=>h.default.createElement("div",{key:o.reference},h.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Performer"),h.default.createElement(oe.Text,null,h.default.createElement(No,{value:o,link:!0})))),e.issued&&h.default.createElement("div",null,h.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),h.default.createElement(oe.Text,null,(0,lo.formatDateTime)(e.issued))),e.status&&h.default.createElement("div",null,h.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),h.default.createElement(oe.Text,null,(0,lo.capitalize)(e.status))))}function Pu(e){return h.default.createElement(oe.Stack,{spacing:"xs"},h.default.createElement(oe.Title,{order:2,size:"h6"},"Specimens"),h.default.createElement(oe.List,{type:"ordered"},e?.map(o=>h.default.createElement(oe.List.Item,{ml:"sm",key:`specimen-${o.id}`},h.default.createElement(oe.Group,{spacing:20},h.default.createElement(oe.Group,{spacing:5},h.default.createElement(oe.Text,{fw:500},"Collected:")," ",(0,lo.formatDateTime)(o.collection?.collectedDateTime)),h.default.createElement(oe.Group,{spacing:5},h.default.createElement(oe.Text,{fw:500},"Received:")," ",(0,lo.formatDateTime)(o.receivedTime)))))))}function rs(e){let{classes:o}=ts();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(as,{value:e.value,hideObservationNotes:e.hideObservationNotes})))}function as(e){return h.default.createElement(h.default.Fragment,null,e.value?.map(o=>h.default.createElement(Du,{key:`obs-${(0,lo.isReference)(o)?o.reference:o.id}`,hideObservationNotes:e.hideObservationNotes,value:o})))}function Du(e){let{classes:o,cx:t}=ts(),r=te(e.value);if(!r)return null;let a=!e.hideObservationNotes&&r.note,n=Bu(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(De,{to:r},h.default.createElement(mt,{value:r.code}))),h.default.createElement("td",null,h.default.createElement(ku,{value:r})),h.default.createElement("td",null,h.default.createElement(Tu,{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(as,{value:r.hasMember,hideObservationNotes:e.hideObservationNotes}),a&&h.default.createElement("tr",null,h.default.createElement("td",{colSpan:6},h.default.createElement(nf,{value:r.note}))))}function ku(e){let o=e.value;return h.default.createElement(h.default.Fragment,null,(0,lo.formatObservationValue)(o))}function Tu(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 Bu(e){let o=e.interpretation?.[0]?.coding?.[0]?.code;return o==="AA"||o==="LL"||o==="HH"||o==="A"}var Qt=require("@mantine/core"),ns=m(require("react")),Au=(0,Qt.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%"}}})),Fu={shadow:"xs",radius:"md",withBorder:!0};function ht(e){let{className:o,children:t,width:r,fill:a,unstyled:n,...f}=(0,Qt.useComponentDefaultProps)("Panel",Fu,e),{classes:l,cx:s}=Au({width:r,fill:a},{name:"Panel",unstyled:n});return ns.default.createElement(Qt.Paper,{className:s(l.paper,o),...f},t)}var ls=require("@mantine/core"),Ko=require("@medplum/core"),de=m(require("react"));var Mu=(0,ls.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 ss(e){let{classes:o}=Mu(),t=k(),[r,a]=(0,de.useState)();if((0,de.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?de.default.createElement("table",{className:o.root},de.default.createElement("colgroup",null,de.default.createElement("col",{style:{width:"30%"}}),de.default.createElement("col",{style:{width:"35%"}}),de.default.createElement("col",{style:{width:"35%"}})),de.default.createElement("thead",null,de.default.createElement("tr",null,de.default.createElement("th",null,"Property"),de.default.createElement("th",null,"Before"),de.default.createElement("th",null,"After"))),de.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 fs(i)&&fs(d)||(0,Ko.stringify)(i)===(0,Ko.stringify)(d)?null:de.default.createElement("tr",{key:l},de.default.createElement("td",null,(0,Ko.getPropertyDisplayName)(l)),de.default.createElement("td",{className:o.removed},de.default.createElement(Ae,{property:s,propertyType:u,value:i,ignoreMissingValues:!0})),de.default.createElement("td",{className:o.added},de.default.createElement(Ae,{property:s,propertyType:c,value:d,ignoreMissingValues:!0})))}))):null}function fs(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=k(),t=te(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 Ce=m(require("react"));function ff(e){return Ce.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 Ce.default.createElement(ht,{"data-testid":"timeline-item",fill:!0,...n},Ce.default.createElement(xo.Group,{position:"apart",spacing:8,mx:"xs",my:"sm"},Ce.default.createElement(Re,{value:f,link:!0,size:"md"}),Ce.default.createElement("div",{style:{flex:1}},Ce.default.createElement(xo.Text,{size:"sm"},Ce.default.createElement(po,{color:"dark",weight:500,value:f,link:!0})),Ce.default.createElement(xo.Text,{size:"xs"},Ce.default.createElement(De,{color:"dimmed",to:e.resource},(0,ha.formatDateTime)(l)),Ce.default.createElement(xo.Text,{component:"span",color:"dimmed",mx:8},"\xB7"),Ce.default.createElement(De,{color:"dimmed",to:e.resource},e.resource.resourceType))),a&&Ce.default.createElement(xo.Menu,{position:"bottom-end",shadow:"md",width:200},Ce.default.createElement(xo.Menu.Target,null,Ce.default.createElement(xo.ActionIcon,{radius:"xl","aria-label":`Actions for ${(0,ha.getReferenceString)(e.resource)}`},Ce.default.createElement(rn,null))),a)),Ce.default.createElement(st,null,r&&Ce.default.createElement("div",{style:{padding:"0 16px 16px 16px"}},e.children),!r&&Ce.default.createElement(Ce.default.Fragment,null,e.children)))}function lf(e,o){e.sort((t,r)=>{let a=is(t,o),n=is(r,o);return a>n?1:a<n?-1:us(t,o)-us(r,o)})}function is(e,o){if(!ds(e,o)){let t=e.priority;if(typeof t=="string")return{stat:4,asap:3,urgent:2}[t]??0}return 0}function us(e,o){if(!ds(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 ds(e,o){return!!o&&e.resourceType===o.resourceType&&e.id===o.id}var wu=(0,se.createStyles)(e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}}));function Vo(e){let o=k(),t=Do(),r=o.getProfile(),a=(0,S.useRef)(null),n=te(e.value),[f,l]=(0,S.useState)(),[s,i]=(0,S.useState)([]),u=e.loadTimelineResources,d=(0,S.useRef)(s);d.current=s;let c=(0,S.useCallback)(b=>{lf(b,n),b.reverse(),i(b)},[n]),y=(0,S.useCallback)(b=>{let q=[];for(let so of b){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]),v=(0,S.useCallback)(b=>c([...d.current,b]),[c]),A=(0,S.useCallback)(()=>{let b,q;"resourceType"in e.value?(b=e.value.resourceType,q=e.value.id):[b,q]=e.value.reference?.split("/"),u(o,b,q).then(y).catch(console.log)},[o,e.value,u,y]);(0,S.useEffect)(()=>A(),[A]);function D(b){!n||!e.createCommunication||o.createResource(e.createCommunication(n,r,b)).then(q=>v(q)).catch(console.log)}function B(b){!n||!e.createMedia||o.createResource(e.createMedia(n,r,b)).then(q=>v(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,jo.normalizeErrorString)(q),icon:S.default.createElement(nn,{size:16}),autoClose:2e3}))}function I(b,q){return o.updateResource({...b,priority:q})}function W(b){I(b,"stat").then(A).catch(console.log)}function p(b){I(b,"routine").then(A).catch(console.log)}function O(b){t(`/${b.resourceType}/${b.id}`)}function Pe(b){t(`/${b.resourceType}/${b.id}/edit`)}function Ne(b){t(`/${b.resourceType}/${b.id}/delete`)}function Ee(b){t(`/${b.resourceType}/${b.id}/_history/${b.meta?.versionId}`)}function ye(){(0,Xt.showNotification)({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})}function er(b){(0,Xt.updateNotification)({id:"upload-notification",loading:!0,title:"Uploading...",message:Vu(b),autoClose:!1,withCloseButton:!1})}return n?S.default.createElement(ff,null,e.createCommunication&&S.default.createElement(ht,null,S.default.createElement(fe,{testid:"timeline-form",onSubmit:b=>{D(b.text);let q=a.current;q&&(q.value="",q.focus())}},S.default.createElement(se.Group,{spacing:"xs",noWrap:!0,style:{width:"100%"}},S.default.createElement(Re,{value:r}),S.default.createElement(se.TextInput,{name:"text",ref:a,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),S.default.createElement(se.ActionIcon,{type:"submit",radius:"xl",color:"blue",variant:"filled"},S.default.createElement(dn,{size:16})),S.default.createElement(ct,{onUpload:B,onUploadStart:ye,onUploadProgress:er},b=>S.default.createElement(se.ActionIcon,{...b,radius:"xl",color:"blue",variant:"filled"},S.default.createElement(fr,{size:16})))))),s.map(b=>{if(!b)return null;let q=`${b.resourceType}/${b.id}/${b.meta?.versionId}`;if(b.resourceType===n.resourceType&&b.id===n.id)return S.default.createElement(Ou,{key:q,history:f,resource:b,onDetails:Ee});switch(b.resourceType){case"AuditEvent":return S.default.createElement(Nu,{key:q,resource:b,onDetails:O});case"Communication":return S.default.createElement(Lu,{key:q,resource:b,onPin:b.priority!=="stat"?W:void 0,onUnpin:b.priority==="stat"?p:void 0,onDetails:O,onEdit:Pe,onDelete:Ne});case"DiagnosticReport":return S.default.createElement(Hu,{key:q,resource:b,onDetails:O,onEdit:Pe,onDelete:Ne});case"Media":return S.default.createElement(Ru,{key:q,resource:b,onDetails:O,onEdit:Pe,onDelete:Ne});default:return S.default.createElement(Ho,{key:q,resource:b,padding:!0},S.default.createElement(ga,{value:b,ignoreMissingValues:!0}))}})):S.default.createElement(se.Center,{style:{width:"100%",height:"100%"}},S.default.createElement(se.Loader,null))}function Jt(e){return S.default.createElement(se.Menu.Dropdown,null,S.default.createElement(se.Menu.Label,null,"Resource"),e.onPin&&S.default.createElement(se.Menu.Item,{icon:S.default.createElement(cn,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${(0,jo.getReferenceString)(e.resource)}`},"Pin"),e.onUnpin&&S.default.createElement(se.Menu.Item,{icon:S.default.createElement(mn,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${(0,jo.getReferenceString)(e.resource)}`},"Unpin"),e.onDetails&&S.default.createElement(se.Menu.Item,{icon:S.default.createElement(sn,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${(0,jo.getReferenceString)(e.resource)}`},"Details"),e.onEdit&&S.default.createElement(se.Menu.Item,{icon:S.default.createElement(an,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${(0,jo.getReferenceString)(e.resource)}`},"Edit"),e.onDelete&&S.default.createElement(S.default.Fragment,null,S.default.createElement(se.Menu.Divider,null),S.default.createElement(se.Menu.Label,null,"Danger zone"),S.default.createElement(se.Menu.Item,{color:"red",icon:S.default.createElement(ir,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${(0,jo.getReferenceString)(e.resource)}`},"Delete")))}function Ou(e){let o=Eu(e.history,e.resource);return o?S.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:S.default.createElement(Jt,{...e})},S.default.createElement(ss,{original:o,revised:e.resource})):S.default.createElement(Ho,{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 Eu(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 Lu(e){let{classes:o}=wu(),r=!e.resource.priority||e.resource.priority==="routine"?void 0:o.pinnedComment;return S.default.createElement(Ho,{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 Ru(e){let o=e.resource.content?.contentType,t=o&&!o.startsWith("image/")&&!o.startsWith("video/")&&o!=="application/pdf";return S.default.createElement(Ho,{resource:e.resource,padding:!!t,popupMenuItems:S.default.createElement(Jt,{...e})},S.default.createElement(uo,{value:e.resource.content}))}function Nu(e){return S.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:S.default.createElement(Jt,{...e})},S.default.createElement(se.ScrollArea,null,S.default.createElement("pre",null,e.resource.outcomeDesc)))}function Hu(e){return S.default.createElement(Ho,{resource:e.resource,padding:!0,popupMenuItems:S.default.createElement(Jt,{...e})},S.default.createElement(Ia,{value:e.resource}))}function Vu(e){if(e.lengthComputable){let o=100*e.loaded/e.total;return`Uploaded: ${sf(e.loaded)} / ${sf(e.total)} ${o.toFixed(2)}%`}return`Uploaded: ${sf(e.loaded)}`}function sf(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 cs.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 uf=m(require("react"));function Ar(e){let{children:o,...t}=e;return uf.default.createElement(Ro,null,uf.default.createElement(ht,{...t},o))}var Fr=require("@medplum/core"),ms=m(require("react"));function Gu(e){return ms.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,Fr.createReference)(o),subject:o.subject,sender:(0,Fr.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",encounter:(0,Fr.createReference)(o),subject:o.subject,operator:(0,Fr.createReference)(t),issued:new Date().toISOString(),content:r})})}var Zt=require("@mantine/core"),ks=require("@medplum/core"),_=m(require("react"));var ps=require("@medplum/core"),xs=m(require("react"));function Is(e){let o;try{o=(0,ps.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 xs.default.createElement(Ae,{value:o[0]||"",propertyType:e.propertyType})}var z=require("@mantine/core"),tt=require("@medplum/core");var C=m(require("react"));var _o=require("@mantine/core"),yt=m(require("react"));function hs(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(gs,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&yt.default.createElement(gs,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})),yt.default.createElement(_o.Text,{sx:{marginTop:"10px",marginLeft:"2px"}},"Limited to 1000 records"))}function gs(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"),X=m(require("react"));var F=require("@medplum/core"),Mr=m(require("react"));var Uu={string:[F.Operator.EQUALS,F.Operator.NOT,F.Operator.CONTAINS,F.Operator.EXACT],fulltext:[F.Operator.EQUALS,F.Operator.NOT,F.Operator.CONTAINS,F.Operator.EXACT],token:[F.Operator.EQUALS,F.Operator.NOT],reference:[F.Operator.EQUALS,F.Operator.NOT],numeric:[F.Operator.EQUALS,F.Operator.NOT_EQUALS,F.Operator.GREATER_THAN,F.Operator.LESS_THAN,F.Operator.GREATER_THAN_OR_EQUALS,F.Operator.LESS_THAN_OR_EQUALS],quantity:[F.Operator.EQUALS,F.Operator.NOT_EQUALS,F.Operator.GREATER_THAN,F.Operator.LESS_THAN,F.Operator.GREATER_THAN_OR_EQUALS,F.Operator.LESS_THAN_OR_EQUALS],date:[F.Operator.EQUALS,F.Operator.NOT_EQUALS,F.Operator.GREATER_THAN,F.Operator.LESS_THAN,F.Operator.GREATER_THAN_OR_EQUALS,F.Operator.LESS_THAN_OR_EQUALS,F.Operator.STARTS_AFTER,F.Operator.ENDS_BEFORE,F.Operator.APPROXIMATELY],datetime:[F.Operator.EQUALS,F.Operator.NOT_EQUALS,F.Operator.GREATER_THAN,F.Operator.LESS_THAN,F.Operator.GREATER_THAN_OR_EQUALS,F.Operator.LESS_THAN_OR_EQUALS,F.Operator.STARTS_AFTER,F.Operator.ENDS_BEFORE,F.Operator.APPROXIMATELY]},zu={eq:"equals",ne:"not equals",gt:"greater than",lt:"less than",ge:"greater than or equals",le:"less than or equals",sa:"starts after",eb:"ends before",ap:"approximately",contains:"contains",exact:"exact",text:"text",not:"not",above:"above",below:"below",in:"in","not-in":"not in","of-type":"of type",missing:"missing",identifier:"identifier",iterate:"iterate"};function $t(e,o){return{...e,filters:o,offset:0,name:void 0}}function Qu(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 Wu(e,o){if(e.fields?.includes(o))return e;let t=[];return e.fields&&t.push(...e.fields),t.push(o),{...e,fields:t,name:void 0}}function df(e,o){if(!e.filters)return e;let t=[...e.filters];return t.splice(o,1),{...e,filters:t,name:void 0}}function cf(e,o){return xf(e,o,-1)}function mf(e,o){return xf(e,o,0)}function pf(e,o){return xf(e,o,1)}function xf(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 If(e,o){return yf(e,o,-1)}function gf(e,o){return yf(e,o,0)}function hf(e,o){return yf(e,o,1)}function yf(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 Cf(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=ys(e,o,F.Operator.GREATER_THAN_OR_EQUALS,t),e=ys(e,o,F.Operator.LESS_THAN_OR_EQUALS,r),e}function ys(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 Cs(e,o){return e.offset===o?e:{...e,offset:o,name:void 0}}function vf(e,o){let t=e.count??F.DEFAULT_SEARCH_COUNT,r=(o-1)*t;return Cs(e,r)}function va(e,o,t){return o===Sf(e)&&t!==void 0&&t===bf(e)?e:{...e,sortRules:[{code:o,descending:!!t}],name:void 0}}function Xu(e,o){let t=!1;return Sf(e)===o&&(t=!bf(e)),va(e,o,t)}function Sf(e){let o=e.sortRules;if(!o||o.length===0)return;let t=o[0].code;return t.startsWith("-")?t.substr(1):t}function bf(e){let o=e.sortRules;return!o||o.length===0?!1:!!o[0].descending}function Pf(e){return Uu[e.type]}function Kt(e){return zu[e]??""}function qe(e){let o=e;return o.includes(".")&&(o=o.split(".").pop()),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 Df(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?Mr.default.createElement(Ae,{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:Mr.default.createElement(Mr.default.Fragment,null,t.map((r,a)=>Mr.default.createElement(Ae,{key:`${a}-${t.length}`,propertyType:r.type,value:r.value,maxWidth:200,ignoreMissingValues:!0,link:!1})))}function kf(e){let[o,t]=(0,X.useState)({search:JSON.parse((0,Sa.stringify)(e.search))}),r=(0,X.useRef)(null),a=(0,X.useRef)(null);(0,X.useEffect)(()=>{t({search:e.search})},[e.search]);function n(I){I.key==="Enter"&&i()}function f(){i()}function l(I){I.key==="Enter"&&u()}function s(){u()}function i(){let I=o.search.fields??[],W=r.current?.value;if(W){let p=[...I,W];t({search:{...o.search,fields:p}})}}function u(){let I=o.search.fields??[],W=a.current?.value;if(W){let p=[...I];p.splice(p.indexOf(W),1),t({search:{...o.search,fields:p}})}}function d(){let I=o.search.fields??[],W=a.current?.value;if(!W)return;let p=[...I],O=p.indexOf(W);O<=0||(y(p,O,O-1),t({search:{...o.search,fields:p}}))}function c(){let I=o.search.fields??[],W=a.current?.value;if(!W)return;let p=[...I],O=p.indexOf(W);O>=p.length-1||(y(p,O,O+1),t({search:{...o.search,fields:p}}))}function y(I,W,p){let O=I[W];I[W]=I[p],I[p]=O}if(!e.visible)return null;let v=e.search.resourceType,A=Sa.globalSchema.types[v],D=o.search.fields??[],B=Ku(A).filter(I=>!D.includes(I)).sort((I,W)=>I.localeCompare(W));return X.default.createElement(Zo.Modal,{title:"Fields",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},X.default.createElement("div",null,X.default.createElement("table",{style:{margin:"auto"}},X.default.createElement("thead",null,X.default.createElement("tr",null,X.default.createElement("th",{colSpan:2,align:"center"},"Available"),X.default.createElement("th",{colSpan:2,align:"center"},"Selected"))),X.default.createElement("tbody",null,X.default.createElement("tr",null,X.default.createElement("td",{colSpan:2,align:"center"},X.default.createElement("select",{ref:r,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:I=>n(I),onDoubleClick:()=>f(),"data-testid":"available"},B.map(I=>X.default.createElement("option",{key:I,value:I},qe(I))))),X.default.createElement("td",{colSpan:2,align:"center"},X.default.createElement("select",{ref:a,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:I=>l(I),onDoubleClick:()=>s(),"data-testid":"selected"},D.map(I=>X.default.createElement("option",{key:I,value:I},qe(I))))))),X.default.createElement("tfoot",null,X.default.createElement("tr",null,X.default.createElement("td",{align:"center"},X.default.createElement(Zo.Button,{compact:!0,variant:"outline",onClick:i},"Add")),X.default.createElement("td",{align:"center"},X.default.createElement(Zo.Button,{compact:!0,variant:"outline",onClick:u},"Remove")),X.default.createElement("td",{align:"center"},X.default.createElement(Zo.Button,{compact:!0,variant:"outline",onClick:d},"Up")),X.default.createElement("td",{align:"center"},X.default.createElement(Zo.Button,{compact:!0,variant:"outline",onClick:c},"Down")))))),X.default.createElement(Zo.Button,{onClick:()=>e.onOk(o.search)},"OK"))}function Ku(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:ju(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 ju(e){if(e){let[o,t,r]=e.split("|");if(o)return{value:parseFloat(o),system:t,unit:r}}}function Tf(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(vs,{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(_u,{key:`filter-${u.code}-${u.operator}-${u.value}-display`,resourceType:l,searchParams:s,filter:u,onEdit:()=>a(d),onDelete:()=>t(df(n.current,d))})),E.default.createElement(vs,{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 _u(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 vs(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&&Pf(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 Ss(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(fe,{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 M=require("@mantine/core"),ke=require("@medplum/core");var x=m(require("react"));function bs(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?x.default.createElement(Zu,{search:e.search,searchParam:e.searchParams[0],onSort:o,onPrompt:r,onChange:a,onClear:t}):x.default.createElement(M.Menu.Dropdown,null,e.searchParams.map(n=>x.default.createElement(M.Menu.Item,{key:n.code},qe(n.code))))}function Zu(e){switch(e.searchParam.type){case"date":return x.default.createElement(Yu,{...e});case"number":case"quantity":return x.default.createElement(ed,{...e});case"reference":return x.default.createElement(od,{...e});case"string":case"token":case"uri":return x.default.createElement(td,{...e});default:return x.default.createElement(x.default.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function Yu(e){let{searchParam:o}=e,t=o.code;return x.default.createElement(M.Menu.Dropdown,null,x.default.createElement(M.Menu.Item,{icon:x.default.createElement(lr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Oldest to Newest"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(sr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Newest to Oldest"),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Tt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.NOT_EQUALS)},"Does not equal..."),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(zr,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.ENDS_BEFORE)},"Before..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Ur,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.STARTS_AFTER)},"After..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Ka,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Between..."),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(ko,{size:14}),onClick:()=>e.onChange(pf(e.search,t))},"Tomorrow"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(ko,{size:14}),onClick:()=>e.onChange(mf(e.search,t))},"Today"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(ko,{size:14}),onClick:()=>e.onChange(cf(e.search,t))},"Yesterday"),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(ko,{size:14}),onClick:()=>e.onChange(hf(e.search,t))},"Next Month"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(ko,{size:14}),onClick:()=>e.onChange(gf(e.search,t))},"This Month"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(ko,{size:14}),onClick:()=>e.onChange(If(e.search,t))},"Last Month"),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(ko,{size:14}),onClick:()=>e.onChange(Cf(e.search,t))},"Year to date"),x.default.createElement(Da,{...e}))}function ed(e){let{searchParam:o}=e;return x.default.createElement(M.Menu.Dropdown,null,x.default.createElement(M.Menu.Item,{icon:x.default.createElement(lr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Smallest to Largest"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(sr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Largest to Smallest"),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Tt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.NOT_EQUALS)},"Does not equal..."),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Ur,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.GREATER_THAN)},"Greater than..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(zr,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.LESS_THAN)},"Less than..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Bt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),x.default.createElement(Da,{...e}))}function od(e){let{searchParam:o}=e;return x.default.createElement(M.Menu.Dropdown,null,x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Tt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.NOT)},"Does not equal..."),x.default.createElement(Da,{...e}))}function td(e){let{searchParam:o}=e;return x.default.createElement(M.Menu.Dropdown,null,x.default.createElement(M.Menu.Item,{icon:x.default.createElement(lr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort A to Z"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(sr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Z to A"),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Tt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(kt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.NOT)},"Does not equal..."),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(_a,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.CONTAINS)},"Contains..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(ja,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Does not contain..."),x.default.createElement(Da,{...e}))}function Da(e){let{searchParam:o}=e,t=o.code;return x.default.createElement(x.default.Fragment,null,x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Ja,{size:14}),onClick:()=>e.onChange(Ca(e.search,t))},"Missing"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Xa,{size:14}),onClick:()=>e.onChange(Ca(e.search,t,!1))},"Not missing"),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Cn,{size:14}),onClick:()=>e.onClear(o)},"Clear filters"))}var ka=require("@medplum/core");function Ps(e){let o=e.resourceType,t=[];for(let r of e.fields||["id","_lastUpdated"])t.push(rd(o,r));return t}function rd(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}},ad=(0,z.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 Ds(e){let{classes:o}=ad(),t=k(),[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)(T=>{f(void 0),t.search(l.resourceType,(0,tt.formatSearchQuery)({...l,total:c,fields:void 0}),T).then(ee=>{u({...d.current,searchResponse:ee}),s&&s(new Ba(ee))}).catch(ee=>{u({...d.current,searchResponse:void 0}),f(ee)})},[t,l,c,s]),v=(0,C.useCallback)(()=>{u({...d.current,searchResponse:void 0}),y({cache:"reload"})},[y]);(0,C.useEffect)(()=>{y()},[y]);function A(T,ee){T.stopPropagation();let Be=T.target.checked,Le={...d.current.selected};Be?Le[ee]=!0:delete Le[ee],u({...d.current,selected:Le})}function D(T){T.stopPropagation();let xe=T.target.checked,Be={},Le=d.current.searchResponse;xe&&Le?.entry&&Le.entry.forEach(or=>{or.resource?.id&&(Be[or.resource.id]=!0)}),u({...d.current,selected:Be})}function B(){let T=d.current;if(!T.searchResponse?.entry||T.searchResponse.entry.length===0)return!1;for(let ee of T.searchResponse.entry)if(ee.resource?.id&&!T.selected[ee.resource.id])return!1;return!0}function I(T){e.onChange&&e.onChange(new Ta(T))}function W(T,ee){if(Jr(T.target)||T.button===2)return;G(T);let xe=T.button===1||T.ctrlKey||T.metaKey;!xe&&e.onClick&&e.onClick(new ot(ee,T)),xe&&e.onAuxClick&&e.onAuxClick(new ot(ee,T))}function p(){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(z.Center,{style:{width:"100%",height:"100%"}},C.default.createElement(z.Loader,null));let Pe=e.checkboxesEnabled,Ne=Ps(l),Ee=l.resourceType,ye=i.searchResponse,b=ye?.entry?.map(T=>T.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(z.Group,{position:"apart",mb:"xl"},C.default.createElement(z.Group,{spacing:2},C.default.createElement(z.Button,{compact:!0,variant:q,color:so,leftIcon:C.default.createElement(en,{size:He}),onClick:()=>u({...d.current,fieldEditorVisible:!0})},"Fields"),C.default.createElement(z.Button,{compact:!0,variant:q,color:so,leftIcon:C.default.createElement(ln,{size:He}),onClick:()=>u({...d.current,filterEditorVisible:!0})},"Filters"),e.onNew&&C.default.createElement(z.Button,{compact:!0,variant:q,color:so,leftIcon:C.default.createElement(fn,{size:He}),onClick:e.onNew},"New..."),!ft&&p()&&C.default.createElement(z.Button,{compact:!0,variant:q,color:so,leftIcon:C.default.createElement(yn,{size:He}),onClick:e.onExport?e.onExport:()=>u({...d.current,exportDialogVisible:!0})},"Export..."),!ft&&e.onDelete&&C.default.createElement(z.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(z.Button,{compact:!0,variant:q,color:so,leftIcon:C.default.createElement($a,{size:He}),onClick:()=>e.onBulk(Object.keys(i.selected))},"Bulk...")),C.default.createElement(z.Group,{spacing:2},ye&&C.default.createElement(z.Text,{size:"xs",color:"dimmed"},id(l,ye.total),"-",ud(l,ye.total)," of"," ",`${c==="estimate"?"~":""}${ye.total?.toLocaleString()}`),C.default.createElement(z.ActionIcon,{title:"Refresh",onClick:v},C.default.createElement(xn,{size:"1.125rem"})))),C.default.createElement(z.Table,{className:o.table},C.default.createElement("thead",null,C.default.createElement("tr",null,Pe&&C.default.createElement("th",null,C.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:B(),onChange:T=>D(T)})),Ne.map(T=>C.default.createElement("th",{key:T.name},C.default.createElement(z.Menu,{shadow:"md",width:240,position:"bottom-end"},C.default.createElement(z.Menu.Target,null,C.default.createElement(z.UnstyledButton,{className:o.control},C.default.createElement(z.Group,{position:"apart",noWrap:!0},C.default.createElement(z.Text,{weight:500,size:"sm"},qe(T.name)),C.default.createElement(z.Center,{className:o.icon},C.default.createElement(Wa,{size:14,stroke:1.5}))))),C.default.createElement(bs,{search:e.search,searchParams:T.searchParams,onPrompt:(ee,xe)=>{u({...d.current,filterDialogVisible:!0,filterDialogSearchParam:ee,filterDialogFilter:xe})},onChange:ee=>{I(ee)}}))))),!e.hideFilters&&C.default.createElement("tr",null,Pe&&C.default.createElement("th",null),Ne.map(T=>C.default.createElement("th",{key:T.name},T.searchParams&&C.default.createElement(fd,{resourceType:Ee,searchParams:T.searchParams,filters:e.search.filters}))))),C.default.createElement("tbody",null,b?.map(T=>T&&C.default.createElement("tr",{key:T.id,className:o.tr,"data-testid":"search-control-row",onClick:ee=>W(ee,T),onAuxClick:ee=>W(ee,T)},Pe&&C.default.createElement("td",null,C.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${T.id}`,checked:!!i.selected[T.id],onChange:ee=>A(ee,T.id)})),Ne.map(ee=>C.default.createElement("td",{key:ee.name},Df(T,ee))))))),b?.length===0&&C.default.createElement(Ro,null,C.default.createElement(z.Center,{style:{height:150}},C.default.createElement(z.Text,{size:"xl",color:"dimmed"},"No results"))),ye?.total!==void 0&&ye.total>0&&C.default.createElement(z.Center,{m:"md",p:"md"},C.default.createElement(z.Pagination,{value:ld(l),total:sd(l,ye.total),onChange:T=>I(vf(l,T)),getControlProps:T=>{switch(T){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(kf,{search:e.search,visible:d.current.fieldEditorVisible,onOk:T=>{I(T),u({...d.current,fieldEditorVisible:!1})},onCancel:()=>{u({...d.current,fieldEditorVisible:!1})}}),C.default.createElement(Tf,{search:e.search,visible:d.current.filterEditorVisible,onOk:T=>{I(T),u({...d.current,filterEditorVisible:!1})},onCancel:()=>{u({...d.current,filterEditorVisible:!1})}}),C.default.createElement(hs,{visible:d.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{u({...d.current,exportDialogVisible:!1})}}),C.default.createElement(Ss,{key:i.filterDialogSearchParam?.code,visible:d.current.filterDialogVisible,title:i.filterDialogSearchParam?.code?qe(i.filterDialogSearchParam.code):"",resourceType:Ee,searchParam:i.filterDialogSearchParam,filter:i.filterDialogFilter,defaultValue:"",onOk:T=>{I(Ct(e.search,T.code,T.operator,T.value)),u({...d.current,filterDialogVisible:!1})},onCancel:()=>{u({...d.current,filterDialogVisible:!1})}}))}var nd=C.default.memo(Ds);function fd(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 ld(e){return Math.floor((e.offset??0)/(e.count??tt.DEFAULT_SEARCH_COUNT))+1}function sd(e,o){let t=e.count??tt.DEFAULT_SEARCH_COUNT;return Math.ceil(o/t)}function id(e,o){return Math.min(o,(e.offset??0)+1)}function ud(e,o){return Math.min(o,((e.offset??0)+1)*(e.count??tt.DEFAULT_SEARCH_COUNT))}function Ts(e){let o=k(),[t,r]=(0,_.useState)(),[a,n]=(0,_.useState)(),{query:f,fields:l}=e,[s,i]=(0,_.useState)(),[u,d]=(0,_.useState)({}),c=(0,_.useRef)();c.current=s;let y=(0,_.useRef)({});y.current=u,(0,_.useEffect)(()=>{n(void 0),o.graphql(f).then(i).catch(p=>n((0,ks.normalizeOperationOutcome)(p)))},[o,f]);function v(p,O){p.stopPropagation();let Ne=p.target.checked,Ee={...y.current};Ne?Ee[O]=!0:delete Ee[O],d(Ee)}function A(p){p.stopPropagation();let Pe=p.target.checked,Ne={},Ee=c.current?.data.ResourceList;Pe&&Ee&&Ee.forEach(ye=>{ye.id&&(Ne[ye.id]=!0)}),d(Ne)}function D(){let p=c.current?.data.ResourceList;if(!p||p.length===0)return!1;for(let O of p)if(O.id&&!y.current[O.id])return!1;return!0}function B(p,O){Jr(p.target)||(G(p),p.button!==1&&e.onClick&&e.onClick(new ot(O,p)),p.button===1&&e.onAuxClick&&e.onAuxClick(new ot(O,p)))}if((0,_.useEffect)(()=>{o.requestSchema(e.resourceType).then(p=>{r({...p})}).catch(console.log)},[o,e.resourceType]),!t?.types[e.resourceType])return _.default.createElement(Zt.Loader,null);let W=e.checkboxesEnabled;return _.default.createElement("div",{onContextMenu:p=>G(p),"data-testid":"search-control"},_.default.createElement(Zt.Table,null,_.default.createElement("thead",null,_.default.createElement("tr",null,W&&_.default.createElement("th",null,_.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:D(),onChange:p=>A(p)})),l.map(p=>_.default.createElement("th",{key:p.name},p.name)))),_.default.createElement("tbody",null,s?.data.ResourceList.map(p=>p&&_.default.createElement("tr",{key:p.id,"data-testid":"search-control-row",onClick:O=>B(O,p),onAuxClick:O=>B(O,p)},W&&_.default.createElement("td",null,_.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${p.id}`,checked:!!u[p.id],onChange:O=>v(O,p.id)})),l.map(O=>_.default.createElement("td",{key:O.name},_.default.createElement(Is,{propertyType:O.propertyType,path:O.fhirPath,resource:p}))))))),s?.data.ResourceList.length===0&&_.default.createElement("div",{"data-testid":"empty-search"},"No results"),a&&_.default.createElement("div",{"data-testid":"search-error"},_.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(a,void 0,2))),e.onBulk&&_.default.createElement(Zt.Button,{onClick:()=>e.onBulk(Object.keys(y.current))},"Bulk..."))}var dd=_.default.memo(Ts);var rt=m(require("react"));function Go(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 Bs=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(Bs.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"),Fa=m(require("react"));function cd(e){let o=(0,Fa.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 Fa.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 Ge=require("@mantine/core"),As=require("@medplum/core"),L=m(require("react"));var Fs=(0,Ge.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 md(e){let o=k(),t=te(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(yd(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 v(A,D){u({...y.current,[A]:D})}return L.default.createElement("div",null,L.default.createElement(fe,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(i)},L.default.createElement(Ge.TextInput,{label:"Plan Title",defaultValue:i.title,onChange:A=>v("title",A.currentTarget.value)}),L.default.createElement(Ms,{actions:i.action||[],selectedKey:n,setSelectedKey:f,hoverKey:l,setHoverKey:s,onChange:A=>v("action",A)}),L.default.createElement(Ge.Button,{type:"submit"},"Save")))}function Ms(e){let{classes:o}=Fs(),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(pd,{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(Ge.Anchor,{href:"#",onClick:f=>{G(f),a({id:Os()})}},"Add action")))}function pd(e){let{classes:o,cx:t}=Fs(),{action:r}=e,a=hd(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){G(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(Id,{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(xd,{action:r,actionType:a}),L.default.createElement("div",{className:o.bottomActions},L.default.createElement(Ge.Anchor,{href:"#",onClick:u=>{u.preventDefault(),e.onRemove()}},"Remove")))}var Af={path:"PlanDefinition.action.timing[x]",min:0,max:"1",type:[{code:"dateTime"},{code:"Period"},{code:"Range"},{code:"Timing"}]};function xd(e){let{action:o,actionType:t}=e,[r,a]=ws(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(Ae,{property:Af,propertyType:a,value:r})))}function Id(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(Ge.Stack,{spacing:"xl"},L.default.createElement(Ge.TextInput,{name:`actionTitle-${o.id}`,label:"Title",defaultValue:o.title,onChange:n=>a("title",n.currentTarget.value)}),L.default.createElement(Ge.TextInput,{name:`actionDescription-${o.id}`,label:"Description",defaultValue:o.description,onChange:n=>a("description",n.currentTarget.value)}),L.default.createElement(Ge.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(Ms,{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(Ma,{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(Ma,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});case"questionnaire":return L.default.createElement(Ma,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:o,onChange:e.onChange});case"task":return L.default.createElement(Ma,{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(gd,{name:"timing-"+o.id,action:o,onChange:e.onChange})))}function Ma(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,As.getReferenceString)(a)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function gd(e){let o=e.action,t="timing",[r,a]=ws(o);return L.default.createElement(yo,{property:Af,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(n,f)=>{e.onChange(Et(o,t,f??t,Af,n))}})}function hd(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task"}function ws(e){return Je({type:"PlanDefinitionAction",value:e},"timing")}var Bf=1;function Os(e){if(e){if(e.startsWith("id-")){let o=parseInt(e.substring(3),10);isNaN(o)||(Bf=Math.max(Bf,o+1))}return e}return"id-"+Bf++}function yd(e){return{...e,action:Es(e.action)}}function Es(e){if(e)return e.map(o=>({...o,id:Os(o.id),action:Es(o.action)}))}var Z=require("@mantine/core"),Ea=require("@medplum/core"),P=m(require("react"));var Lr=require("@medplum/core"),wa=(B=>(B.group="group",B.display="display",B.question="question",B.boolean="boolean",B.decimal="decimal",B.integer="integer",B.date="date",B.dateTime="dateTime",B.time="time",B.string="string",B.text="text",B.url="url",B.choice="choice",B.openChoice="open-choice",B.attachment="attachment",B.reference="reference",B.quantity="quantity",B))(wa||{});function Ff(e){return e.type==="choice"||e.type==="open-choice"}function Mf(e,o){if(!e.enableWhen)return!0;let t=e.enableBehavior??"any";for(let r of e.enableWhen){let a=Ls(o,r.question);if(r.operator==="exists"&&!r.answerBoolean&&!a?.length){if(t==="any")return!0;continue}let{anyMatch:n,allMatch:f}=vd(r,a,t);if(t==="any"&&n)return!0;if(t==="all"&&!f)return!1}return t!=="any"}function Ls(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=Ls(r.item,o);if(a)return a}}function Cd(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 vd(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(Cd(s,a,i)?n=!0:f=!1,t==="any"&&n)break}return{anyMatch:n,allMatch:f}}var we=require("@mantine/core"),ve=require("@medplum/core"),ce=m(require("react"));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=Dd(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 ce.default.createElement(yr,{key:e.item.linkId,title:e.item.text,htmlFor:e.item.linkId},ce.default.createElement(we.Checkbox,{id:e.item.linkId,name:e.item.linkId,defaultChecked:Ue(e.allResponses,o,t,e.groupSequence)??f?.valueBoolean,onChange:l=>r({valueBoolean:l.currentTarget.checked},t)}));case"decimal":return ce.default.createElement(we.TextInput,{type:"number",step:"any",id:n,name:n,defaultValue:Ue(e.allResponses,o,t,e.groupSequence)??f?.valueDecimal,onChange:l=>r({valueDecimal:l.currentTarget.valueAsNumber},t)});case"integer":return ce.default.createElement(we.TextInput,{type:"number",step:1,id:n,name:n,defaultValue:Ue(e.allResponses,o,t,e.groupSequence)??f?.valueInteger,onChange:l=>r({valueInteger:l.currentTarget.valueAsNumber},t)});case"date":return ce.default.createElement(we.TextInput,{type:"date",id:n,name:n,defaultValue:Ue(e.allResponses,o,t,e.groupSequence)??f?.valueDate,onChange:l=>r({valueDate:l.currentTarget.value},t)});case"dateTime":return ce.default.createElement(no,{name:n,defaultValue:Ue(e.allResponses,o,t,e.groupSequence)??f?.valueDateTime,onChange:l=>r({valueDateTime:l},t)});case"time":return ce.default.createElement(we.TextInput,{type:"time",id:n,name:n,defaultValue:Ue(e.allResponses,o,t,e.groupSequence)??f?.valueTime,onChange:l=>r({valueTime:l.currentTarget.value},t)});case"string":case"url":return ce.default.createElement(we.TextInput,{id:n,name:n,defaultValue:Ue(e.allResponses,o,t,e.groupSequence)??f?.valueString,onChange:l=>r({valueString:l.currentTarget.value},t)});case"text":return ce.default.createElement(we.Textarea,{id:n,name:n,defaultValue:Ue(e.allResponses,o,t,e.groupSequence)??f?.valueString,onChange:l=>r({valueString:l.currentTarget.value},t)});case"attachment":return ce.default.createElement(mr,{name:n,defaultValue:Ue(e.allResponses,o,t,e.groupSequence)??f?.valueAttachment,onChange:l=>r({valueAttachment:l},t)});case"reference":return ce.default.createElement(gt,{name:n,targetTypes:kd(o),defaultValue:Ue(e.allResponses,o,t,e.groupSequence)??f?.valueReference,onChange:l=>r({valueReference:l},t)});case"quantity":return ce.default.createElement(eo,{name:n,defaultValue:Ue(e.allResponses,o,t,e.groupSequence)??f?.valueQuantity,onChange:l=>r({valueQuantity:l},t),disableWheel:!0});case"choice":case"open-choice":return Td(o)?ce.default.createElement(Sd,{name:n,item:o,initial:f,allResponses:e.allResponses,index:t,groupSequence:e.groupSequence,onChangeAnswer:l=>r(l,t)}):ce.default.createElement(bd,{name:n,item:o,initial:f,allResponses:e.allResponses,onChangeAnswer:l=>r(l,t)});default:return null}}function Sd(e){let{name:o,item:t,initial:r}=e,a=(0,ve.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),n=[""];if(t.answerOption)for(let f of t.answerOption){let l=(0,ve.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:f},"value");n.push(wf(l))}if(t.repeats){let{propertyName:f,data:l}=Bd(e.item),s=Ue(e.allResponses,t,e.index,e.groupSequence,!0)?Ue(e.allResponses,t,e.index,e.groupSequence,!0):[wf(a)];return ce.default.createElement(we.MultiSelect,{data:l,placeholder:"Select items",searchable:!0,defaultValue:s,onChange:i=>{let u=i.map(d=>{let c=t.answerOption?.find(v=>v[f]===d),y=(0,ve.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:c},"value");return{[f]:y.value}});e.onChangeAnswer(u)}})}return ce.default.createElement(we.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,ve.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:s},"value"),u="value"+(0,ve.capitalize)(i.type);e.onChangeAnswer({[u]:i.value})},defaultValue:Ue(e.allResponses,t,e.index,e.groupSequence)??wf(a),data:n})}function bd(e){let{name:o,item:t,initial:r,onChangeAnswer:a,allResponses:n}=e;return t.answerValueSet?ce.default.createElement(Wo,{elementDefinition:{binding:{valueSet:t.answerValueSet}},onChange:a}):ce.default.createElement(Pd,{name:o,item:t,initial:r,allResponses:n,onChangeAnswer:a})}function Pd(e){let{name:o,item:t,initial:r,onChangeAnswer:a}=e,n=ve.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],f=(0,ve.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}`,v=(0,ve.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:c},"value");f&&(0,ve.stringify)(v)===(0,ve.stringify)(f)&&(s=y),l.push([y,v])}let i=Ue(e.allResponses,t,e.index,e.groupSequence),u=l.find(d=>d[1].value===i)?.[0];return ce.default.createElement(we.Radio.Group,{name:o,value:u??s,onChange:d=>{let c=l.find(y=>y[0]===d);if(c){let y=c[1],v="value"+(0,ve.capitalize)(y.type);a({[v]:y.value})}}},l.map(([d,c])=>ce.default.createElement(we.Radio,{key:d,id:d,value:d,label:ce.default.createElement(Ae,{property:n,propertyType:c.type,value:c.value})})))}function Dd(e,o,t){if(o<e.length)return e[o]=t,e;for(let r=e.length;r<o;r++)e.push({});return e.push(t),e}function kd(e){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 Td(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function Bd(e){if(e.answerOption?.length===0)return{propertyName:"",data:[]};let o=e.answerOption[0],t=(0,ve.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:o},"value"),r="value"+(0,ve.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 wf(e){if(e)return e.type==="CodeableConcept"?e.value.coding[0].display:e.type==="Coding"?e.value.display:e.value.toString()}function Ns(e,o){let t=[];for(let r of e)r.linkId===o&&t.push(r),r.item&&(t=t.concat(Ns(r.item,o)));return t}function Rs(e){let o=(0,ve.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:e},"value");return(0,ve.formatCoding)(o?.value)||o?.value}function Ue(e,o,t=0,r=0,a=!1){let f=Ns(e,o.linkId??"")[r]?.answer;return a?f?.map(l=>Rs(l)):Rs(f?.[t]??{})}var Ad=(0,Z.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:4,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}},linkIdInput:{width:100,marginBottom:4},typeSelect:{width:100}}));function Fd(e){let o=k(),t=te(e.questionnaire),[r,a]=(0,P.useState)(),[n,f]=(0,P.useState)(),[l,s]=(0,P.useState)(),[i,u]=(0,P.useState)();function d(){u(void 0)}function c(){s(void 0)}return(0,P.useEffect)(()=>{o.requestSchema("Questionnaire").then(a).catch(console.log)},[o]),(0,P.useEffect)(()=>(f(Ed(t??{resourceType:"Questionnaire"})),document.addEventListener("mouseover",d),document.addEventListener("click",c),()=>{document.removeEventListener("mouseover",d),document.removeEventListener("click",c)}),[t]),!r||!n?null:P.default.createElement("div",null,P.default.createElement(fe,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(n)},P.default.createElement(Hs,{item:n,selectedKey:l,setSelectedKey:s,hoverKey:i,setHoverKey:u,onChange:f}),P.default.createElement(Z.Button,{type:"submit"},"Save")))}function Hs(e){let{classes:o,cx:t}=Ad(),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,P.useRef)();u.current=e.item;function d(p){G(p),e.setSelectedKey(e.item.id)}function c(p){G(p),e.setHoverKey(e.item.id)}function y(p){let O=u.current;e.onChange({...O,item:O.item?.map(Pe=>Pe.id===p.id?p:Pe)})}function v(p){e.onChange({...e.item,item:[...e.item.item??[],p]})}function A(p){e.onChange({...e.item,item:e.item.item?.filter(O=>O!==p)})}function D(p,O){e.onChange({...u.current,[p]:O})}function B(p){e.onChange({...e.item,...p})}function I(p){e.onChange({...e.item,item:e.item.item?.map(O=>O===p?{...O,repeats:!O.repeats}:O)})}let W=t(o.section,{[o.editing]:s,[o.hovering]:i&&!s});return P.default.createElement("div",{"data-testid":a.linkId,className:W,onClick:d,onMouseOver:c},P.default.createElement("div",{className:o.questionBody},s?P.default.createElement(P.default.Fragment,null,n&&P.default.createElement(Z.TextInput,{size:"xl",defaultValue:r.title,onChange:p=>D("title",p.currentTarget.value)}),!n&&P.default.createElement(Z.Textarea,{autosize:!0,minRows:2,defaultValue:a.text,onChange:p=>D("text",p.currentTarget.value)}),a.type==="reference"&&P.default.createElement(Od,{item:a,onChange:p=>D("extension",p)}),Ff(a)&&P.default.createElement(Md,{item:a,onChange:p=>B(p)})):P.default.createElement(P.default.Fragment,null,r.title&&P.default.createElement(Z.Title,null,r.title),a.text&&P.default.createElement("div",null,a.text),!f&&P.default.createElement(Oa,{item:a,index:0,allResponses:[],onChange:()=>{}}))),a.item?.map(p=>P.default.createElement("div",{key:p.id},P.default.createElement(Hs,{item:p,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:y,onRemove:()=>A(p),onRepeatable:I}))),!f&&P.default.createElement("div",{className:o.topActions},s?P.default.createElement(P.default.Fragment,null,P.default.createElement(Z.TextInput,{size:"xs",className:o.linkIdInput,defaultValue:a.linkId,onChange:p=>D("linkId",p.currentTarget.value)}),!f&&P.default.createElement(Z.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:a.type,onChange:p=>D("type",p.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"}]})):P.default.createElement("div",null,l)),P.default.createElement("div",{className:o.bottomActions},f&&P.default.createElement(P.default.Fragment,null,P.default.createElement(Z.Anchor,{href:"#",onClick:p=>{p.preventDefault(),v({id:at(),linkId:Lf("q"),type:"string",text:"Question"})}},"Add item"),P.default.createElement(Z.Anchor,{href:"#",onClick:p=>{p.preventDefault(),v({id:at(),linkId:Lf("g"),type:"group",text:"Group"})}},"Add group")),n&&P.default.createElement(Z.Anchor,{href:"#",onClick:p=>{p.preventDefault(),v(Rd())}},"Add Page"),s&&!n&&P.default.createElement(P.default.Fragment,null,P.default.createElement(Z.Anchor,{href:"#",onClick:p=>{p.preventDefault(),e.onRepeatable&&e.onRepeatable(a)}},a.repeats?"Remove Repeatable":"Make Repeatable"),P.default.createElement(Z.Anchor,{href:"#",onClick:p=>{p.preventDefault(),e.onRemove&&e.onRemove()}},"Remove"))))}function Md(e){let o=Ea.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],t=e.item.answerOption??[];return P.default.createElement("div",null,e.item.answerValueSet!==void 0?P.default.createElement(Z.TextInput,{placeholder:"Enter Value Set",defaultValue:e.item.answerValueSet,onChange:r=>e.onChange({...e.item,answerValueSet:r.target.value})}):P.default.createElement(wd,{options:t,property:o,item:e.item,onChange:e.onChange}),P.default.createElement(Z.Box,{display:"flex"},P.default.createElement(Z.Anchor,{href:"#",onClick:r=>{G(r),e.onChange({...e.item,answerValueSet:void 0,answerOption:[...t,{id:at()}]})}},"Add choice"),P.default.createElement(Z.Space,{w:"lg"}),P.default.createElement(Z.Anchor,{href:"#",onClick:r=>{G(r),e.onChange({...e.item,answerOption:[],answerValueSet:""})}},"Add value set")))}function wd(e){return P.default.createElement("div",null,e.options.map(o=>{let[t,r]=Je({type:"QuestionnaireItemAnswerOption",value:o},"value");return P.default.createElement("div",{key:o.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},P.default.createElement("div",null,P.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})}})),P.default.createElement("div",null,P.default.createElement(Z.Anchor,{href:"#",onClick:a=>{G(a),e.onChange({...e.item,answerOption:e.options.filter(n=>n.id!==o.id)})}},"Remove")))}))}function Od(e){let o=e.item.extension??[],t=o.filter(r=>r.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource")??[];return P.default.createElement(P.default.Fragment,null,t.map(r=>P.default.createElement("div",{key:r.id},P.default.createElement("div",{style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},P.default.createElement("div",null,P.default.createElement(Z.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)}}))),P.default.createElement("div",null,P.default.createElement(Z.Anchor,{href:"#",onClick:a=>{G(a),e.onChange(o.filter(n=>n.id!==r.id))}},"Remove")))),P.default.createElement(Z.Anchor,{href:"#",onClick:r=>{G(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 Of=1,Ef=1;function Lf(e){return e+Of++}function at(){return"id-"+Ef++}function Ed(e){return{...e,id:e.id||at(),item:Vs(e.item)}}function Vs(e){if(e)return e.forEach(o=>{o.id?.match(/^id-\d+$/)&&(Ef=Math.max(Ef,parseInt(o.id.substring(3),10)+1)),o.linkId?.match(/^q\d+$/)&&(Of=Math.max(Of,parseInt(o.linkId.substring(1),10)+1))}),e.map(o=>({...o,id:o.id||at(),item:Vs(o.item),answerOption:Ld(o.answerOption)}))}function Ld(e){if(e)return e.map(o=>({...o,id:o.id||at()}))}function Rd(){return{id:at(),linkId:Lf("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"}]}}]}}var Se=require("@mantine/core"),St=require("@medplum/core"),w=m(require("react"));function Nf(e){let o=k(),t=o.getProfile(),[r,a]=(0,w.useState)(),n=te(e.questionnaire),[f,l]=(0,w.useState)(),[s,i]=(0,w.useState)(0),u=Ud(n?.item??[]),d=()=>i(v=>v>=u?v:v+1),c=()=>i(v=>v<=0?v:v-1);(0,w.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>o.requestSchema("QuestionnaireResponse")).then(a).catch(console.log)},[o]),(0,w.useEffect)(()=>{l(n?Hd(n):void 0)},[n]);function y(v){l({resourceType:"QuestionnaireResponse",item:v})}return!r||!n?null:w.default.createElement(fe,{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&&w.default.createElement(Se.Title,null,n.title),n.item&&w.default.createElement(Gs,{items:n.item??[],allResponses:f?.item??[],onChange:y,renderPages:u>1,activePage:s}),w.default.createElement(Se.Group,{position:"right",mt:"xl"},w.default.createElement(Nd,{activePage:s,numberOfPages:u,nextStep:d,prevStep:c,submitButtonText:e.submitButtonText})))}function Gs(e){let[o,t]=(0,w.useState)(Hf(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?w.default.createElement(Se.Stepper.Step,{label:n.text,key:n.linkId},w.default.createElement(qs,{key:`${n.linkId}-${f}`,item:n,index:f,allResponses:e.allResponses,currentResponseItems:o,groupSequence:e.groupSequence,setResponseItem:r})):w.default.createElement(qs,{key:`${n.linkId}-${f}`,item:n,index:f,groupSequence:e.groupSequence,allResponses:e.allResponses,currentResponseItems:o,setResponseItem:r}));return e.renderPages?w.default.createElement(Se.Stepper,{active:e.activePage??0,allowNextStepsSelect:!1,p:6},a):w.default.createElement(Se.Stack,null,a)}function qs(e){return Mf(e.item,e.allResponses)?e.item.type==="display"?w.default.createElement("p",{key:e.item.linkId},e.item.text):e.item.type==="group"?w.default.createElement(Rf,{key:e.item.linkId,item:e.item,allResponses:e.allResponses,currentResponseItems:e.currentResponseItems,groupSequence:e.groupSequence,onChange:o=>e.setResponseItem(o.id,o)}):w.default.createElement($e,{key:e.item.linkId,htmlFor:e.item.linkId,title:e.item.text??""},w.default.createElement(Rf,{item:e.item,allResponses:e.allResponses,currentResponseItems:e.currentResponseItems,groupSequence:e.groupSequence,onChange:o=>e.setResponseItem(o.id,o)})):null}function Rf(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:Wd(f,n),linkId:o.linkId,text:o.text,item:r})}return o.type==="group"?w.default.createElement(zd,{key:e.item.linkId,text:o.text??"",item:o??[],allResponses:e.allResponses,onChange:t}):w.default.createElement(Qd,{item:e.item,key:e.item.linkId},({index:r})=>w.default.createElement(Oa,{...e,index:r}))}function Nd(e){return e.activePage===0&&e.numberOfPages<=0?w.default.createElement(Se.Button,{type:"submit"},e.submitButtonText??"OK"):e.activePage>=e.numberOfPages?w.default.createElement(w.default.Fragment,null,w.default.createElement(Se.Button,{onClick:e.prevStep},"Back"),w.default.createElement(Se.Button,{onClick:e.nextStep,type:"submit"},e.submitButtonText??"OK")):e.activePage===0?w.default.createElement(w.default.Fragment,null,w.default.createElement(Se.Button,{onClick:e.nextStep},"Next")):w.default.createElement(w.default.Fragment,null,w.default.createElement(Se.Button,{onClick:e.prevStep},"Back"),w.default.createElement(Se.Button,{onClick:e.nextStep},"Next"))}function Hd(e){return{resourceType:"QuestionnaireResponse",questionnaire:(0,St.getReferenceString)(e),item:Hf(e.item)}}function Hf(e){return e?.map(Vd)??[]}function Vd(e){return{id:Us(),linkId:e.linkId,text:e.text,item:Hf(e.item),answer:e.initial?.map(Gd)??[]}}var qd=1;function Us(){return"id-"+qd++}function Gd(e){return{...e}}function Ud(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 zd(e){let[o,t]=(0,w.useState)(Xd(e.item,e.allResponses)),r=e.item;return w.default.createElement(w.default.Fragment,null,[...Array(o)].map((a,n)=>w.default.createElement("div",{key:n},w.default.createElement("h3",null,e.text),w.default.createElement(Gs,{items:r.item??[],allResponses:e.allResponses,groupSequence:n,onChange:f=>e.onChange(f,n)}))),e.item.repeats&&w.default.createElement(Se.Anchor,{onClick:()=>t(a=>a+1)},"Add Group"))}function Qd(e){let[o,t]=(0,w.useState)(1),r=e.item?.repeats&&e.item.type!=="choice"&&e.item.type!=="open-choice";return w.default.createElement(w.default.Fragment,null,[...Array(o)].map((a,n)=>w.default.createElement(w.default.Fragment,{key:`${e.item.linkId}-${n}`},e.children({index:n}))),r&&w.default.createElement(Se.Anchor,{onClick:()=>t(a=>a+1)},"Add Item"))}function Wd(e,o){return e.length===0||e.length<o+1?Us():e[o].id}function Xd(e,o){let t=o.filter(r=>r.linkId===e.linkId).length;return t>0?t:1}var Y=require("@mantine/core"),Rr=require("@medplum/core");var V=m(require("react"));var Jd=(0,Y.createStyles)(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[3]}`,borderRadius:e.radius.sm,transition:"all 0.1s"}})),$d=["gender","age","gestationalAge","context","appliesTo","category"],Kd={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function jd(e){e=Object.assign(Kd,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 v=Zd(o,l);r(Yd(v.qualifiedInterval||[],n))},[o]),V.default.createElement(fe,{testid:"reference-range-editor",onSubmit:s},V.default.createElement(Y.Stack,null,t.map(v=>V.default.createElement(zs,{unit:oc(o.quantitativeDetails?.unit),onChange:d,onAdd:c,onRemove:y,onRemoveGroup:u,key:`group-${v.id}`,intervalGroup:v}))),V.default.createElement(Y.ActionIcon,{title:"Add Group",size:"sm",onClick:v=>{G(v),i({id:`group-id-${a}`,filters:{},intervals:[]}),n(A=>A+1)}},V.default.createElement(Dt,null)),V.default.createElement(Y.Group,{position:"right"},V.default.createElement(Y.Button,{type:"submit"},"Save")));function s(){let v=t.flatMap(A=>A.intervals).filter(A=>!tc(A));e.onSubmit({...o,qualifiedInterval:v})}function i(v){r(A=>[...A,v])}function u(v){r(A=>A.filter(D=>D.id!==v.id))}function d(v,A){r(D=>{D=[...D];let B=D.find(W=>W.id===v),I=B?.intervals.findIndex(W=>W.id===A.id);return I!==void 0&&B?.intervals[I]&&(B.intervals[I]=A),D})}function c(v,A){A.id===void 0&&(A.id=`id-${f}`,l(D=>D+1)),r(D=>{D=[...D];let B=D.findIndex(I=>I.id===v);if(B!==-1){let I={...D[B]};A={...A,...I.filters},I.intervals=[...I.intervals,A],D[B]=I}return D})}function y(v,A){r(D=>{D=[...D];let B=D.find(I=>I.id===v);return B&&(B.intervals=B.intervals.filter(I=>I.id!==A.id)),D})}}function zs(e){let{intervalGroup:o,unit:t}=e,{classes:r}=Jd();return V.default.createElement(Ro,{"data-testid":o.id,className:r.section},V.default.createElement(Y.Stack,{spacing:"lg"},V.default.createElement(Y.Group,{position:"right"},V.default.createElement(Y.ActionIcon,{title:"Remove Group","data-testid":`remove-group-button-${o.id}`,key:`remove-group-button-${o.id}`,size:"sm",onClick:a=>{G(a),e.onRemoveGroup(o)}},V.default.createElement(Qo,null))),V.default.createElement(_d,{intervalGroup:o,onChange:e.onChange}),V.default.createElement(Y.Divider,null),o.intervals.map(a=>V.default.createElement(Y.Stack,{key:`interval-${a.id}`,spacing:"xs"},V.default.createElement(Y.Group,null,V.default.createElement(Y.TextInput,{key:`condition-${a.id}`,"data-testid":`condition-${a.id}`,defaultValue:a.condition,label:"Condition: ",size:"sm",onChange:n=>{G(n),e.onChange(o.id,{...a,condition:n.currentTarget.value.trim()})}}),V.default.createElement(Y.ActionIcon,{title:"Remove Interval",size:"sm",key:`remove-interval-${a.id}`,"data-testid":`remove-interval-${a.id}`,onClick:n=>{G(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(Y.ActionIcon,{title:"Add Interval",size:"sm",onClick:a=>{G(a),e.onAdd(o.id,{range:{low:{unit:t},high:{unit:t}}})}},V.default.createElement(Dt,null))))}function _d(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(Y.Stack,{style:{maxWidth:"50%"}},V.default.createElement(Y.Group,null,V.default.createElement(Y.NativeSelect,{data:["","male","female"],label:"Gender:",defaultValue:o.filters.gender||"",onChange:r=>{for(let a of o.intervals){let n=r.currentTarget.value;n===""&&(n=void 0),t(o.id,{...a,gender:n})}}})),V.default.createElement(Y.Group,{spacing:"xs"},V.default.createElement(Y.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(Y.NativeSelect,{data:["","pre-puberty","follicular","midcycle","luteal","postmenopausal"],label:"Endocrine:",defaultValue:o.filters.context?.text||"",onChange:r=>{for(let a of o.intervals){let n=r.currentTarget.value;n===""?(n=void 0,t(o.id,{...a,context:void 0})):t(o.id,{...a,context:{text:n,coding:[{code:n,system:"http://terminology.hl7.org/CodeSystem/referencerange-meaning"}]}})}}}),V.default.createElement(Y.NativeSelect,{data:["","reference","critical","absolute"],label:"Category: ",defaultValue:o.filters.category,onChange:r=>{for(let a of o.intervals){let n=r.currentTarget.value;n===""?t(o.id,{...a,category:void 0}):t(o.id,{...a,category:n})}}}))}function Zd(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 Yd(e,o){let t=1,r={};for(let a of e){let n=ec(a);n in r||(r[n]={id:`group-id-${t++}`,filters:Object.fromEntries($d.map(f=>[f,a[f]])),intervals:[]}),r[n].intervals.push(a)}return o(t),Object.values(r)}function ec(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 oc(e){return e&&((0,Rr.getCodeBySystem)(e,"http://unitsofmeasure.org")||e.text)}function tc(e){return e.range?.low?.value===void 0&&e.range?.high?.value===void 0}var vo=require("@mantine/core"),La=require("@medplum/core");var me=m(require("react"));function rc(e){let o=k(),t=te(e.value),[r,a]=(0,me.useState)(!1),[n,f]=(0,me.useState)();if((0,me.useEffect)(()=>{t&&!r&&(o.executeBatch(l(t)).then(f).catch(console.log),a(!0))},[o,t,r]),!t||!n)return null;return me.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 me.default.createElement(me.default.Fragment,{key:`action-${u}`},me.default.createElement(vo.Grid.Col,{span:1,p:"md"},d?.status==="completed"?me.default.createElement(Za,null):me.default.createElement(gn,{color:"gray"})),me.default.createElement(vo.Grid.Col,{span:9,p:"xs"},me.default.createElement(vo.Text,{weight:500},i.title),i.description&&me.default.createElement("div",null,i.description),me.default.createElement("div",null,"Last edited by\xA0",me.default.createElement(po,{value:d?.meta?.author}),"\xA0on\xA0",(0,La.formatDateTime)(d?.meta?.lastUpdated)),me.default.createElement("div",null,"Status: ",me.default.createElement(Br,{status:d?.status||"unknown"}))),me.default.createElement(vo.Grid.Col,{span:2,p:"md"},c&&!y&&me.default.createElement(vo.Button,{onClick:()=>e.onStart(d,c)},"Start"),c&&y&&me.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 Xs=require("@mantine/core"),be=m(require("react"));var Qs=require("@medplum/core");function Ra(e,o){let t=ac(e,o);return nc(t,e,o)}function ac(e,o){let t=e.length,r=o.length,a=t+r+1,n=1+2*a,f=n/2|0,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],v=l[c],A,D=0;i===-s||i!==s&&v.i<y.i?(D=y.i,A=y):(D=v.i+1,A=v),l[c]=void 0;let B=D-i,I={i:D,j:B,prev:fc(A),snake:!1};for(;D<t&&B<r&&e[D]===o[B];)D++,B++;if(D>I.i&&(I={i:D,j:B,prev:I,snake:!0}),l[u]=I,D>=t&&B>=r)return l[u]}l[f+s-1]=void 0}}function nc(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 fc(e){return e&&!e.snake&&e.prev?e.prev:e}function Ws(e){let o=e.entry.filter(r=>!!r.resource).map(r=>({meta:r.resource?.meta,lines:(0,Qs.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 lc(t,o),sc(t),t}function lc(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 sc(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 ic=(0,Xs.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 uc(e){let{classes:o}=ic(),t=k(),[r,a]=(0,be.useState)(e.history);if((0,be.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 be.default.createElement("div",null,"Loading...");let n=r.entry?.[0]?.resource;if(!n)return null;let f=Ws(r);return be.default.createElement("div",{className:o.container},be.default.createElement("table",{className:o.root},be.default.createElement("tbody",null,f.map((l,s)=>be.default.createElement("tr",{key:"row-"+s,className:l.span>0?o.startRow:o.normalRow},l.span>0&&be.default.createElement(be.default.Fragment,null,be.default.createElement("td",{className:o.author,rowSpan:l.span},be.default.createElement(No,{value:l.meta.author,link:!0})),be.default.createElement("td",{className:o.dateTime,rowSpan:l.span},be.default.createElement(De,{to:dc(n,l.meta.versionId)},Js(l.meta.lastUpdated)))),be.default.createElement("td",{className:o.lineNumber},s+1),be.default.createElement("td",{className:o.line},be.default.createElement("pre",{className:o.pre},l.value)))))))}function dc(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"),Vf=require("@medplum/core"),Uo=m(require("react"));var cc=(0,$s.createStyles)(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function mc(e){let o=e.original,t=e.revised;e.ignoreMeta&&(o={...o,meta:void 0},t={...t,meta:void 0});let r=(0,Vf.stringify)(o,!0).match(/[^\r\n]+/g),a=(0,Vf.stringify)(t,!0).match(/[^\r\n]+/g),n=Ra(r,a);return Uo.default.createElement("pre",{style:{color:"gray"}},n.map((f,l)=>Uo.default.createElement(pc,{key:"delta"+l,delta:f})))}function pc(e){let{classes:o}=cc();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
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 Ws=require("@mantine/core"),Ra=require("@medplum/core"),me=m(require("react"));function sc(e){let o=D(),[t,r]=(0,me.useState)(e.history);return(0,me.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?me.default.createElement(Ws.Table,{withBorder:!0,withColumnBorders:!0},me.default.createElement("thead",null,me.default.createElement("tr",null,me.default.createElement("th",null,"Author"),me.default.createElement("th",null,"Date"),me.default.createElement("th",null,"Version"))),me.default.createElement("tbody",null,t.entry?.map((a,n)=>me.default.createElement(ic,{key:"entry-"+n,entry:a})))):me.default.createElement("div",null,"Loading...")}function ic(e){let{response:o,resource:t}=e.entry;return t?me.default.createElement("tr",null,me.default.createElement("td",null,me.default.createElement(Ro,{value:t.meta?.author,link:!0})),me.default.createElement("td",null,(0,Ra.formatDateTime)(t.meta?.lastUpdated)),me.default.createElement("td",null,me.default.createElement(be,{to:uc(t)},t.meta?.versionId))):me.default.createElement("tr",null,me.default.createElement("td",{colSpan:3},(0,Ra.normalizeErrorString)(o?.outcome)))}function uc(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}var at=require("@mantine/core"),Js=require("@medplum/core"),$=m(require("react"));var dc=(0,at.createStyles)(e=>({container:{display:"flex",minHeight:400},info:{minWidth:300,padding:20,borderRight:`1px solid ${e.colors.gray[3]}`},selection:{minWidth:300,padding:20}}));function cc(e){let{classes:o}=dc(),t=D(),r=oe(e.schedule),a=oe(e.questionnaire),[n,f]=(0,$.useState)(),l=(0,$.useRef)();l.current=n;let[s,i]=(0,$.useState)(ca()),[u,d]=(0,$.useState)(),[c,b]=(0,$.useState)(),[k,F]=(0,$.useState)();if((0,$.useEffect)(()=>{r?(f([]),t.searchResources("Slot",new URLSearchParams([["_count",(30*24).toString()],["schedule",(0,Js.getReferenceString)(r)],["start","gt"+mc(s)],["start","lt"+pc(s)]])).then(f).catch(console.log)):f(void 0)},[t,r,s]),!r||!n||!a)return null;let h=r.actor?.[0];return $.default.createElement("div",{className:o.container,"data-testid":"scheduler"},$.default.createElement("div",{className:o.info},h&&$.default.createElement(Le,{value:h,size:"xl"}),h&&$.default.createElement(at.Text,{size:"xl",weight:500},$.default.createElement(mo,{value:h})),$.default.createElement("p",null,"1 hour"),u&&$.default.createElement("p",null,u.toLocaleDateString()),c&&$.default.createElement("p",null,Xs(new Date(c.start)))),$.default.createElement("div",{className:o.selection},!u&&$.default.createElement("div",null,$.default.createElement("h3",null,"Select date"),$.default.createElement(tf,{slots:n,onChangeMonth:i,onClick:d})),u&&!c&&$.default.createElement("div",null,$.default.createElement("h3",null,"Select time"),$.default.createElement(at.Stack,null,n.map(B=>{let x=new Date(B.start);return x.getTime()>u.getTime()&&x.getTime()<u.getTime()+24*3600*1e3&&$.default.createElement("div",{key:B.id},$.default.createElement(at.Button,{variant:"outline",style:{width:150},onClick:()=>b(B)},Xs(x)))}))),u&&c&&!k&&$.default.createElement(Rf,{questionnaire:a,submitButtonText:"Next",onSubmit:F}),u&&c&&k&&$.default.createElement("div",null,$.default.createElement("h3",null,"You're all set!"),$.default.createElement("p",null,"Check your email for a calendar invite."))))}function mc(e){return $s(e.getTime())}function pc(e){return $s(e.getTime()+31*24*60*60*1e3)}function $s(e){return new Date(Math.max(Date.now(),e)).toISOString()}function Xs(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}var Rr=require("@medplum/core"),Ks=m(require("react"));function xc(e){return Ks.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,Rr.createReference)(o)],subject:o.subject,sender:(0,Rr.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",basedOn:[(0,Rr.createReference)(o)],subject:o.subject,operator:(0,Rr.createReference)(t),issued:new Date().toISOString(),content:r})})}var Zs=require("@medplum/core"),So=m(require("react"));var we=require("@mantine/core"),js=require("@medplum/core"),$e=m(require("react"));function Na(e){let o=D(),[t,r]=(0,$e.useState)();return $e.default.createElement(ne,{style:{maxWidth:400},onSubmit:async a=>{try{e.handleAuthResponse(await o.startNewProject({login:e.login,projectName:a.projectName}))}catch(n){r((0,js.normalizeOperationOutcome)(n))}}},$e.default.createElement(we.Center,{sx:{flexDirection:"column"}},$e.default.createElement(qo,{size:32}),$e.default.createElement(we.Title,null,"Create project")),$e.default.createElement(we.Stack,{spacing:"xl"},$e.default.createElement(we.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:Be(t,"firstName")}),$e.default.createElement(we.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",$e.default.createElement(we.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",$e.default.createElement(we.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),".")),$e.default.createElement(we.Group,{position:"right",mt:"xl",noWrap:!0},$e.default.createElement(we.Button,{type:"submit"},"Create project")))}var re=require("@mantine/core"),Gf=require("@medplum/core"),te=m(require("react"));var vo=m(require("react"));function Nr(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=D(),{googleClientId:t,handleGoogleCredential:r}=e,a=(0,vo.useRef)(null),[n,f]=(0,vo.useState)(typeof google<"u"),[l,s]=(0,vo.useState)(!1),[i,u]=(0,vo.useState)(!1);return(0,vo.useEffect)(()=>{if(typeof google>"u"){Nr("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?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 Vf(e){typeof grecaptcha>"u"&&Nr("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 _s(e){let o=Va(e.googleClientId),t=e.recaptchaSiteKey,r=D(),[a,n]=(0,te.useState)(),f=yr(a,void 0);return(0,te.useEffect)(()=>{t&&Vf(t)},[t]),te.default.createElement(ne,{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,Gf.normalizeOperationOutcome)(s))}}},te.default.createElement(re.Center,{sx:{flexDirection:"column"}},e.children),te.default.createElement(Ct,{issues:f}),o&&te.default.createElement(te.default.Fragment,null,te.default.createElement(re.Group,{position:"center",p:"xl",style:{height:70}},te.default.createElement(Ha,{googleClientId:o,handleGoogleCredential:async l=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:l.clientId,googleCredential:l.credential,createUser:!0}))}catch(s){n((0,Gf.normalizeOperationOutcome)(s))}}})),te.default.createElement(re.Divider,{label:"or",labelPosition:"center",my:"lg"})),te.default.createElement(re.Stack,{spacing:"xl"},te.default.createElement(re.TextInput,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:Be(a,"firstName")}),te.default.createElement(re.TextInput,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:Be(a,"lastName")}),te.default.createElement(re.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:Be(a,"email")}),te.default.createElement(re.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,error:Be(a,"password")}),te.default.createElement(re.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",te.default.createElement(re.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",te.default.createElement(re.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),"."),te.default.createElement(re.Text,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",te.default.createElement(re.Anchor,{href:"https://policies.google.com/privacy"},"Privacy\xA0Policy")," and ",te.default.createElement(re.Anchor,{href:"https://policies.google.com/terms"},"Terms\xA0of\xA0Service")," apply.")),te.default.createElement(re.Group,{position:"apart",mt:"xl",noWrap:!0},te.default.createElement(re.Checkbox,{name:"remember",label:"Remember me",size:"xs"}),te.default.createElement(re.Button,{type:"submit"},"Create account")))}function Ic(e){let{type:o,projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,onSuccess:f}=e,l=D(),[s,i]=(0,So.useState)(void 0),[u,d]=(0,So.useState)();(0,So.useEffect)(()=>{o==="patient"&&s&&l.startNewPatient({login:s,projectId:t}).then(b=>l.processCode(b.code)).then(()=>f()).catch(b=>d((0,Zs.normalizeOperationOutcome)(b)))},[l,o,t,s,f]);function c(b){b.code?l.processCode(b.code).then(()=>f()).catch(console.log):b.login&&i(b.login)}return So.default.createElement(Br,{width:450},u&&So.default.createElement("pre",null,JSON.stringify(u,null,2)),!s&&So.default.createElement(_s,{projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,handleAuthResponse:c},e.children),s&&o==="project"&&So.default.createElement(Na,{login:s,handleAuthResponse:c}))}var Uf=require("@mantine/notifications"),zf=require("@medplum/core"),De=m(require("react"));var ie=require("@mantine/core"),Ys=require("@medplum/core"),K=m(require("react"));function ei(e){let[o,t]=(0,K.useState)();return o?K.default.createElement(hc,{email:o,...e}):K.default.createElement(gc,{setEmail:t,...e})}function gc(e){let{setEmail:o,onRegister:t,handleAuthResponse:r,children:a,disableEmailAuth:n,...f}=e,l=D(),s=!e.disableGoogleAuth&&Va(e.googleClientId),i=(0,K.useCallback)(async c=>{if(!c.authorizeUrl)return!1;let b=JSON.stringify({...await l.ensureCodeChallenge(f),domain:c.domain}),k=new URL(c.authorizeUrl);return k.searchParams.set("state",b),window.location.assign(k.toString()),!0},[l,f]),u=(0,K.useCallback)(async c=>{let b=await l.post("auth/method",{email:c.email});await i(b)||o(c.email)},[l,i,o]),d=(0,K.useCallback)(async c=>{let b=await l.startGoogleLogin({...f,googleCredential:c.credential});await i(b)||r(b)},[l,f,i,r]);return K.default.createElement(ne,{style:{maxWidth:400},onSubmit:u},K.default.createElement(ie.Center,{sx:{flexDirection:"column"}},a),s&&K.default.createElement(K.default.Fragment,null,K.default.createElement(ie.Group,{position:"center",p:"xl",style:{height:70}},K.default.createElement(Ha,{googleClientId:s,handleGoogleCredential:d})),!n&&K.default.createElement(ie.Divider,{label:"or",labelPosition:"center",my:"lg"})),!n&&K.default.createElement(ie.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),K.default.createElement(ie.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},K.default.createElement("div",null,t&&K.default.createElement(ie.Anchor,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs"},"Register")),!n&&K.default.createElement(ie.Button,{type:"submit"},"Next")))}function hc(e){let{onForgotPassword:o,handleAuthResponse:t,children:r,...a}=e,n=D(),[f,l]=(0,K.useState)(),s=yr(f,void 0),i=(0,K.useCallback)(u=>{n.startLogin({...a,password:u.password,remember:u.remember==="on"}).then(t).catch(d=>l((0,Ys.normalizeOperationOutcome)(d)))},[n,a,t]);return K.default.createElement(ne,{style:{maxWidth:400},onSubmit:i},K.default.createElement(ie.Center,{sx:{flexDirection:"column"}},r),K.default.createElement(Ct,{issues:s}),K.default.createElement(ie.Stack,{spacing:"xl"},K.default.createElement(ie.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:Be(f,"password")})),K.default.createElement(ie.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},o&&K.default.createElement(ie.Anchor,{component:"button",type:"button",color:"dimmed",onClick:o,size:"xs"},"Forgot password"),K.default.createElement(ie.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),K.default.createElement(ie.Button,{type:"submit"},"Sign in")))}var Ue=require("@mantine/core"),oi=require("@medplum/core"),Ke=m(require("react"));function ti(e){let o=D(),[t,r]=(0,Ke.useState)();return Ke.default.createElement(Ue.Stack,null,Ke.default.createElement(Ue.Center,{sx:{flexDirection:"column"}},Ke.default.createElement(qo,{size:32}),Ke.default.createElement(Ue.Title,{order:3},"Choose profile")),Ke.default.createElement(Ct,{outcome:t}),e.memberships.map(a=>Ke.default.createElement(Ue.UnstyledButton,{key:a.id,onClick:()=>{o.post("auth/profile",{login:e.login,profile:a.id}).then(e.handleAuthResponse).catch(n=>r((0,oi.normalizeOperationOutcome)(n)))}},Ke.default.createElement(Ue.Group,null,Ke.default.createElement(Ue.Avatar,{radius:"xl"}),Ke.default.createElement("div",{style:{flex:1}},Ke.default.createElement(Ue.Text,{size:"sm",weight:500},a.profile?.display),Ke.default.createElement(Ue.Text,{color:"dimmed",size:"xs"},a.project?.display))))))}var oo=require("@mantine/core"),bo=m(require("react"));function ri(e){let o=D();return bo.default.createElement(ne,{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 ze=require("@mantine/core"),ai=require("@medplum/core");var je=m(require("react"));function ni(e){let o=D(),[t,r]=(0,je.useState)(void 0);return je.default.createElement(ne,{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,ai.normalizeErrorString)(n)))}},je.default.createElement(ze.Stack,null,je.default.createElement(ze.Center,{sx:{flexDirection:"column"}},je.default.createElement(qo,{size:32}),je.default.createElement(ze.Title,null,"Enter MFA code")),t&&je.default.createElement(ze.Alert,{icon:je.default.createElement(ft,{size:16}),title:"Error",color:"red"},t),je.default.createElement(ze.Stack,null,je.default.createElement(ze.TextInput,{name:"token",label:"MFA code",required:!0})),je.default.createElement(ze.Group,{position:"right",mt:"xl"},je.default.createElement(ze.Button,{type:"submit"},"Submit code"))))}function yc(e){let{login:o,chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:n,onCode:f,...l}=e,s=D(),[i,u]=(0,De.useState)(void 0),[d,c]=(0,De.useState)(!1),[b,k]=(0,De.useState)(void 0),F=(0,De.useCallback)(x=>{f?f(x):s.processCode(x).then(()=>{r&&r()}).catch(C=>(0,Uf.showNotification)({color:"red",message:(0,zf.normalizeErrorString)(C)}))},[s,f,r]),h=(0,De.useCallback)(x=>{c(!!x.mfaRequired),x.login&&u(x.login),x.memberships&&k(x.memberships),x.code&&(t?k(void 0):F(x.code))},[t,F]),B=(0,De.useCallback)(x=>{F(x.code)},[F]);return(0,De.useEffect)(()=>{o&&!i&&s.get("auth/login/"+o).then(h).catch(x=>(0,Uf.showNotification)({color:"red",message:(0,zf.normalizeErrorString)(x)}))},[s,o,i,h]),De.default.createElement(Br,{width:450},(()=>i?d?De.default.createElement(ni,{login:i,handleAuthResponse:h}):b?De.default.createElement(ti,{login:i,memberships:b,handleAuthResponse:h}):e.projectId==="new"?De.default.createElement(Na,{login:i,handleAuthResponse:h}):e.chooseScopes?De.default.createElement(ri,{login:i,scope:e.scope,handleAuthResponse:B}):De.default.createElement("div",null,"Success"):De.default.createElement(ei,{onForgotPassword:a,onRegister:n,handleAuthResponse:h,disableGoogleAuth:e.disableGoogleAuth,disableEmailAuth:e.disableEmailAuth,...l},e.children))())}
|
|
67
|
+
`)),"...",Uo.default.createElement("br",null))}var Ks=require("@mantine/core"),Na=require("@medplum/core"),pe=m(require("react"));function xc(e){let o=k(),[t,r]=(0,pe.useState)(e.history);return(0,pe.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?pe.default.createElement(Ks.Table,{withBorder:!0,withColumnBorders:!0},pe.default.createElement("thead",null,pe.default.createElement("tr",null,pe.default.createElement("th",null,"Author"),pe.default.createElement("th",null,"Date"),pe.default.createElement("th",null,"Version"))),pe.default.createElement("tbody",null,t.entry?.map((a,n)=>pe.default.createElement(Ic,{key:"entry-"+n,entry:a})))):pe.default.createElement("div",null,"Loading...")}function Ic(e){let{response:o,resource:t}=e.entry;return t?pe.default.createElement("tr",null,pe.default.createElement("td",null,pe.default.createElement(No,{value:t.meta?.author,link:!0})),pe.default.createElement("td",null,(0,Na.formatDateTime)(t.meta?.lastUpdated)),pe.default.createElement("td",null,pe.default.createElement(De,{to:gc(t)},t.meta?.versionId))):pe.default.createElement("tr",null,pe.default.createElement("td",{colSpan:3},(0,Na.normalizeErrorString)(o?.outcome)))}function gc(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}var nt=require("@mantine/core"),_s=require("@medplum/core"),$=m(require("react"));var hc=(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 yc(e){let{classes:o}=hc(),t=k(),r=te(e.schedule),a=te(e.questionnaire),[n,f]=(0,$.useState)(),l=(0,$.useRef)();l.current=n;let[s,i]=(0,$.useState)(ma()),[u,d]=(0,$.useState)(),[c,y]=(0,$.useState)(),[v,A]=(0,$.useState)();if((0,$.useEffect)(()=>{r?(f([]),t.searchResources("Slot",new URLSearchParams([["_count",(30*24).toString()],["schedule",(0,_s.getReferenceString)(r)],["start","gt"+Cc(s)],["start","lt"+vc(s)]])).then(f).catch(console.log)):f(void 0)},[t,r,s]),!r||!n||!a)return null;let D=r.actor?.[0];return $.default.createElement("div",{className:o.container,"data-testid":"scheduler"},$.default.createElement("div",{className:o.info},D&&$.default.createElement(Re,{value:D,size:"xl"}),D&&$.default.createElement(nt.Text,{size:"xl",weight:500},$.default.createElement(po,{value:D})),$.default.createElement("p",null,"1 hour"),u&&$.default.createElement("p",null,u.toLocaleDateString()),c&&$.default.createElement("p",null,js(new Date(c.start)))),$.default.createElement("div",{className:o.selection},!u&&$.default.createElement("div",null,$.default.createElement("h3",null,"Select date"),$.default.createElement(rf,{slots:n,onChangeMonth:i,onClick:d})),u&&!c&&$.default.createElement("div",null,$.default.createElement("h3",null,"Select time"),$.default.createElement(nt.Stack,null,n.map(B=>{let I=new Date(B.start);return I.getTime()>u.getTime()&&I.getTime()<u.getTime()+24*3600*1e3&&$.default.createElement("div",{key:B.id},$.default.createElement(nt.Button,{variant:"outline",style:{width:150},onClick:()=>y(B)},js(I)))}))),u&&c&&!v&&$.default.createElement(Nf,{questionnaire:a,submitButtonText:"Next",onSubmit:A}),u&&c&&v&&$.default.createElement("div",null,$.default.createElement("h3",null,"You're all set!"),$.default.createElement("p",null,"Check your email for a calendar invite."))))}function Cc(e){return Zs(e.getTime())}function vc(e){return Zs(e.getTime()+31*24*60*60*1e3)}function Zs(e){return new Date(Math.max(Date.now(),e)).toISOString()}function js(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}var Nr=require("@medplum/core"),Ys=m(require("react"));function Sc(e){return Ys.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 ti=require("@medplum/core"),bo=m(require("react"));var Oe=require("@mantine/core"),ei=require("@medplum/core"),Ke=m(require("react"));function Ha(e){let o=k(),[t,r]=(0,Ke.useState)();return Ke.default.createElement(fe,{style:{maxWidth:400},onSubmit:async a=>{try{e.handleAuthResponse(await o.startNewProject({login:e.login,projectName:a.projectName}))}catch(n){r((0,ei.normalizeOperationOutcome)(n))}}},Ke.default.createElement(Oe.Center,{sx:{flexDirection:"column"}},Ke.default.createElement(Go,{size:32}),Ke.default.createElement(Oe.Title,null,"Create project")),Ke.default.createElement(Oe.Stack,{spacing:"xl"},Ke.default.createElement(Oe.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:Fe(t,"firstName")}),Ke.default.createElement(Oe.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",Ke.default.createElement(Oe.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",Ke.default.createElement(Oe.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),".")),Ke.default.createElement(Oe.Group,{position:"right",mt:"xl",noWrap:!0},Ke.default.createElement(Oe.Button,{type:"submit"},"Create project")))}var ae=require("@mantine/core"),Uf=require("@medplum/core"),re=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=k(),{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 qf(e){typeof grecaptcha>"u"&&Hr("https://www.google.com/recaptcha/api.js?render="+e)}function Gf(e){return new Promise((o,t)=>{grecaptcha.ready(async()=>{try{o(await grecaptcha.execute(e,{action:"submit"}))}catch(r){t(r)}})})}function oi(e){let o=qa(e.googleClientId),t=e.recaptchaSiteKey,r=k(),[a,n]=(0,re.useState)(),f=Cr(a,void 0);return(0,re.useEffect)(()=>{t&&qf(t)},[t]),re.default.createElement(fe,{style:{maxWidth:400},onSubmit:async l=>{try{let s="";t&&(s=await Gf(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,Uf.normalizeOperationOutcome)(s))}}},re.default.createElement(ae.Center,{sx:{flexDirection:"column"}},e.children),re.default.createElement(vt,{issues:f}),o&&re.default.createElement(re.default.Fragment,null,re.default.createElement(ae.Group,{position:"center",p:"xl",style:{height:70}},re.default.createElement(Va,{googleClientId:o,handleGoogleCredential:async l=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:l.clientId,googleCredential:l.credential,createUser:!0}))}catch(s){n((0,Uf.normalizeOperationOutcome)(s))}}})),re.default.createElement(ae.Divider,{label:"or",labelPosition:"center",my:"lg"})),re.default.createElement(ae.Stack,{spacing:"xl"},re.default.createElement(ae.TextInput,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:Fe(a,"firstName")}),re.default.createElement(ae.TextInput,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:Fe(a,"lastName")}),re.default.createElement(ae.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:Fe(a,"email")}),re.default.createElement(ae.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,error:Fe(a,"password")}),re.default.createElement(ae.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",re.default.createElement(ae.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",re.default.createElement(ae.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),"."),re.default.createElement(ae.Text,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",re.default.createElement(ae.Anchor,{href:"https://policies.google.com/privacy"},"Privacy\xA0Policy")," and ",re.default.createElement(ae.Anchor,{href:"https://policies.google.com/terms"},"Terms\xA0of\xA0Service")," apply.")),re.default.createElement(ae.Group,{position:"apart",mt:"xl",noWrap:!0},re.default.createElement(ae.Checkbox,{name:"remember",label:"Remember me",size:"xs"}),re.default.createElement(ae.Button,{type:"submit"},"Create account")))}function bc(e){let{type:o,projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,onSuccess:f}=e,l=k(),[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,ti.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(oi,{projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,handleAuthResponse:c},e.children),s&&o==="project"&&bo.default.createElement(Ha,{login:s,handleAuthResponse:c}))}var zf=require("@mantine/notifications"),Qf=require("@medplum/core"),Te=m(require("react"));var ie=require("@mantine/core"),ri=require("@medplum/core"),K=m(require("react"));function ai(e){let[o,t]=(0,K.useState)();return o?K.default.createElement(Dc,{email:o,...e}):K.default.createElement(Pc,{setEmail:t,...e})}function Pc(e){let{setEmail:o,onRegister:t,handleAuthResponse:r,children:a,disableEmailAuth:n,...f}=e,l=k(),s=!e.disableGoogleAuth&&qa(e.googleClientId),i=(0,K.useCallback)(async c=>{if(!c.authorizeUrl)return!1;let y=JSON.stringify({...await l.ensureCodeChallenge(f),domain:c.domain}),v=new URL(c.authorizeUrl);return v.searchParams.set("state",y),window.location.assign(v.toString()),!0},[l,f]),u=(0,K.useCallback)(async c=>{let y=await l.post("auth/method",{email:c.email});await i(y)||o(c.email)},[l,i,o]),d=(0,K.useCallback)(async c=>{let y=await l.startGoogleLogin({...f,googleCredential:c.credential});await i(y)||r(y)},[l,f,i,r]);return K.default.createElement(fe,{style:{maxWidth:400},onSubmit:u},K.default.createElement(ie.Center,{sx:{flexDirection:"column"}},a),s&&K.default.createElement(K.default.Fragment,null,K.default.createElement(ie.Group,{position:"center",p:"xl",style:{height:70}},K.default.createElement(Va,{googleClientId:s,handleGoogleCredential:d})),!n&&K.default.createElement(ie.Divider,{label:"or",labelPosition:"center",my:"lg"})),!n&&K.default.createElement(ie.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),K.default.createElement(ie.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},K.default.createElement("div",null,t&&K.default.createElement(ie.Anchor,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs"},"Register")),!n&&K.default.createElement(ie.Button,{type:"submit"},"Next")))}function Dc(e){let{onForgotPassword:o,handleAuthResponse:t,children:r,...a}=e,n=k(),[f,l]=(0,K.useState)(),s=Cr(f,void 0),i=(0,K.useCallback)(u=>{n.startLogin({...a,password:u.password,remember:u.remember==="on"}).then(t).catch(d=>l((0,ri.normalizeOperationOutcome)(d)))},[n,a,t]);return K.default.createElement(fe,{style:{maxWidth:400},onSubmit:i},K.default.createElement(ie.Center,{sx:{flexDirection:"column"}},r),K.default.createElement(vt,{issues:s}),K.default.createElement(ie.Stack,{spacing:"xl"},K.default.createElement(ie.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:Fe(f,"password")})),K.default.createElement(ie.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},o&&K.default.createElement(ie.Anchor,{component:"button",type:"button",color:"dimmed",onClick:o,size:"xs"},"Forgot password"),K.default.createElement(ie.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),K.default.createElement(ie.Button,{type:"submit"},"Sign in")))}var ze=require("@mantine/core"),ni=require("@medplum/core"),je=m(require("react"));function fi(e){let o=k(),[t,r]=(0,je.useState)();return je.default.createElement(ze.Stack,null,je.default.createElement(ze.Center,{sx:{flexDirection:"column"}},je.default.createElement(Go,{size:32}),je.default.createElement(ze.Title,{order:3},"Choose profile")),je.default.createElement(vt,{outcome:t}),e.memberships.map(a=>je.default.createElement(ze.UnstyledButton,{key:a.id,onClick:()=>{o.post("auth/profile",{login:e.login,profile:a.id}).then(e.handleAuthResponse).catch(n=>r((0,ni.normalizeOperationOutcome)(n)))}},je.default.createElement(ze.Group,null,je.default.createElement(ze.Avatar,{radius:"xl"}),je.default.createElement("div",{style:{flex:1}},je.default.createElement(ze.Text,{size:"sm",weight:500},a.profile?.display),je.default.createElement(ze.Text,{color:"dimmed",size:"xs"},a.project?.display))))))}var to=require("@mantine/core"),Po=m(require("react"));function li(e){let o=k();return Po.default.createElement(fe,{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(Go,{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 Qe=require("@mantine/core"),si=require("@medplum/core");var _e=m(require("react"));function ii(e){let o=k(),[t,r]=(0,_e.useState)(void 0);return _e.default.createElement(fe,{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,si.normalizeErrorString)(n)))}},_e.default.createElement(Qe.Stack,null,_e.default.createElement(Qe.Center,{sx:{flexDirection:"column"}},_e.default.createElement(Go,{size:32}),_e.default.createElement(Qe.Title,null,"Enter MFA code")),t&&_e.default.createElement(Qe.Alert,{icon:_e.default.createElement(lt,{size:16}),title:"Error",color:"red"},t),_e.default.createElement(Qe.Stack,null,_e.default.createElement(Qe.TextInput,{name:"token",label:"MFA code",required:!0})),_e.default.createElement(Qe.Group,{position:"right",mt:"xl"},_e.default.createElement(Qe.Button,{type:"submit"},"Submit code"))))}function kc(e){let{login:o,chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:n,onCode:f,...l}=e,s=k(),[i,u]=(0,Te.useState)(void 0),[d,c]=(0,Te.useState)(!1),[y,v]=(0,Te.useState)(void 0),A=(0,Te.useCallback)(I=>{f?f(I):s.processCode(I).then(()=>{r&&r()}).catch(W=>(0,zf.showNotification)({color:"red",message:(0,Qf.normalizeErrorString)(W)}))},[s,f,r]),D=(0,Te.useCallback)(I=>{c(!!I.mfaRequired),I.login&&u(I.login),I.memberships&&v(I.memberships),I.code&&(t?v(void 0):A(I.code))},[t,A]),B=(0,Te.useCallback)(I=>{A(I.code)},[A]);return(0,Te.useEffect)(()=>{o&&!i&&s.get("auth/login/"+o).then(D).catch(I=>(0,zf.showNotification)({color:"red",message:(0,Qf.normalizeErrorString)(I)}))},[s,o,i,D]),Te.default.createElement(Ar,{width:450},(()=>i?d?Te.default.createElement(ii,{login:i,handleAuthResponse:D}):y?Te.default.createElement(fi,{login:i,memberships:y,handleAuthResponse:D}):e.projectId==="new"?Te.default.createElement(Ha,{login:i,handleAuthResponse:D}):e.chooseScopes?Te.default.createElement(li,{login:i,scope:e.scope,handleAuthResponse:B}):Te.default.createElement("div",null,"Success"):Te.default.createElement(ai,{onForgotPassword:a,onRegister:n,handleAuthResponse:D,disableGoogleAuth:e.disableGoogleAuth,disableEmailAuth:e.disableEmailAuth,...l},e.children))())}
|
|
68
68
|
//# sourceMappingURL=index.cjs.map
|