@medplum/react 2.0.29 → 2.0.31
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 +5 -5
- package/dist/cjs/index.cjs.map +4 -4
- package/dist/esm/index.mjs +5 -5
- package/dist/esm/index.mjs.map +4 -4
- package/dist/types/ResourceBlame/ResourceBlame.d.ts +1 -1
- package/dist/types/auth/AuthenticationForm.d.ts +2 -0
- package/dist/types/auth/SignInForm.d.ts +1 -0
- package/dist/types/stories/referenceLab.d.ts +1 -0
- package/package.json +18 -17
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var js=Object.create;var Or=Object.defineProperty;var _s=Object.getOwnPropertyDescriptor;var Zs=Object.getOwnPropertyNames;var Ys=Object.getPrototypeOf,ei=Object.prototype.hasOwnProperty;var oi=(e,o)=>{for(var t in o)Or(e,t,{get:o[t],enumerable:!0})},Of=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of Zs(o))!ei.call(e,a)&&a!==t&&Or(e,a,{get:()=>o[a],enumerable:!(r=_s(o,a))||r.enumerable});return e};var m=(e,o,t)=>(t=e!=null?js(Ys(e)):{},Of(o||!e||!e.__esModule?Or(t,"default",{value:e,enumerable:!0}):t,e)),ti=e=>Of(Or({},"__esModule",{value:!0}),e);var jd={};oi(jd,{AddressDisplay:()=>Oa,AddressInput:()=>Ea,AnnotationInput:()=>La,AppShell:()=>Ri,AsyncAutocomplete:()=>rt,AttachmentArrayDisplay:()=>Cn,AttachmentArrayInput:()=>vn,AttachmentButton:()=>nt,AttachmentDisplay:()=>ao,AttachmentInput:()=>fr,BackboneElementDisplay:()=>kt,BackboneElementInput:()=>Mt,CalendarInput:()=>Jn,CheckboxFormSection:()=>cr,CodeInput:()=>nr,CodeableConceptDisplay:()=>ft,CodeableConceptInput:()=>Rn,CodingDisplay:()=>kn,CodingInput:()=>Nn,ContactDetailDisplay:()=>An,ContactDetailInput:()=>Hn,ContactPointDisplay:()=>lr,ContactPointInput:()=>pr,Container:()=>Fo,DateTimeInput:()=>eo,DefaultResourceTimeline:()=>Du,DescriptionList:()=>Pn,DescriptionListEntry:()=>bn,DiagnosticReportDisplay:()=>ia,Document:()=>Sr,ElementDefinitionInputSelector:()=>Rl,ElementDefinitionTypeInput:()=>Qn,EncounterTimeline:()=>Tu,ErrorBoundary:()=>ot,FhirPathTable:()=>ps,Form:()=>ne,FormSection:()=>Ge,Header:()=>pn,HumanNameDisplay:()=>rr,HumanNameInput:()=>qn,IdentifierDisplay:()=>Mn,IdentifierInput:()=>Un,Loading:()=>Vr,Logo:()=>Ro,MedplumLink:()=>Pe,MedplumProvider:()=>ri,MemoizedFhirPathTable:()=>ju,MemoizedSearchControl:()=>Wu,MoneyDisplay:()=>wn,MoneyInput:()=>Gn,Navbar:()=>hn,ObservationTable:()=>Xl,OperationOutcomeAlert:()=>pt,Panel:()=>dt,PatientTimeline:()=>_u,PlanDefinitionBuilder:()=>Zu,QuantityDisplay:()=>Tt,QuantityInput:()=>$e,QuestionnaireBuilder:()=>cd,QuestionnaireForm:()=>Sf,QuestionnaireFormItem:()=>Br,QuestionnaireItemType:()=>yf,RangeDisplay:()=>sr,RangeInput:()=>Et,ReferenceDisplay:()=>Uo,ReferenceInput:()=>ut,ReferenceRangeEditor:()=>Cd,ReferenceRangeGroupEditor:()=>Bs,RegisterForm:()=>Qd,RequestGroupDisplay:()=>Td,ResourceArrayDisplay:()=>Ln,ResourceArrayInput:()=>Wn,ResourceAvatar:()=>Me,ResourceBadge:()=>wo,ResourceBlame:()=>Od,ResourceDiff:()=>Rd,ResourceForm:()=>Hi,ResourceHistoryTable:()=>Hd,ResourceInput:()=>hr,ResourceName:()=>lo,ResourcePropertyDisplay:()=>Te,ResourcePropertyInput:()=>mo,ResourceTable:()=>ua,ResourceTimeline:()=>Eo,Scheduler:()=>Gd,SearchChangeEvent:()=>ya,SearchClickEvent:()=>jo,SearchControl:()=>cs,SearchFieldEditor:()=>If,SearchFilterEditor:()=>gf,SearchLoadEvent:()=>va,ServiceRequestTimeline:()=>Xd,SignInForm:()=>Kd,StatusBadge:()=>vr,Timeline:()=>jn,TimelineItem:()=>Oo,TimingInput:()=>Xn,addDateFilterBetween:()=>ca,addField:()=>Mu,addFilter:()=>mt,addLastMonthFilter:()=>nf,addMissingFilter:()=>ma,addNextMonthFilter:()=>lf,addThisMonthFilter:()=>ff,addTodayFilter:()=>tf,addTomorrowFilter:()=>rf,addYearToDateFilter:()=>uf,addYesterdayFilter:()=>of,buildFieldNameString:()=>we,clearFilters:()=>Au,clearFiltersOnField:()=>Dr,convertIsoToLocal:()=>Sl,convertLocalToIso:()=>Pl,createScriptTag:()=>Fr,deleteFilter:()=>ef,getErrorsForInput:()=>ke,getIssuesForExpression:()=>mr,getMonthString:()=>Hl,getOpString:()=>Wt,getRecaptcha:()=>Bf,getSearchOperators:()=>pf,getSortField:()=>cf,getStartMonth:()=>fa,getTimeString:()=>ws,getValueAndType:()=>Ue,initRecaptcha:()=>kf,isChoiceQuestion:()=>vf,isQuestionEnabled:()=>bs,isSortDescending:()=>mf,parseForm:()=>xn,renderValue:()=>xf,setFilters:()=>zt,setOffset:()=>ls,setPage:()=>df,setPropertyValue:()=>At,setSort:()=>pa,sortByDateAndPriority:()=>_n,toggleSort:()=>Fu,useMedplum:()=>b,useMedplumContext:()=>gt,useMedplumNavigate:()=>yo,useMedplumProfile:()=>_t,useResource:()=>ee});module.exports=ti(jd);var Ef=require("@medplum/core"),wa=m(require("react"));function Oa(e){let o=e.value;return o?wa.default.createElement(wa.default.Fragment,null,(0,Ef.formatAddress)(o)):null}var ro=require("@mantine/core"),Qe=m(require("react"));function Lf(e,o){return e.line&&e.line.length>o?e.line[o]:""}function Rf(e,o,t){let r=e.line||[];for(;r.length<=o;)r.push("");return r[o]=t,{...e,line:r}}function Ea(e){let[o,t]=(0,Qe.useState)(e.defaultValue||{}),r=(0,Qe.useRef)();r.current=o;function a(p){t(p),e.onChange&&e.onChange(p)}function n(p){a({...r.current,use:p})}function f(p){a({...r.current,type:p})}function l(p){a(Rf(r.current||{},0,p))}function s(p){a(Rf(r.current||{},1,p))}function i(p){a({...r.current,city:p})}function u(p){a({...r.current,state:p})}function c(p){a({...r.current,postalCode:p})}return Qe.default.createElement(ro.Group,{spacing:"xs",grow:!0,noWrap:!0},Qe.default.createElement(ro.NativeSelect,{"data-testid":"address-use",defaultValue:o.use,onChange:p=>n(p.currentTarget.value),data:["","home","work","temp","old","billing"]}),Qe.default.createElement(ro.NativeSelect,{"data-testid":"address-type",defaultValue:o.type,onChange:p=>f(p.currentTarget.value),data:["","postal","physical","both"]}),Qe.default.createElement(ro.TextInput,{placeholder:"Line 1",defaultValue:Lf(o,0),onChange:p=>l(p.currentTarget.value)}),Qe.default.createElement(ro.TextInput,{placeholder:"Line 2",defaultValue:Lf(o,1),onChange:p=>s(p.currentTarget.value)}),Qe.default.createElement(ro.TextInput,{placeholder:"City",defaultValue:o.city,onChange:p=>i(p.currentTarget.value)}),Qe.default.createElement(ro.TextInput,{placeholder:"State",defaultValue:o.state,onChange:p=>u(p.currentTarget.value)}),Qe.default.createElement(ro.TextInput,{placeholder:"Postal Code",defaultValue:o.postalCode,onChange:p=>c(p.currentTarget.value)}))}var Vf=require("@mantine/core"),qf=require("@medplum/core"),ht=m(require("react"));var Nf=require("@mantine/notifications"),Je=m(require("react")),Hf=(0,Je.createContext)(void 0);function ri(e){let o=e.medplum,t=e.navigate??ai,[r,a]=(0,Je.useState)({profile:o.getProfile(),loading:!1});(0,Je.useEffect)(()=>{function f(){a({...r,profile:o.getProfile()})}return o.addEventListener("change",f),()=>o.removeEventListener("change",f)},[o,r]),(0,Je.useEffect)(()=>{function f(){(0,Nf.showNotification)({color:"red",message:"No connection to server",autoClose:!1})}return o.addEventListener("offline",f),()=>o.removeEventListener("offline",f)},[o]);let n=(0,Je.useMemo)(()=>({...r,medplum:o,navigate:t}),[r,o,t]);return Je.default.createElement(Hf.Provider,{value:n},e.children)}function gt(){return(0,Je.useContext)(Hf)}function b(){return gt().medplum}function yo(){return gt().navigate}function _t(){return gt().profile}function ai(e){window.location.assign(e)}function La(e){let o=_t(),[t,r]=(0,ht.useState)(e.defaultValue||{}),a=(0,ht.useRef)();a.current=t;function n(f){let l=f?{text:f,authorReference:o&&(0,qf.createReference)(o),time:new Date().toISOString()}:{};r(l),e.onChange&&e.onChange(l)}return ht.default.createElement(Vf.TextInput,{name:e.name,placeholder:"Annotation text",defaultValue:t.text,onChange:f=>n(f.currentTarget.value)})}var $r=require("@mantine/core"),Ye=m(require("react"));var Qf=require("@mantine/core"),Jf=require("@medplum/core");var Zt=require("react"),Vo=m(require("prop-types"));var Uf={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 ni=Object.defineProperty,fi=Object.defineProperties,li=Object.getOwnPropertyDescriptors,Er=Object.getOwnPropertySymbols,Wf=Object.prototype.hasOwnProperty,Xf=Object.prototype.propertyIsEnumerable,Gf=(e,o,t)=>o in e?ni(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,zf=(e,o)=>{for(var t in o||(o={}))Wf.call(o,t)&&Gf(e,t,o[t]);if(Er)for(var t of Er(o))Xf.call(o,t)&&Gf(e,t,o[t]);return e},si=(e,o)=>fi(e,li(o)),ii=(e,o)=>{var t={};for(var r in e)Wf.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Er)for(var r of Er(e))o.indexOf(r)<0&&Xf.call(e,r)&&(t[r]=e[r]);return t},I=(e,o,t)=>{let r=(0,Zt.forwardRef)((a,n)=>{var f=a,{color:l="currentColor",size:s=24,stroke:i=2,children:u}=f,c=ii(f,["color","size","stroke","children"]);return(0,Zt.createElement)("svg",zf(si(zf({ref:n},Uf),{width:s,height:s,stroke:l,strokeWidth:i,className:`tabler-icon tabler-icon-${e}`}),c),[...t.map(([p,D])=>(0,Zt.createElement)(p,D)),...u||[]])});return r.propTypes={color:Vo.default.string,size:Vo.default.oneOfType([Vo.default.string,Vo.default.number]),stroke:Vo.default.oneOfType([Vo.default.string,Vo.default.number])},r.displayName=`${o}`,r};var Ra=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 et=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 Na=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 Ha=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 Va=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 qa=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 Ua=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 Ga=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 vo=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 za=I("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]);var Wa=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 Xa=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 Ct=I("circle-plus","IconCirclePlus",[["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"}],["path",{d:"M12 9l0 6",key:"svg-2"}]]);var Yt=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 Qa=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 Ja=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 $a=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 Ka=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 yt=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 vt=I("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);var ja=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 _a=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 Za=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 Ya=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 en=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 Lr=I("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]);var Rr=I("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]);var on=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 tn=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 rn=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 an=I("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);var nn=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 St=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 er=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 or=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 fn=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 ln=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 sn=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 tr=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 un=I("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);var Nr=m(require("react")),ot=class extends Nr.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?Nr.default.createElement(Qf.Alert,{icon:Nr.default.createElement(et,{size:16}),title:"Something went wrong",color:"red"},(0,Jf.normalizeErrorString)(this.state.error)):this.props.children}};var Hr=require("@mantine/core"),dn=m(require("react"));function Vr(){return dn.default.createElement(Hr.Center,{style:{width:"100%",height:"100vh"}},dn.default.createElement(Hr.Loader,null))}var J=require("@mantine/core"),ar=require("@medplum/core");var G=m(require("react"));var $f=require("@medplum/core"),cn=m(require("react"));function rr(e){let o=e.value;return o?cn.default.createElement(cn.default.Fragment,null,(0,$f.formatHumanName)(o,e.options)):null}var mn=require("@mantine/core"),zr=require("@medplum/core"),Gr=m(require("react"));var jf=require("@mantine/core"),Ur=require("@medplum/core"),_f=m(require("react"));function W(e){e.preventDefault(),e.stopPropagation()}function qr(e){if(Kf(e))return!0;if(e instanceof HTMLTableCellElement){let o=e.children;if(o.length===1&&Kf(o[0]))return!0}return!1}function Kf(e){return e instanceof HTMLInputElement&&e.type==="checkbox"}function Pe(e){let o=yo(),{to:t,suffix:r,label:a,onClick:n,children:f,...l}=e,s=ui(t);return r&&(s+="/"+r),_f.default.createElement(jf.Anchor,{href:s,"aria-label":a,onClick:i=>{W(i),n?n(i):t&&o(s)},...l},f)}function ui(e){if(e){if(typeof e=="string")return di(e);if((0,Ur.isResource)(e))return ci(e);if((0,Ur.isReference)(e))return mi(e)}return"#"}function di(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e}function ci(e){return`/${e.resourceType}/${e.id}`}function mi(e){return`/${e.reference}`}var So=require("@medplum/core"),tt=require("react");function ee(e,o){let t=b(),[r,a]=(0,tt.useState)(Zf(t,e)),n=(0,tt.useCallback)(f=>{(0,So.deepEquals)(f,r)||a(f)},[r,a]);return(0,tt.useEffect)(()=>{n(Zf(t,e))},[t,e,n]),(0,tt.useEffect)(()=>{let f=!0;return(0,So.isReference)(e)&&t.readReference(e).then(l=>{f&&n(l)}).catch(l=>{f&&(n(void 0),o&&o((0,So.normalizeOperationOutcome)(l)))}),()=>f=!1},[t,r,e,n,o]),r}function Zf(e,o){if(o){if((0,So.isResource)(o))return o;if((0,So.isReference)(o))return e.getCachedReference(o)}}function Me(e){let o=ee(e.value),t=o?(0,zr.getDisplayString)(o):e.alt??"",r=(o&&(0,zr.getImageSrc)(o))??e.src,a=e.radius??"xl",n={...e};return delete n.value,delete n.link,e.link?Gr.default.createElement(Pe,{to:o},Gr.default.createElement(mn.Avatar,{src:r,alt:t,radius:a,...n})):Gr.default.createElement(mn.Avatar,{src:r,alt:t,radius:a,...n})}var at=require("@mantine/core"),Po=require("@medplum/core");var Ve=m(require("react"));var Wr=require("@mantine/core"),ae=m(require("react")),Yf=require("@mantine/notifications"),el=require("@medplum/core");function rt(e){let{defaultValue:o,toKey:t,toOption:r,loadOptions:a,onChange:n,onCreate:f,creatable:l,...s}=e,i=pi(o),u=(0,ae.useRef)(null),[c,p]=(0,ae.useState)(void 0),[D,A]=(0,ae.useState)(),[B,y]=(0,ae.useState)(),[T,d]=(0,ae.useState)(),[H,P]=(0,ae.useState)(i.map(r)),[R,Re]=(0,ae.useState)([]),he=(0,ae.useRef)();he.current=c;let Ne=(0,ae.useRef)();Ne.current=D;let He=(0,ae.useRef)();He.current=B;let to=(0,ae.useRef)();to.current=T;let h=(0,ae.useRef)();h.current=R;let q=(0,ae.useCallback)(()=>{A(void 0);let Ce=u.current?.value.trim()||"";if(Ce===he.current)return;p(Ce);let Fe=new AbortController;y(Fe),a(Ce,Fe.signal).then(Co=>{Fe.signal.aborted||(Re(Co.map(r)),y(void 0),to.current&&(Co.length>0&&n(Co.slice(0,1)),d(!1)))}).catch(Co=>{Fe.signal.aborted||Co.message.includes("aborted")||(0,Yf.showNotification)({color:"red",message:(0,el.normalizeErrorString)(Co)})})},[a,n,r]),Ho=(0,ae.useCallback)(()=>{He.current&&(He.current.abort(),y(void 0)),Ne.current!==void 0&&window.clearTimeout(Ne.current);let Ce=window.setTimeout(()=>q(),100);A(Ce)},[q]),S=(0,ae.useCallback)(Ce=>{let Fe=[],Co=[];for(let wf of Ce){let wr=h.current?.find(Ks=>Ks.value===wf),jt=wr?.resource;!jt&&l!==!1&&f&&(jt=f(wf),wr=r(jt)),jt&&Fe.push(jt),wr&&Co.push(wr)}n(Fe),P(Co)},[l,n,f,r]),re=(0,ae.useCallback)(Ce=>{Ce.key==="Enter"&&(!Ne.current&&!He.current?(W(Ce),h.current&&h.current.length>0&&(Re(h.current.slice(0,1)),S([h.current[0].value]))):d(!0))},[S]),xt=(0,ae.useCallback)(Ce=>{let Fe=r(f(Ce));return Re([...h.current,Fe]),Fe},[f,Re,r]),It=(0,ae.useCallback)((Ce,Fe)=>!Fe,[]);return(0,ae.useEffect)(()=>()=>{He.current&&He.current.abort()},[]),ae.default.createElement(Wr.MultiSelect,{...s,ref:u,defaultValue:i.map(t),searchable:!0,onKeyDown:re,onSearchChange:Ho,data:[...H,...R],onFocus:q,onChange:S,onCreate:xt,rightSectionWidth:40,rightSection:B?ae.default.createElement(Wr.Loader,{size:16}):null,filter:It,creatable:!0})}function pi(e){return e?Array.isArray(e)?e:[e]:[]}var xi=(0,at.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 Ii(e){return e.id}function gi(e){return{value:e.id,label:(0,Po.getDisplayString)(e),resource:e}}function rl(e){let{classes:o}=xi(),t=yo(),r=b(),a=(0,Ve.useCallback)(async(f,l)=>{let s=Ci(f),i={signal:l},u=await r.graphql(s,void 0,void 0,i);return yi(u,f)},[r]),n=(0,Ve.useCallback)(f=>{f.length>0&&t(`/${(0,Po.getReferenceString)(f[0])}`)},[t]);return Ve.default.createElement(rt,{key:`${e.pathname}?${e.searchParams}`,size:"sm",radius:"md",className:o.searchInput,icon:Ve.default.createElement(nn,{size:16}),placeholder:"Search",itemComponent:hi,toKey:Ii,toOption:gi,onChange:n,loadOptions:a,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var hi=(0,Ve.forwardRef)(({resource:e,...o},t)=>{let r;return e.resourceType==="Patient"?r=e.birthDate:e.resourceType==="ServiceRequest"&&(r=e.subject?.display),Ve.default.createElement("div",{ref:t,...o},Ve.default.createElement(at.Group,{noWrap:!0},Ve.default.createElement(Me,{value:e}),Ve.default.createElement("div",null,Ve.default.createElement(at.Text,null,(0,Po.getDisplayString)(e)),Ve.default.createElement(at.Text,{size:"xs",color:"dimmed"},r))))});function Ci(e){let o=JSON.stringify(e);return(0,Po.isUUID)(e)?`{
|
|
1
|
+
"use strict";var ei=Object.create;var Rr=Object.defineProperty;var oi=Object.getOwnPropertyDescriptor;var ti=Object.getOwnPropertyNames;var ri=Object.getPrototypeOf,ai=Object.prototype.hasOwnProperty;var ni=(e,o)=>{for(var t in o)Rr(e,t,{get:o[t],enumerable:!0})},Nf=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of ti(o))!ai.call(e,a)&&a!==t&&Rr(e,a,{get:()=>o[a],enumerable:!(r=oi(o,a))||r.enumerable});return e};var m=(e,o,t)=>(t=e!=null?ei(ri(e)):{},Nf(o||!e||!e.__esModule?Rr(t,"default",{value:e,enumerable:!0}):t,e)),fi=e=>Nf(Rr({},"__esModule",{value:!0}),e);var nc={};ni(nc,{AddressDisplay:()=>Ra,AddressInput:()=>Na,AnnotationInput:()=>Ha,AppShell:()=>qi,AsyncAutocomplete:()=>ft,AttachmentArrayDisplay:()=>Pn,AttachmentArrayInput:()=>Dn,AttachmentButton:()=>st,AttachmentDisplay:()=>lo,AttachmentInput:()=>ir,BackboneElementDisplay:()=>Bt,BackboneElementInput:()=>Mt,CalendarInput:()=>_n,CheckboxFormSection:()=>xr,CodeInput:()=>sr,CodeableConceptDisplay:()=>it,CodeableConceptInput:()=>qn,CodingDisplay:()=>Mn,CodingInput:()=>Un,ContactDetailDisplay:()=>On,ContactDetailInput:()=>Gn,ContactPointDisplay:()=>ur,ContactPointInput:()=>gr,Container:()=>Oo,DateTimeInput:()=>to,DefaultResourceTimeline:()=>Au,DescriptionList:()=>kn,DescriptionListEntry:()=>Bn,DiagnosticReportDisplay:()=>ca,Document:()=>Dr,ElementDefinitionInputSelector:()=>ql,ElementDefinitionTypeInput:()=>jn,EncounterTimeline:()=>Fu,ErrorBoundary:()=>at,FhirPathTable:()=>hs,Form:()=>le,FormSection:()=>Xe,Header:()=>hn,HumanNameDisplay:()=>fr,HumanNameInput:()=>Wn,IdentifierDisplay:()=>En,IdentifierInput:()=>Xn,Loading:()=>Gr,Logo:()=>Ho,MedplumLink:()=>Pe,MedplumProvider:()=>li,MemoizedFhirPathTable:()=>ed,MemoizedSearchControl:()=>$u,MoneyDisplay:()=>Rn,MoneyInput:()=>Qn,Navbar:()=>Sn,ObservationTable:()=>Kl,OperationOutcomeAlert:()=>gt,Panel:()=>pt,PatientTimeline:()=>od,PlanDefinitionBuilder:()=>td,QuantityDisplay:()=>kt,QuantityInput:()=>_e,QuestionnaireBuilder:()=>Cd,QuestionnaireForm:()=>Tf,QuestionnaireFormItem:()=>Mr,QuestionnaireItemType:()=>bf,RangeDisplay:()=>dr,RangeInput:()=>Lt,ReferenceDisplay:()=>Go,ReferenceInput:()=>mt,ReferenceRangeEditor:()=>Bd,ReferenceRangeGroupEditor:()=>ws,RegisterForm:()=>oc,RequestGroupDisplay:()=>Ld,ResourceArrayDisplay:()=>Vn,ResourceArrayInput:()=>$n,ResourceAvatar:()=>Oe,ResourceBadge:()=>Eo,ResourceBlame:()=>Gd,ResourceDiff:()=>Xd,ResourceForm:()=>Gi,ResourceHistoryTable:()=>Jd,ResourceInput:()=>vr,ResourceName:()=>uo,ResourcePropertyDisplay:()=>ke,ResourcePropertyInput:()=>Io,ResourceTable:()=>ma,ResourceTimeline:()=>Ro,Scheduler:()=>_d,SearchChangeEvent:()=>Pa,SearchClickEvent:()=>_o,SearchControl:()=>Is,SearchFieldEditor:()=>yf,SearchFilterEditor:()=>vf,SearchLoadEvent:()=>ba,ServiceRequestTimeline:()=>ec,SignInForm:()=>ac,StatusBadge:()=>br,Timeline:()=>ef,TimelineItem:()=>Lo,TimingInput:()=>Kn,addDateFilterBetween:()=>xa,addField:()=>Eu,addFilter:()=>It,addLastMonthFilter:()=>uf,addMissingFilter:()=>Ia,addNextMonthFilter:()=>cf,addThisMonthFilter:()=>df,addTodayFilter:()=>ff,addTomorrowFilter:()=>lf,addYearToDateFilter:()=>pf,addYesterdayFilter:()=>nf,buildFieldNameString:()=>He,clearFilters:()=>Ou,clearFiltersOnField:()=>Br,convertIsoToLocal:()=>Tl,convertLocalToIso:()=>kl,createScriptTag:()=>Er,deleteFilter:()=>af,getErrorsForInput:()=>Be,getIssuesForExpression:()=>Ir,getMonthString:()=>Gl,getOpString:()=>Xt,getRecaptcha:()=>Of,getSearchOperators:()=>hf,getSortField:()=>If,getStartMonth:()=>ia,getTimeString:()=>Rs,getValueAndType:()=>We,initRecaptcha:()=>wf,isChoiceQuestion:()=>Df,isQuestionEnabled:()=>As,isSortDescending:()=>gf,parseForm:()=>Cn,renderValue:()=>Cf,setFilters:()=>Wt,setOffset:()=>ds,setPage:()=>xf,setPropertyValue:()=>Ft,setSort:()=>ga,sortByDateAndPriority:()=>of,toggleSort:()=>Lu,useMedplum:()=>b,useMedplumContext:()=>ht,useMedplumNavigate:()=>So,useMedplumProfile:()=>Yt,useResource:()=>te});module.exports=fi(nc);var Hf=require("@medplum/core"),La=m(require("react"));function Ra(e){let o=e.value;return o?La.default.createElement(La.default.Fragment,null,(0,Hf.formatAddress)(o)):null}var fo=require("@mantine/core"),Ke=m(require("react"));function Vf(e,o){return e.line&&e.line.length>o?e.line[o]:""}function qf(e,o,t){let r=e.line||[];for(;r.length<=o;)r.push("");return r[o]=t,{...e,line:r}}function Na(e){let[o,t]=(0,Ke.useState)(e.defaultValue||{}),r=(0,Ke.useRef)();r.current=o;function a(c){t(c),e.onChange&&e.onChange(c)}function n(c){a({...r.current,use:c})}function f(c){a({...r.current,type:c})}function l(c){a(qf(r.current||{},0,c))}function s(c){a(qf(r.current||{},1,c))}function i(c){a({...r.current,city:c})}function u(c){a({...r.current,state:c})}function p(c){a({...r.current,postalCode:c})}return Ke.default.createElement(fo.Group,{spacing:"xs",grow:!0,noWrap:!0},Ke.default.createElement(fo.NativeSelect,{"data-testid":"address-use",defaultValue:o.use,onChange:c=>n(c.currentTarget.value),data:["","home","work","temp","old","billing"]}),Ke.default.createElement(fo.NativeSelect,{"data-testid":"address-type",defaultValue:o.type,onChange:c=>f(c.currentTarget.value),data:["","postal","physical","both"]}),Ke.default.createElement(fo.TextInput,{placeholder:"Line 1",defaultValue:Vf(o,0),onChange:c=>l(c.currentTarget.value)}),Ke.default.createElement(fo.TextInput,{placeholder:"Line 2",defaultValue:Vf(o,1),onChange:c=>s(c.currentTarget.value)}),Ke.default.createElement(fo.TextInput,{placeholder:"City",defaultValue:o.city,onChange:c=>i(c.currentTarget.value)}),Ke.default.createElement(fo.TextInput,{placeholder:"State",defaultValue:o.state,onChange:c=>u(c.currentTarget.value)}),Ke.default.createElement(fo.TextInput,{placeholder:"Postal Code",defaultValue:o.postalCode,onChange:c=>p(c.currentTarget.value)}))}var zf=require("@mantine/core"),Wf=require("@medplum/core"),Ct=m(require("react"));var Uf=require("@mantine/notifications"),je=m(require("react")),Gf=(0,je.createContext)(void 0);function li(e){let o=e.medplum,t=e.navigate??si,[r,a]=(0,je.useState)({profile:o.getProfile(),loading:!1});(0,je.useEffect)(()=>{function f(){a({...r,profile:o.getProfile()})}return o.addEventListener("change",f),()=>o.removeEventListener("change",f)},[o,r]),(0,je.useEffect)(()=>{function f(){(0,Uf.showNotification)({color:"red",message:"No connection to server",autoClose:!1})}return o.addEventListener("offline",f),()=>o.removeEventListener("offline",f)},[o]);let n=(0,je.useMemo)(()=>({...r,medplum:o,navigate:t}),[r,o,t]);return je.default.createElement(Gf.Provider,{value:n},e.children)}function ht(){return(0,je.useContext)(Gf)}function b(){return ht().medplum}function So(){return ht().navigate}function Yt(){return ht().profile}function si(e){window.location.assign(e)}function Ha(e){let o=Yt(),[t,r]=(0,Ct.useState)(e.defaultValue||{}),a=(0,Ct.useRef)();a.current=t;function n(f){let l=f?{text:f,authorReference:o&&(0,Wf.createReference)(o),time:new Date().toISOString()}:{};r(l),e.onChange&&e.onChange(l)}return Ct.default.createElement(zf.TextInput,{name:e.name,placeholder:"Annotation text",defaultValue:t.text,onChange:f=>n(f.currentTarget.value)})}var _r=require("@mantine/core"),oo=m(require("react"));var jf=require("@mantine/core"),_f=require("@medplum/core");var er=require("react"),qo=m(require("prop-types"));var Xf={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,ui=Object.defineProperties,di=Object.getOwnPropertyDescriptors,Nr=Object.getOwnPropertySymbols,$f=Object.prototype.hasOwnProperty,Kf=Object.prototype.propertyIsEnumerable,Qf=(e,o,t)=>o in e?ii(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,Jf=(e,o)=>{for(var t in o||(o={}))$f.call(o,t)&&Qf(e,t,o[t]);if(Nr)for(var t of Nr(o))Kf.call(o,t)&&Qf(e,t,o[t]);return e},ci=(e,o)=>ui(e,di(o)),mi=(e,o)=>{var t={};for(var r in e)$f.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Nr)for(var r of Nr(e))o.indexOf(r)<0&&Kf.call(e,r)&&(t[r]=e[r]);return t},I=(e,o,t)=>{let r=(0,er.forwardRef)((a,n)=>{var f=a,{color:l="currentColor",size:s=24,stroke:i=2,children:u}=f,p=mi(f,["color","size","stroke","children"]);return(0,er.createElement)("svg",Jf(ci(Jf({ref:n},Xf),{width:s,height:s,stroke:l,strokeWidth:i,className:`tabler-icon tabler-icon-${e}`}),p),[...t.map(([c,v])=>(0,er.createElement)(c,v)),...u||[]])});return r.propTypes={color:qo.default.string,size:qo.default.oneOfType([qo.default.string,qo.default.number]),stroke:qo.default.oneOfType([qo.default.string,qo.default.number])},r.displayName=`${o}`,r};var Va=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 rt=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 qa=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 Ua=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 Ga=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 za=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 Wa=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 Xa=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 Po=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 or=I("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]);var Qa=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 Ja=I("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]);var Uo=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 yt=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 tr=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 $a=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 Ka=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 ja=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 _a=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 Za=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 vt=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 St=I("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);var Ya=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 en=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 on=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 tn=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 rn=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 Hr=I("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]);var Vr=I("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]);var an=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 nn=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 fn=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 ln=I("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);var sn=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 un=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 Pt=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 rr=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 ar=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 dn=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 cn=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 mn=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 nr=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 pn=I("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);var qr=m(require("react")),at=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(jf.Alert,{icon:qr.default.createElement(rt,{size:16}),title:"Something went wrong",color:"red"},(0,_f.normalizeErrorString)(this.state.error)):this.props.children}};var Ur=require("@mantine/core"),xn=m(require("react"));function Gr(){return xn.default.createElement(Ur.Center,{style:{width:"100%",height:"100vh"}},xn.default.createElement(Ur.Loader,null))}var J=require("@mantine/core"),lr=require("@medplum/core");var X=m(require("react"));var Zf=require("@medplum/core"),In=m(require("react"));function fr(e){let o=e.value;return o?In.default.createElement(In.default.Fragment,null,(0,Zf.formatHumanName)(o,e.options)):null}var gn=require("@mantine/core"),Qr=require("@medplum/core"),Xr=m(require("react"));var el=require("@mantine/core"),Wr=require("@medplum/core"),ol=m(require("react"));function W(e){e.preventDefault(),e.stopPropagation()}function zr(e){if(Yf(e))return!0;if(e instanceof HTMLTableCellElement){let o=e.children;if(o.length===1&&Yf(o[0]))return!0}return!1}function Yf(e){return e instanceof HTMLInputElement&&e.type==="checkbox"}function Pe(e){let o=So(),{to:t,suffix:r,label:a,onClick:n,children:f,...l}=e,s=pi(t);return r&&(s+="/"+r),ol.default.createElement(el.Anchor,{href:s,"aria-label":a,onClick:i=>{W(i),n?n(i):t&&o(s)},...l},f)}function pi(e){if(e){if(typeof e=="string")return xi(e);if((0,Wr.isResource)(e))return Ii(e);if((0,Wr.isReference)(e))return gi(e)}return"#"}function xi(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e}function Ii(e){return`/${e.resourceType}/${e.id}`}function gi(e){return`/${e.reference}`}var bo=require("@medplum/core"),nt=require("react");function te(e,o){let t=b(),[r,a]=(0,nt.useState)(tl(t,e)),n=(0,nt.useCallback)(f=>{(0,bo.deepEquals)(f,r)||a(f)},[r,a]);return(0,nt.useEffect)(()=>{n(tl(t,e))},[t,e,n]),(0,nt.useEffect)(()=>{let f=!0;return(0,bo.isReference)(e)&&t.readReference(e).then(l=>{f&&n(l)}).catch(l=>{f&&(n(void 0),o&&o((0,bo.normalizeOperationOutcome)(l)))}),()=>f=!1},[t,r,e,n,o]),r}function tl(e,o){if(o){if((0,bo.isResource)(o))return o;if((0,bo.isReference)(o))return e.getCachedReference(o)}}function Oe(e){let o=te(e.value),t=o?(0,Qr.getDisplayString)(o):e.alt??"",r=(o&&(0,Qr.getImageSrc)(o))??e.src,a=e.radius??"xl",n={...e};return delete n.value,delete n.link,e.link?Xr.default.createElement(Pe,{to:o},Xr.default.createElement(gn.Avatar,{src:r,alt:t,radius:a,...n})):Xr.default.createElement(gn.Avatar,{src:r,alt:t,radius:a,...n})}var lt=require("@mantine/core"),Do=require("@medplum/core");var Ge=m(require("react"));var Jr=require("@mantine/core"),fe=m(require("react")),rl=require("@mantine/notifications"),al=require("@medplum/core");function ft(e){let{defaultValue:o,toKey:t,toOption:r,loadOptions:a,onChange:n,onCreate:f,creatable:l,...s}=e,i=hi(o),u=(0,fe.useRef)(null),[p,c]=(0,fe.useState)(void 0),[v,T]=(0,fe.useState)(),[F,h]=(0,fe.useState)(),[k,d]=(0,fe.useState)(),[N,P]=(0,fe.useState)(i.map(r)),[V,Ee]=(0,fe.useState)([]),Le=(0,fe.useRef)();Le.current=p;let Me=(0,fe.useRef)();Me.current=v;let ye=(0,fe.useRef)();ye.current=F;let jt=(0,fe.useRef)();jt.current=k;let S=(0,fe.useRef)();S.current=V;let U=(0,fe.useCallback)(()=>{T(void 0);let Ie=u.current?.value.trim()||"";if(Ie===Le.current)return;c(Ie);let Te=new AbortController;h(Te),a(Ie,Te.signal).then(we=>{Te.signal.aborted||(Ee(we.map(r)),h(void 0),jt.current&&(we.length>0&&n(we.slice(0,1)),d(!1)))}).catch(we=>{Te.signal.aborted||we.message.includes("aborted")||(0,rl.showNotification)({color:"red",message:(0,al.normalizeErrorString)(we)})})},[a,n,r]),no=(0,fe.useCallback)(()=>{ye.current&&(ye.current.abort(),h(void 0)),Me.current!==void 0&&window.clearTimeout(Me.current);let Ie=window.setTimeout(()=>U(),100);T(Ie)},[U]),Re=(0,fe.useCallback)(Ie=>{let Te=[],we=[];for(let _t of Ie){let Lr=S.current?.find(Ys=>Ys.value===_t),Zt=Lr?.resource;!Zt&&l!==!1&&f&&(Zt=f(_t),Lr=r(Zt)),Zt&&Te.push(Zt),Lr&&we.push(Lr)}n(Te),P(we)},[l,n,f,r]),tt=(0,fe.useCallback)(Ie=>{Ie.key==="Enter"&&(!Me.current&&!ye.current?(W(Ie),S.current&&S.current.length>0&&(Ee(S.current.slice(0,1)),Re([S.current[0].value]))):d(!0))},[Re]),B=(0,fe.useCallback)(Ie=>{let Te=r(f(Ie));return Ee([...S.current,Te]),Te},[f,Ee,r]),ee=(0,fe.useCallback)((Ie,Te)=>!Te,[]);return(0,fe.useEffect)(()=>()=>{ye.current&&ye.current.abort()},[]),fe.default.createElement(Jr.MultiSelect,{...s,ref:u,defaultValue:i.map(t),searchable:!0,onKeyDown:tt,onSearchChange:no,data:[...N,...V],onFocus:U,onChange:Re,onCreate:B,rightSectionWidth:40,rightSection:F?fe.default.createElement(Jr.Loader,{size:16}):null,filter:ee,creatable:!0})}function hi(e){return e?Array.isArray(e)?e:[e]:[]}var Ci=(0,lt.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 yi(e){return e.id}function vi(e){return{value:e.id,label:(0,Do.getDisplayString)(e),resource:e}}function ll(e){let{classes:o}=Ci(),t=So(),r=b(),a=(0,Ge.useCallback)(async(f,l)=>{let s=Pi(f),i={signal:l},u=await r.graphql(s,void 0,void 0,i);return bi(u,f)},[r]),n=(0,Ge.useCallback)(f=>{f.length>0&&t(`/${(0,Do.getReferenceString)(f[0])}`)},[t]);return Ge.default.createElement(ft,{key:`${e.pathname}?${e.searchParams}`,size:"sm",radius:"md",className:o.searchInput,icon:Ge.default.createElement(un,{size:16}),placeholder:"Search",itemComponent:Si,toKey:yi,toOption:vi,onChange:n,loadOptions:a,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var Si=(0,Ge.forwardRef)(({resource:e,...o},t)=>{let r;return e.resourceType==="Patient"?r=e.birthDate:e.resourceType==="ServiceRequest"&&(r=e.subject?.display),Ge.default.createElement("div",{ref:t,...o},Ge.default.createElement(lt.Group,{noWrap:!0},Ge.default.createElement(Oe,{value:e}),Ge.default.createElement("div",null,Ge.default.createElement(lt.Text,null,(0,Do.getDisplayString)(e)),Ge.default.createElement(lt.Text,{size:"xs",color:"dimmed"},r))))});function Pi(e){let o=JSON.stringify(e);return(0,Do.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 yi(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),Si(vi(t),o).slice(0,5)}function vi(e){let o=new Set,t=[];for(let r of e)o.has(r.id)||(o.add(r.id),t.push(r));return t}function Si(e,o){return e.sort((t,r)=>ol(r,o)-ol(t,o))}function ol(e,o){let t=0;if(e.identifier)for(let r of e.identifier)t=Math.max(t,tl(r.value,o));if(e.resourceType==="Patient"&&e.name)for(let r of e.name)t=Math.max(t,tl((0,Po.formatHumanName)(r),o));return t}function tl(e,o){if(!e)return 0;let t=e.toLowerCase().indexOf(o.toLowerCase());return t<0?0:100-t}var Pi=(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=gt(),{medplum:t,profile:r,navigate:a}=o,n=t.getLogins(),{classes:f,cx:l}=Pi(),[s,i]=(0,G.useState)(!1);return G.default.createElement(J.Header,{height:60,p:8,style:{zIndex:101}},G.default.createElement(J.Group,{position:"apart"},G.default.createElement(J.Group,{spacing:"xs"},G.default.createElement(J.UnstyledButton,{className:f.logoButton,onClick:e.navbarToggle},e.logo),G.default.createElement(rl,{pathname:e.pathname,searchParams:e.searchParams})),G.default.createElement(J.Menu,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:s,onClose:()=>i(!1)},G.default.createElement(J.Menu.Target,null,G.default.createElement(J.UnstyledButton,{className:l(f.user,{[f.userActive]:s}),onClick:()=>i(u=>!u)},G.default.createElement(J.Group,{spacing:7},G.default.createElement(Me,{value:r,radius:"xl",size:24}),G.default.createElement(J.Text,{size:"sm",className:f.userName},(0,ar.formatHumanName)(r?.name?.[0])),G.default.createElement(Xa,{size:12,stroke:1.5})))),G.default.createElement(J.Menu.Dropdown,null,G.default.createElement(J.Stack,{align:"center",p:"xl"},G.default.createElement(Me,{size:"xl",radius:100,value:o.profile}),G.default.createElement(rr,{value:o.profile?.name?.[0]}),G.default.createElement(J.Text,{color:"dimmed",size:"xs"},t.getActiveLogin()?.project.display)),n.length>1&&G.default.createElement(J.Menu.Divider,null),n.map(u=>u.profile.reference!==(0,ar.getReferenceString)(o.profile)&&G.default.createElement(J.Menu.Item,{key:u.profile.reference,onClick:()=>{t.setActiveLogin(u).then(()=>window.location.reload()).catch(console.log)}},G.default.createElement(J.Group,null,G.default.createElement(J.Avatar,{radius:"xl"}),G.default.createElement("div",{style:{flex:1}},G.default.createElement(J.Text,{size:"sm",weight:500},u.profile.display),G.default.createElement(J.Text,{color:"dimmed",size:"xs"},u.project.display))))),G.default.createElement(J.Menu.Divider,null),G.default.createElement(J.Menu.Item,{icon:G.default.createElement(ln,{size:14,stroke:1.5}),onClick:()=>a("/signin")},"Add another account"),G.default.createElement(J.Menu.Item,{icon:G.default.createElement(St,{size:14,stroke:1.5}),onClick:()=>a(`/${(0,ar.getReferenceString)(r)}`)},"Account settings"),G.default.createElement(J.Menu.Item,{icon:G.default.createElement(en,{size:14,stroke:1.5}),onClick:async()=>{await t.signOut(),a("/signin")}},"Sign out"),G.default.createElement(J.Text,{size:"xs",color:"dimmed",align:"center"},e.version)))))}var qe=require("@mantine/core");var xe=m(require("react"));var Ze=require("@mantine/core"),In=require("@mantine/notifications"),Xr=require("@medplum/core"),bo=m(require("react"));var al=m(require("react"));function xn(e){let o={};for(let t of Array.from(e.elements))t instanceof HTMLInputElement?bi(o,t):t instanceof HTMLTextAreaElement?o[t.name]=t.value:t instanceof HTMLSelectElement&&Di(o,t);return o}function bi(e,o){o.disabled||(o.type==="checkbox"||o.type==="radio")&&!o.checked||(e[o.name]=o.value)}function Di(e,o){e[o.name]=o.value}function ne(e){return al.default.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:o=>{o.preventDefault();let t=xn(o.target);e.onSubmit&&e.onSubmit(t)}},e.children)}function nl(e){let o=b(),t=o.getUserConfiguration();function r(a){let{menuname:n,bookmarkname:f}=a,l=`${e.pathname}?${e.searchParams.toString()}`,s=(0,Xr.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,In.showNotification)({color:"green",message:"Success"}),e.onOk()}).catch(u=>{(0,In.showNotification)({color:"red",message:(0,Xr.normalizeErrorString)(u)})})}return bo.default.createElement(Ze.Modal,{title:"Add Bookmark",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},bo.default.createElement(ne,{onSubmit:r},bo.default.createElement(Ze.Stack,null,bo.default.createElement(Ti,{config:t}),bo.default.createElement(Ze.TextInput,{label:"Bookmark Name",type:"text",name:"bookmarkname",placeholder:"bookmark name",withAsterisk:!0}),bo.default.createElement(Ze.Group,{position:"right"},bo.default.createElement(Ze.Button,{mt:"sm",type:"submit"},"OK")))))}function Ti(e){function o(r){return r?.menu?.map(a=>a.title)}let t=o(e.config);return bo.default.createElement(Ze.NativeSelect,{name:"menuname",defaultValue:t[0],label:"Select Menu Option",placeholder:"Menu",data:t,withAsterisk:!0})}var Jr=m(require("react"));var Qr=m(require("react"));function gn(e){return typeof e.code=="string"?e.code:JSON.stringify(e)}function ki(e){return typeof e.display=="string"?e.display:gn(e)}function Bi(e){return{value:gn(e),label:ki(e),resource:e}}function Ai(e){return{code:e,display:e}}function Pt(e){let o=b(),{elementDefinition:t,creatable:r,clearable:a,...n}=e,f=(0,Qr.useCallback)(async(l,s)=>{if(!t.binding)return[];let i=t.binding.valueSet,c=(await o.searchValueSet(i,l,{signal:s})).expansion?.contains,p=[];for(let D of c)D.code&&!p.some(A=>A.code===D.code)&&p.push(D);return p},[o,t]);return Qr.default.createElement(rt,{...n,creatable:r??!0,clearable:a??!0,toKey:gn,toOption:Bi,loadOptions:f,onCreate:Ai,getCreateLabel:r===!1?void 0:l=>`+ Create ${l}`})}function nr(e){let[o,t]=(0,Jr.useState)(e.defaultValue);function r(a){let n=a[0],f=Fi(n);t(f),e.onChange&&e.onChange(f)}return Jr.default.createElement(Pt,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:Mi(o),onChange:r,creatable:e.creatable,maxSelectedValues:e.maxSelectedValues??1,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable})}function Mi(e){return e?{code:e}:void 0}function Fi(e){return e?.code}var fl=(0,qe.createStyles)(e=>({menuTitle:{margin:"20px 0 4px 6px",fontSize:"9px",fontWeight:"normal",textTransform:"uppercase",letterSpacing:"2px"},link:{...e.fn.focusStyles(),display:"flex",alignItems:"center",textDecoration:"none",fontSize:e.fontSizes.sm,color:e.colorScheme==="dark"?e.colors.dark[1]:e.colors.gray[7],padding:"8px 12px",borderRadius:e.radius.sm,fontWeight:500,"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[6]:e.colors.gray[0],color:e.colorScheme==="dark"?e.white:e.black,textDecoration:"none","& svg":{color:e.colorScheme==="dark"?e.white:e.black}},"& svg":{color:e.colorScheme==="dark"?e.colors.dark[2]:e.colors.gray[6],marginRight:e.spacing.sm,strokeWidth:1.5,width:18,height:18}},linkActive:{"&, &:hover":{backgroundColor:e.fn.variant({variant:"light",color:e.primaryColor}).background,color:e.fn.variant({variant:"light",color:e.primaryColor}).color,"& svg":{color:e.fn.variant({variant:"light",color:e.primaryColor}).color}}}}));function hn(e){let{classes:o}=fl(),t=yo(),r=Ei(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(qe.Navbar,{width:{sm:250},p:"xs"},xe.default.createElement(qe.ScrollArea,null,xe.default.createElement(qe.Navbar.Section,{mb:"sm"},xe.default.createElement(nr,{key:window.location.pathname,name:"resourceType",placeholder:"Resource Type",property:{binding:{valueSet:"http://hl7.org/fhir/ValueSet/resource-types"}},onChange:s=>l(s),creatable:!1,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})),xe.default.createElement(qe.Navbar.Section,{grow:!0},e.menus?.map(s=>xe.default.createElement(xe.default.Fragment,{key:`menu-${s.title}`},xe.default.createElement(qe.Text,{className:o.menuTitle},s.title),s.links?.map(i=>xe.default.createElement(wi,{key:i.href,to:i.href,active:i.href===r?.href,onClick:u=>f(u,i.href)},xe.default.createElement(Oi,{to:i.href,icon:i.icon}),xe.default.createElement("span",null,i.label))))),e.displayAddBookmark&&xe.default.createElement(qe.Button,{variant:"subtle",size:"xs",mt:"xl",leftIcon:xe.default.createElement(an,{size:"0.75rem"}),onClick:()=>n(!0)},"Add Bookmark")))),e.pathname&&e.searchParams&&xe.default.createElement(nl,{pathname:e.pathname,searchParams:e.searchParams,visible:a,onOk:()=>n(!1),onCancel:()=>n(!1)}))}function wi(e){let{classes:o,cx:t}=fl();return xe.default.createElement(Pe,{onClick:e.onClick,to:e.to,className:t(o.link,{[o.linkActive]:e.active})},e.children)}function Oi(e){return e.icon?e.icon:xe.default.createElement(qe.Space,{w:30})}function Ei(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=Li(e,o,f.href);l>a&&(a=l,r=f)}return r}function Li(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 Ri(e){let o=(0,$r.useMantineTheme)(),[t,r]=(0,Ye.useState)(localStorage.navbarOpen==="true"),a=b(),n=_t();function f(i){localStorage.navbarOpen=i.toString(),r(i)}function l(){f(!1)}function s(){f(!t)}return a.isLoading()?Ye.default.createElement(Vr,null):Ye.default.createElement($r.AppShell,{styles:{main:{background:o.colorScheme==="dark"?o.colors.dark[8]:o.colors.gray[0]}},padding:0,fixed:!0,header:n&&Ye.default.createElement(pn,{pathname:e.pathname,searchParams:e.searchParams,logo:e.logo,version:e.version,navbarToggle:s}),navbar:n&&t?Ye.default.createElement(hn,{pathname:e.pathname,searchParams:e.searchParams,menus:e.menus,closeNavbar:l,displayAddBookmark:e.displayAddBookmark}):void 0},Ye.default.createElement(ot,{key:`${e.pathname}?${e.searchParams?.toString()}`},Ye.default.createElement(Ye.Suspense,{fallback:Ye.default.createElement(Vr,null)},e.children)))}var Kr=m(require("react"));var ll=require("@mantine/core"),Do=m(require("react"));function ao(e){let o=e.value,{contentType:t,url:r,title:a}=o??{};return r?Do.default.createElement("div",{"data-testid":"attachment-display"},t?.startsWith("image/")&&Do.default.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:r,alt:o?.title}),t?.startsWith("video/")&&Do.default.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},Do.default.createElement("source",{type:t,src:r})),t==="application/pdf"&&!a?.endsWith(".pdf")&&Do.default.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},Do.default.createElement("iframe",{width:"100%",height:"400",src:r+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),Do.default.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},Do.default.createElement(ll.Anchor,{href:o?.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},o?.title||"Download"))):null}function Cn(e){return Kr.default.createElement("div",null,e.values?.map((o,t)=>Kr.default.createElement("div",{key:"attatchment-"+t},Kr.default.createElement(ao,{value:o,maxWidth:e.maxWidth}))))}var yn=require("@mantine/core");var de=m(require("react"));var bt=m(require("react"));function nt(e){let o=b(),t=(0,bt.useRef)(null);function r(f){W(f),t.current?.click()}function a(f){W(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 vn(e){let[o,t]=(0,de.useState)(e.defaultValue??[]),r=(0,de.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return de.default.createElement("table",{style:{width:"100%"}},de.default.createElement("colgroup",null,de.default.createElement("col",{width:"97%"}),de.default.createElement("col",{width:"3%"})),de.default.createElement("tbody",null,o.map((n,f)=>de.default.createElement("tr",{key:`${f}-${o.length}`},de.default.createElement("td",null,de.default.createElement(ao,{value:n,maxWidth:200})),de.default.createElement("td",null,de.default.createElement(yn.ActionIcon,{title:"Remove",size:"sm",onClick:l=>{W(l);let s=o.slice();s.splice(f,1),a(s)}},de.default.createElement(qo,null))))),de.default.createElement("tr",null,de.default.createElement("td",null),de.default.createElement("td",null,de.default.createElement(nt,{onUpload:n=>{a([...r.current,n])}},n=>de.default.createElement(yn.ActionIcon,{...n,title:"Add",size:"sm",color:"green"},de.default.createElement(Yt,{size:16})))))))}var Sn=require("@mantine/core"),To=m(require("react"));function fr(e){let[o,t]=(0,To.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return o?To.default.createElement(To.default.Fragment,null,To.default.createElement(ao,{value:o,maxWidth:200}),To.default.createElement(Sn.Button,{onClick:a=>{W(a),r(void 0)}},"Remove")):To.default.createElement(nt,{onUpload:r},a=>To.default.createElement(Sn.Button,{...a},"Upload..."))}var Yr=require("@medplum/core"),Bt=m(require("react"));var jr=["meta","implicitRules","language","text","contained","extension","modifierExtension"];var sl=require("@mantine/core"),Dt=m(require("react")),Ni=(0,sl.createStyles)(e=>({root:{display:"grid",gridTemplateColumns:"30% 70%",margin:0,"& > dt, & > dd":{padding:`${e.spacing.sm} ${e.spacing.sm}`,borderTop:`0.1px solid ${e.colors.gray[3]}`,margin:0}},compact:{gridTemplateColumns:"20% 80%","& > dt, & > dd":{padding:`0 ${e.spacing.xs} ${e.spacing.xs} 0`,border:0}}}));function Pn(e){let{children:o,compact:t}=e,{classes:r,cx:a}=Ni();return Dt.default.createElement("dl",{className:a(r.root,{[r.compact]:t})},o)}function bn(e){return Dt.default.createElement(Dt.default.Fragment,null,Dt.default.createElement("dt",null,e.term),Dt.default.createElement("dd",null,e.children))}var E=require("@medplum/core"),X=m(require("react"));var il=require("@medplum/core"),Dn=m(require("react"));function ft(e){return Dn.default.createElement(Dn.default.Fragment,null,(0,il.formatCodeableConcept)(e.value))}var ul=require("@medplum/core"),Tn=m(require("react"));function kn(e){return Tn.default.createElement(Tn.default.Fragment,null,(0,ul.formatCoding)(e.value))}var _r=m(require("react"));var Bn=m(require("react"));function lr(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("]")),Bn.default.createElement(Bn.default.Fragment,null,t.join("").trim())}function An(e){let o=e.value;return o?_r.default.createElement(_r.default.Fragment,null,o.name,o.name&&": ",o.telecom?.map((t,r)=>_r.default.createElement(lr,{key:"telecom-"+r,value:t}))):null}var dl=m(require("react"));function Mn(e){return dl.default.createElement("div",null,e.value?.system,": ",e.value?.value)}var cl=require("@medplum/core"),Fn=m(require("react"));function wn(e){return Fn.default.createElement(Fn.default.Fragment,null,(0,cl.formatMoney)(e.value))}var ml=require("@medplum/core"),On=m(require("react"));function Tt(e){return On.default.createElement(On.default.Fragment,null,(0,ml.formatQuantity)(e.value))}var pl=require("@medplum/core"),En=m(require("react"));function sr(e){return En.default.createElement(En.default.Fragment,null,(0,pl.formatRange)(e.value))}var ir=m(require("react"));function xl(e){let o=e.value;return o?ir.default.createElement(ir.default.Fragment,null,ir.default.createElement(Tt,{value:o.numerator}),"\xA0/\xA0",ir.default.createElement(Tt,{value:o.denominator})):null}var Il=require("@medplum/core"),Zr=m(require("react"));function Uo(e){if(!e.value)return null;let o=e.value.display||e.value.reference||(0,Il.stringify)(e.value);return e.link!==!1&&e.value.reference?Zr.default.createElement(Pe,{to:e.value},o):Zr.default.createElement(Zr.default.Fragment,null,o)}var ur=m(require("react"));function Ln(e){let o=e.property,t=e.values??[],r=o.type?.[0]?.code;return ur.default.createElement(ur.default.Fragment,null,t.map((a,n)=>ur.default.createElement("div",{key:`${n}-${t.length}`},ur.default.createElement(Te,{arrayElement:!0,property:o,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))))}function Te(e){let{property:o,propertyType:t,value:r}=e;if(o?.max==="*"&&!e.arrayElement)return t===E.PropertyType.Attachment?X.default.createElement(Cn,{values:r,maxWidth:e.maxWidth}):X.default.createElement(Ln,{property:o,values:r,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(t){case E.PropertyType.boolean:return X.default.createElement(X.default.Fragment,null,r===void 0?"":(!!r).toString());case E.PropertyType.SystemString:case E.PropertyType.string:return X.default.createElement("div",{style:{whiteSpace:"pre-wrap"}},r);case E.PropertyType.code:case E.PropertyType.date:case E.PropertyType.integer:case E.PropertyType.positiveInt:case E.PropertyType.unsignedInt:case E.PropertyType.uri:case E.PropertyType.url:return X.default.createElement(X.default.Fragment,null,r);case E.PropertyType.canonical:return X.default.createElement(Uo,{value:{reference:r},link:e.link});case E.PropertyType.dateTime:case E.PropertyType.instant:return X.default.createElement(X.default.Fragment,null,(0,E.formatDateTime)(r));case E.PropertyType.markdown:return X.default.createElement("pre",null,r);case E.PropertyType.Address:return X.default.createElement(Oa,{value:r});case E.PropertyType.Annotation:return X.default.createElement(X.default.Fragment,null,r?.text);case E.PropertyType.Attachment:return X.default.createElement(ao,{value:r,maxWidth:e.maxWidth});case E.PropertyType.CodeableConcept:return X.default.createElement(ft,{value:r});case E.PropertyType.Coding:return X.default.createElement(kn,{value:r});case E.PropertyType.ContactDetail:return X.default.createElement(An,{value:r});case E.PropertyType.ContactPoint:return X.default.createElement(lr,{value:r});case E.PropertyType.HumanName:return X.default.createElement(rr,{value:r});case E.PropertyType.Identifier:return X.default.createElement(Mn,{value:r});case E.PropertyType.Money:return X.default.createElement(wn,{value:r});case E.PropertyType.Period:return X.default.createElement(X.default.Fragment,null,(0,E.formatPeriod)(r));case E.PropertyType.Quantity:case E.PropertyType.Duration:return X.default.createElement(Tt,{value:r});case E.PropertyType.Range:return X.default.createElement(sr,{value:r});case E.PropertyType.Ratio:return X.default.createElement(xl,{value:r});case E.PropertyType.Reference:return X.default.createElement(Uo,{value:r,link:e.link});case E.PropertyType.Timing:return X.default.createElement(X.default.Fragment,null,(0,E.formatTiming)(r));case E.PropertyType.Dosage:case E.PropertyType.UsageContext:return X.default.createElement(kt,{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 X.default.createElement(kt,{value:{type:(0,E.getElementDefinitionTypeName)(o),value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}function Ue(e,o){let t=(0,E.getTypedPropertyValue)(e,o);return t?Array.isArray(t)?[t.map(r=>r.value),t[0].type]:[t.value,t.type]:[void 0,"undefined"]}function kt(e){let o=e.value,t=o.value;if(!t)return null;let r=o.type,a=Yr.globalSchema.types[r];return a?typeof t=="object"&&"name"in t&&Object.keys(t).length===1&&typeof t.name=="string"?Bt.default.createElement("div",null,t.name):Bt.default.createElement(Pn,{compact:e.compact},Object.entries(a.properties).map(n=>{let f=n[0];if(jr.includes(f))return null;let l=n[1];l.path||(l.path=r+"."+f);let[s,i]=Ue(o,f);return e.ignoreMissingValues&&(!s||Array.isArray(s)&&s.length===0)?null:Bt.default.createElement(bn,{key:f,term:(0,Yr.getPropertyDisplayName)(f)},Bt.default.createElement(Te,{property:l,propertyType:i,value:s,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))})):Bt.default.createElement("div",null,r,"\xA0not implemented")}var Nl=require("@mantine/core"),Cr=require("@medplum/core"),Ao=m(require("react"));var ea=require("@mantine/core"),dr=m(require("react"));function cr(e){return dr.default.createElement(ea.Group,{noWrap:!0},dr.default.createElement("div",null,e.children),dr.default.createElement("div",null,dr.default.createElement(ea.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk},(()=>null)())))}var hl=require("@mantine/core"),Cl=m(require("react"));function ke(e,o){return e?.issue?.filter(t=>gl(t.expression?.[0],o))?.map(t=>t.details?.text)?.join(`
|
|
65
|
-
`)}function mr(e,o){return e?.issue?.filter(t=>gl(t.expression?.[0],o))}function gl(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 Ge(e){return Cl.default.createElement(hl.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk,error:ke(e.outcome,e.htmlFor)},e.children)}var uo=require("@mantine/core"),oa=require("@medplum/core"),Be=m(require("react"));function Hi(e){let o=b(),t=ee(e.defaultValue),[r,a]=(0,Be.useState)(),[n,f]=(0,Be.useState)();return(0,Be.useEffect)(()=>{t&&(f((0,oa.deepClone)(t)),o.requestSchema(t.resourceType).then(a).catch(console.log))},[o,t]),!r||!n?Be.default.createElement("div",null,"Loading..."):Be.default.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:l=>{l.preventDefault(),e.onSubmit&&e.onSubmit(n)}},Be.default.createElement(uo.Stack,{mb:"xl"},Be.default.createElement(Ge,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},Be.default.createElement(uo.TextInput,{name:"resourceType",defaultValue:n.resourceType,disabled:!0})),Be.default.createElement(Ge,{title:"ID",htmlFor:"id",outcome:e.outcome},Be.default.createElement(uo.TextInput,{name:"id",defaultValue:n.id,disabled:!0}))),Be.default.createElement(Mt,{typeName:n.resourceType,defaultValue:n,outcome:e.outcome,onChange:f}),Be.default.createElement(uo.Group,{position:"right",mt:"xl"},Be.default.createElement(uo.Button,{type:"submit"},"OK"),e.onDelete&&Be.default.createElement(uo.Button,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(n)}},"Delete")))}function At(e,o,t,r,a){let n=r.type;if(n.length>1)for(let f of n){let l=o.replace("[x]",(0,oa.capitalize)(f.code));l in e&&delete e[l]}return e[t]=a,e}var oo=require("@mantine/core"),L=require("@medplum/core"),U=m(require("react"));var ta=m(require("react"));function Rn(e){let[o,t]=(0,ta.useState)(e.defaultValue);function r(a){let n=qi(a);t(n),e.onChange&&e.onChange(n)}return ta.default.createElement(Pt,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:o&&Vi(o),maxSelectedValues:1,onChange:r})}function Vi(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function qi(e){if(e.length!==0)return{coding:e.map(o=>({system:o.system,code:o.code,display:o.display}))}}var ra=m(require("react"));function Nn(e){let[o,t]=(0,ra.useState)(e.defaultValue);function r(a){let n=a[0],f=n&&Gi(n);t(f),e.onChange&&e.onChange(f)}return ra.default.createElement(Pt,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:o&&Ui(o),maxSelectedValues:1,onChange:r})}function Ui(e){return{system:e.system,code:e.code,display:e.display}}function Gi(e){return{system:e.system,code:e.code,display:e.display}}var aa=require("@mantine/core"),Go=m(require("react"));var lt=require("@mantine/core"),ko=m(require("react"));function pr(e){let[o,t]=(0,ko.useState)(e.defaultValue),r=(0,ko.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 ko.default.createElement(lt.Group,{spacing:"xs",grow:!0,noWrap:!0},ko.default.createElement(lt.NativeSelect,{"data-testid":"system",defaultValue:o?.system,onChange:s=>n(s.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),ko.default.createElement(lt.NativeSelect,{"data-testid":"use",defaultValue:o?.use,onChange:s=>f(s.currentTarget.value),data:["","home","work","temp","old","mobile"]}),ko.default.createElement(lt.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:s=>l(s.currentTarget.value)}))}function Hn(e){let[o,t]=(0,Go.useState)(e.defaultValue),r=(0,Go.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 Go.default.createElement(aa.Group,{spacing:"xs",grow:!0,noWrap:!0},Go.default.createElement(aa.TextInput,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:o?.name,onChange:l=>n(l.currentTarget.value)}),Go.default.createElement(pr,{name:e.name+"-telecom",defaultValue:o?.telecom?.[0],onChange:f}))}var yl=require("@mantine/core"),Vn=require("@medplum/core"),vl=m(require("react"));function eo(e){return vl.default.createElement(yl.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:zi(),defaultValue:Sl(e.defaultValue),autoFocus:e.autoFocus,error:ke(e.outcome,e.name),onChange:o=>{if(e.onChange){let t=o.currentTarget.value;e.onChange(Pl(t))}}})}function Sl(e){if(!e)return"";let o=new Date(e);return(0,Vn.isValidDate)(o)?o.toLocaleDateString("sv")+"T"+o.toLocaleTimeString("sv"):""}function Pl(e){if(!e)return"";let o=new Date(e);return(0,Vn.isValidDate)(o)?o.toISOString():""}function zi(){return"datetime-local"}var bl=require("@mantine/core"),Dl=require("@medplum/core"),Tl=m(require("react"));function kl(e){return Tl.default.createElement(bl.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:(0,Dl.stringify)(e.defaultValue),deserialize:JSON.parse,onChange:o=>{e.onChange&&e.onChange(JSON.parse(o))}})}var Bo=require("@mantine/core"),no=m(require("react"));function qn(e){let[o,t]=(0,no.useState)(e.defaultValue),r=(0,no.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 no.default.createElement(Bo.Group,{spacing:"xs",grow:!0,noWrap:!0},no.default.createElement(Bo.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"]}),no.default.createElement(Bo.TextInput,{placeholder:"Prefix",name:e.name+"-prefix",defaultValue:o?.prefix?.join(" "),onChange:u=>f(u.currentTarget.value)}),no.default.createElement(Bo.TextInput,{placeholder:"Given",name:e.name+"-given",defaultValue:o?.given?.join(" "),onChange:u=>l(u.currentTarget.value)}),no.default.createElement(Bo.TextInput,{name:e.name+"-family",placeholder:"Family",defaultValue:o?.family,onChange:u=>s(u.currentTarget.value)}),no.default.createElement(Bo.TextInput,{placeholder:"Suffix",name:e.name+"-suffix",defaultValue:o?.suffix?.join(" "),onChange:u=>i(u.currentTarget.value)}))}var xr=require("@mantine/core"),Ft=m(require("react"));function Un(e){let[o,t]=(0,Ft.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Ft.default.createElement(xr.Group,{spacing:"xs",grow:!0,noWrap:!0},Ft.default.createElement(xr.TextInput,{placeholder:"System",defaultValue:o?.system,onChange:a=>r({...o,system:a.currentTarget.value})}),Ft.default.createElement(xr.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:a=>r({...o,value:a.currentTarget.value})}))}var na=require("@mantine/core");var co=m(require("react")),Wi=["USD","EUR","CAD","GBP","AUD"];function Gn(e){let{onChange:o}=e,[t,r]=(0,co.useState)(e.defaultValue),a=(0,co.useCallback)(s=>{r(s),o&&o(s)},[o]),n=(0,co.useCallback)(s=>{a({...t,currency:s.currentTarget.value})},[t,a]),f=(0,co.useCallback)(s=>{a({...t,value:s.currentTarget.valueAsNumber})},[t,a]),l=co.default.createElement(na.NativeSelect,{defaultValue:t?.currency,data:Wi,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:n});return co.default.createElement(na.TextInput,{type:"number",label:e.label,placeholder:e.placeholder??"Value",defaultValue:t?.value?.toString()??"USD",icon:co.default.createElement(Ja,{size:14}),rightSection:l,rightSectionWidth:92,onChange:f})}var Bl=require("@mantine/core"),wt=m(require("react"));function Al(e){let[o,t]=(0,wt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return wt.default.createElement(Bl.Group,{spacing:"xs",grow:!0,noWrap:!0},wt.default.createElement(eo,{name:e.name+".start",placeholder:"Start",defaultValue:o?.start,onChange:a=>r({...o,start:a})}),wt.default.createElement(eo,{name:e.name+".end",placeholder:"End",defaultValue:o?.end,onChange:a=>r({...o,end:a})}))}var it=require("@mantine/core"),st=m(require("react"));function $e(e){let[o,t]=(0,st.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return st.default.createElement(it.Group,{spacing:"xs",grow:!0,noWrap:!0},st.default.createElement(it.NativeSelect,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:o?.comparator,data:["","<","<=",">=",">"],onChange:a=>r({...o,comparator:a.currentTarget.value})}),st.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:Xi(a.currentTarget.value)})}}),st.default.createElement(it.TextInput,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:o?.unit,onChange:a=>r({...o,unit:a.currentTarget.value})}))}function Xi(e){if(e)return parseFloat(e)}var Ml=require("@mantine/core"),Ot=m(require("react"));function Et(e){let[o,t]=(0,Ot.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Ot.default.createElement(Ml.Group,{spacing:"xs",grow:!0,noWrap:!0},Ot.default.createElement($e,{name:e.name+"-low",defaultValue:o?.low,onChange:a=>r({...o,low:a})}),Ot.default.createElement($e,{name:e.name+"-high",defaultValue:o?.high,onChange:a=>r({...o,high:a})}))}var Fl=require("@mantine/core"),Lt=m(require("react"));function wl(e){let[o,t]=(0,Lt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Lt.default.createElement(Fl.Group,{spacing:"xs",grow:!0,noWrap:!0},Lt.default.createElement($e,{name:e.name+"-numerator",defaultValue:o?.numerator,onChange:a=>r({...o,numerator:a})}),Lt.default.createElement($e,{name:e.name+"-denominator",defaultValue:o?.denominator,onChange:a=>r({...o,denominator:a})}))}var Rt=require("@mantine/core"),Ol=require("@medplum/core"),fo=m(require("react"));var Ir=require("@mantine/core"),gr=require("@medplum/core"),Ke=m(require("react"));var Qi={Observation:"code",User:"email:contains"},Ji=["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 $i(e){return{value:(0,gr.getReferenceString)(e),label:(0,gr.getDisplayString)(e),resource:e}}function hr(e){let o=b(),t=e.resourceType,r=ee(e.defaultValue),a=e.onChange,n=(0,Ke.useCallback)(async(l,s)=>{let i=ji(t),u=new URLSearchParams({[i]:l,_count:"10"});return await o.searchResources(t,u,{signal:s})},[o,t]),f=(0,Ke.useCallback)(l=>{a&&a(l[0])},[a]);return e.defaultValue&&!r?null:Ke.default.createElement(rt,{name:e.name,itemComponent:Ki,defaultValue:r,placeholder:e.placeholder,maxSelectedValues:1,toKey:gr.getReferenceString,toOption:$i,loadOptions:n,onChange:f,clearable:!0})}var Ki=(0,Ke.forwardRef)(({label:e,resource:o,...t},r)=>Ke.default.createElement("div",{ref:r,...t},Ke.default.createElement(Ir.Group,{noWrap:!0},Ke.default.createElement(Me,{value:o}),Ke.default.createElement("div",null,Ke.default.createElement(Ir.Text,null,e),Ke.default.createElement(Ir.Text,{size:"xs",color:"dimmed"},o.birthDate)))));function ji(e){return Qi[e]??(Ji.includes(e)?"name":"_id")}function ut(e){let o=_i(e.targetTypes),t=Zi(e.defaultValue,o),[r,a]=(0,fo.useState)(e.defaultValue),[n,f]=(0,fo.useState)(t),l=(0,fo.useRef)();l.current=r;let s=(0,fo.useRef)();s.current=n;function i(u){a(u),e.onChange&&e.onChange(u)}return fo.default.createElement(Rt.Group,{spacing:"xs",grow:!0,noWrap:!0},o?fo.default.createElement(Rt.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}):fo.default.createElement(Rt.TextInput,{"data-autofocus":e.autoFocus,"data-testid":"reference-input-resource-type-input",defaultValue:n,autoFocus:e.autoFocus,onChange:u=>f(u.currentTarget.value)}),fo.default.createElement(hr,{resourceType:n,name:e.name+"-id",placeholder:e.placeholder,defaultValue:r,onChange:u=>{i(u?(0,Ol.createReference)(u):void 0)}}))}function _i(e){if(!(!e||e.length===0||e.length===1&&e[0]==="Resource"))return e}function Zi(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 Wn(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(mo,{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=>{W(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=>{W(n);let f=[...r.current];f.push(void 0),a(f)}},Ie.default.createElement(Ct,null))))))}var ge=require("@mantine/core"),Ll=require("@medplum/core"),j=m(require("react"));var Yi=["sun","mon","tue","wed","thu","fri","sat"];function Xn(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,Ll.formatTiming)(n.current)||"No repeat"),j.default.createElement(ge.Button,{onClick:()=>a(!0)},"Edit")),j.default.createElement(eu,{visible:r,defaultValue:n.current,onOk:f=>{e.onChange&&e.onChange(f),t(f),a(!1)},onCancel:()=>a(!1)}))}var El={repeat:{period:1,periodUnit:"d"}};function eu(e){let[o,t]=(0,j.useState)(e.defaultValue||El),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(Ge,{title:"Starts on",htmlFor:"timing-dialog-start"},j.default.createElement(eo,{name:"timing-dialog-start",onChange:i=>a(i)})),j.default.createElement(ge.Switch,{label:"Repeat",checked:!!o.repeat,onChange:i=>n(i.currentTarget.checked?El.repeat:void 0)}),o.repeat&&j.default.createElement(j.default.Fragment,null,j.default.createElement(Ge,{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(Ge,{title:"Repeat on"},j.default.createElement(ge.Chip.Group,{multiple:!0,onChange:s},j.default.createElement(ge.Group,{position:"apart",mt:"md",spacing:"xs"},Yi.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 mo(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===L.PropertyType.Attachment?U.default.createElement(vn,{name:r,defaultValue:a,onChange:e.onChange}):U.default.createElement(Wn,{property:o,name:r,defaultValue:a,onChange:e.onChange});let n=o.type;return n.length>1?U.default.createElement(Rl,{elementDefinitionTypes:n,...e}):U.default.createElement(Qn,{elementDefinitionType:n[0],...e})}function Rl(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(oo.Group,{spacing:"xs",grow:!0,noWrap:!0},U.default.createElement(oo.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(Qn,{...e,elementDefinitionType:r,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",(0,L.capitalize)(r.code)))}}))}function Qn(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 L.PropertyType.SystemString:case L.PropertyType.canonical:case L.PropertyType.string:case L.PropertyType.time:case L.PropertyType.uri:case L.PropertyType.url:return U.default.createElement(oo.TextInput,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)},error:ke(e.outcome,r)});case L.PropertyType.date:return U.default.createElement(oo.TextInput,{type:"date",id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)},error:ke(e.outcome,r)});case L.PropertyType.dateTime:case L.PropertyType.instant:return U.default.createElement(eo,{name:r,defaultValue:a,onChange:e.onChange,outcome:e.outcome});case L.PropertyType.decimal:case L.PropertyType.integer:case L.PropertyType.positiveInt:case L.PropertyType.unsignedInt:return U.default.createElement(oo.TextInput,{type:"number",step:t===L.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 L.PropertyType.code:return U.default.createElement(nr,{property:o,name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.boolean:return U.default.createElement(oo.Checkbox,{id:r,name:r,"data-testid":r,defaultChecked:!!a,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.checked)}});case L.PropertyType.markdown:return U.default.createElement(oo.Textarea,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)}});case L.PropertyType.Address:return U.default.createElement(Ea,{name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.Annotation:return U.default.createElement(La,{name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.Attachment:return U.default.createElement(fr,{name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.CodeableConcept:return U.default.createElement(Rn,{property:o,name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.Coding:return U.default.createElement(Nn,{property:o,name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.ContactDetail:return U.default.createElement(Hn,{name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.ContactPoint:return U.default.createElement(pr,{name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.Extension:return U.default.createElement(kl,{name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.HumanName:return U.default.createElement(qn,{name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.Identifier:return U.default.createElement(Un,{name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.Money:return U.default.createElement(Gn,{name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.Period:return U.default.createElement(Al,{name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.Duration:case L.PropertyType.Quantity:return U.default.createElement($e,{name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.Range:return U.default.createElement(Et,{name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.Ratio:return U.default.createElement(wl,{name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.Reference:return U.default.createElement(ut,{name:r,defaultValue:a,targetTypes:ou(o),onChange:e.onChange});case L.PropertyType.Timing:return U.default.createElement(Xn,{name:r,defaultValue:a,onChange:e.onChange});case L.PropertyType.Dosage:case L.PropertyType.UsageContext:return U.default.createElement(Mt,{typeName:t,defaultValue:a,onChange:e.onChange,outcome:e.outcome});default:return U.default.createElement(Mt,{typeName:(0,L.getElementDefinitionTypeName)(o),defaultValue:a,onChange:e.onChange,outcome:e.outcome})}}function ou(e){return e?.type?.[0]?.targetProfile?.map(o=>o.split("/").pop())}function Mt(e){let[o,t]=(0,Ao.useState)(e.defaultValue??{});function r(l){t(l),e.onChange&&e.onChange(l)}let a=e.typeName,n=Cr.globalSchema.types[a];if(!n)return Ao.default.createElement("div",null,a,"\xA0not implemented");let f={type:a,value:o};return Ao.default.createElement(Nl.Stack,null,Object.entries(n.properties).map(l=>{let s=l[0];if(s==="id"||jr.includes(s))return null;let i=l[1];if(!i.type)return null;let[u,c]=Ue(f,s),p=i.min!==void 0&&i.min>0;return i.type.length===1&&i.type[0].code==="boolean"?Ao.default.createElement(cr,{key:s,title:(0,Cr.getPropertyDisplayName)(s),description:i.definition,htmlFor:s},Ao.default.createElement(mo,{property:i,name:s,defaultValue:u,defaultPropertyType:c,outcome:e.outcome,onChange:(D,A)=>{r(At(o,s,A??s,l[1],D))}})):Ao.default.createElement(Ge,{key:s,title:(0,Cr.getPropertyDisplayName)(s),description:i.definition,withAsterisk:p,htmlFor:s,outcome:e.outcome},Ao.default.createElement(mo,{property:i,name:s,defaultValue:u,defaultPropertyType:c,onChange:(D,A)=>{r(At(o,s,A??s,l[1],D))}}))}))}var Mo=require("@mantine/core"),fe=m(require("react")),tu=(0,Mo.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 Hl(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function Jn(e){let{classes:o}=tu(),{onChangeMonth:t,onClick:r}=e,[a,n]=(0,fe.useState)(fa);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)(()=>ru(a,e.slots),[a,e.slots]);return fe.default.createElement("div",null,fe.default.createElement(Mo.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},fe.default.createElement("p",{style:{flex:1}},Hl(a)),fe.default.createElement(Mo.Group,{position:"right",spacing:"xs"},fe.default.createElement(Mo.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>f(-1)},"<"),fe.default.createElement(Mo.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,c)=>fe.default.createElement("td",{key:"day-"+c},u&&fe.default.createElement(Mo.Button,{disabled:!u.available,onClick:()=>r(u.date)},u.date.getDate()))))))))}function fa(){let e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}function ru(e,o){let t=new Date(e.getFullYear(),e.getMonth()),r=[],a=[];for(let n=0;n<t.getDay();n++)a.push(void 0);for(;t.getMonth()===e.getMonth();)a.push({date:new Date(t.getTime()),available:au(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 au(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 la=require("@mantine/core"),Vl=m(require("react")),nu=(0,la.createStyles)(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function Fo(e){let{children:o,...t}=e,{classes:r}=nu();return Vl.default.createElement(la.Container,{className:r.root,...t},o)}var Yl=m(require("react"));var le=require("@mantine/core"),Ut=require("@mantine/notifications"),Xo=require("@medplum/core");var C=m(require("react"));var Z=require("@mantine/core"),zo=require("@medplum/core"),g=m(require("react"));var Nt=require("@mantine/core"),$n=m(require("react")),fu=(0,Nt.createStyles)(e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));function Kn({value:e}){let{classes:o}=fu();return e?$n.default.createElement(Nt.Stack,{justify:"flex-start",spacing:"xs"},e.map((t,r)=>t.text&&$n.default.createElement(Nt.Blockquote,{key:`note-${r}`,classNames:{cite:o.noteCite,body:o.noteBody,root:o.noteRoot},cite:t.authorReference?.display||t.authorString,icon:null},t.text))):null}var Ul=require("@mantine/core"),sa=m(require("react"));var ql=require("@mantine/core"),Ht=require("@medplum/core"),yr=m(require("react"));function lo(e){let{value:o,link:t,...r}=e,[a,n]=(0,yr.useState)(),f=ee(o,n),l;if(a&&!(0,Ht.isOk)(a))l=`[${(0,Ht.normalizeErrorString)(a)}]`;else if(f)l=(0,Ht.getDisplayString)(f);else return null;return t?yr.default.createElement(Pe,{to:o,...r},l):yr.default.createElement(ql.Text,{component:"span",...r},l)}function wo(e){return sa.default.createElement(Ul.Group,{spacing:"xs"},sa.default.createElement(Me,{size:24,radius:12,value:e.value,link:e.link}),sa.default.createElement(lo,{value:e.value,link:e.link}))}var Gl=require("@mantine/core"),zl=m(require("react")),lu={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 vr(e){return zl.default.createElement(Gl.Badge,{color:lu[e.status]},e.status)}var Wl=(0,Z.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=b(),t=ee(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(Z.Stack,null,g.default.createElement(Z.Title,null,"Diagnostic Report"),g.default.createElement(su,{value:t}),!e.hideSpecimenInfo&&iu(r),t.result&&g.default.createElement(Xl,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&g.default.createElement(Kn,{value:n}))}function su({value:e}){return g.default.createElement(Z.Group,{mt:"md",spacing:30},e.subject&&g.default.createElement("div",null,g.default.createElement(Z.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),g.default.createElement(Z.Text,null,g.default.createElement(wo,{value:e.subject,link:!0}))),e.resultsInterpreter?.map(o=>g.default.createElement("div",{key:o.reference},g.default.createElement(Z.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),g.default.createElement(Z.Text,null,g.default.createElement(wo,{value:o,link:!0})))),e.performer?.map(o=>g.default.createElement("div",{key:o.reference},g.default.createElement(Z.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Performer"),g.default.createElement(Z.Text,null,g.default.createElement(wo,{value:o,link:!0})))),e.issued&&g.default.createElement("div",null,g.default.createElement(Z.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),g.default.createElement(Z.Text,null,(0,zo.formatDateTime)(e.issued))),e.status&&g.default.createElement("div",null,g.default.createElement(Z.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),g.default.createElement(Z.Text,null,(0,zo.capitalize)(e.status))))}function iu(e){return g.default.createElement(Z.Stack,{spacing:"xs"},g.default.createElement(Z.Title,{order:2,size:"h6"},"Specimens"),g.default.createElement(Z.List,{type:"ordered"},e?.map((o,t)=>g.default.createElement(Z.List.Item,{ml:"sm",key:`specimen-${o.id}-${t}`},g.default.createElement(Z.Group,{spacing:20},g.default.createElement(Z.Group,{spacing:5},g.default.createElement(Z.Text,{fw:500},"Collected:")," ",(0,zo.formatDateTime)(o.collection?.collectedDateTime)),g.default.createElement(Z.Group,{spacing:5},g.default.createElement(Z.Text,{fw:500},"Received:")," ",(0,zo.formatDateTime)(o.receivedTime)))))))}function Xl(e){let{classes:o}=Wl();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,e.value?.map((t,r)=>g.default.createElement(uu,{key:`obs-${t.id}-${r}`,hideObservationNotes:e.hideObservationNotes,value:t}))))}function uu(e){let{classes:o,cx:t}=Wl(),r=ee(e.value);if(!r)return null;let a=!e.hideObservationNotes&&r.note,n=mu(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(Pe,{to:r},g.default.createElement(ft,{value:r.code}))),g.default.createElement("td",null,g.default.createElement(du,{value:r})),g.default.createElement("td",null,g.default.createElement(cu,{value:r.referenceRange})),g.default.createElement("td",null,r.interpretation&&r.interpretation.length>0&&g.default.createElement(ft,{value:r.interpretation[0]})),g.default.createElement("td",null,r.category&&r.category.length>0&&g.default.createElement("ul",null,r.category.map((f,l)=>g.default.createElement("li",{key:`category-${l}`},g.default.createElement(ft,{value:f}))))),g.default.createElement("td",null,r.performer?.map(f=>g.default.createElement(Uo,{key:f.reference,value:f}))),g.default.createElement("td",null,r.status&&g.default.createElement(vr,{status:r.status}))),a&&g.default.createElement("tr",null,g.default.createElement("td",{colSpan:6},g.default.createElement(Kn,{value:r.note}))))}function du(e){let o=e.value;return g.default.createElement(g.default.Fragment,null,(0,zo.formatObservationValue)(o))}function cu(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(sr,{value:o}):null}function mu(e){let o=e.interpretation?.[0]?.coding?.[0]?.code;return o==="AA"||o==="LL"||o==="HH"||o==="A"}var Vt=require("@mantine/core"),Ql=m(require("react")),pu=(0,Vt.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%"}}})),xu={shadow:"xs",radius:"md",withBorder:!0};function dt(e){let{className:o,children:t,width:r,fill:a,unstyled:n,...f}=(0,Vt.useComponentDefaultProps)("Panel",xu,e),{classes:l,cx:s}=pu({width:r,fill:a},{name:"Panel",unstyled:n});return Ql.default.createElement(Vt.Paper,{className:s(l.paper,o),...f},t)}var $l=require("@mantine/core"),Wo=require("@medplum/core"),ce=m(require("react"));var Iu=(0,$l.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 Kl(e){let{classes:o}=Iu(),t=b(),[r,a]=(0,ce.useState)();if((0,ce.useEffect)(()=>{t.requestSchema(e.original.resourceType).then(a).catch(console.log)},[t,e.original.resourceType]),!r)return null;let n=r.types[e.original.resourceType];return n?ce.default.createElement("table",{className:o.root},ce.default.createElement("colgroup",null,ce.default.createElement("col",{style:{width:"30%"}}),ce.default.createElement("col",{style:{width:"35%"}}),ce.default.createElement("col",{style:{width:"35%"}})),ce.default.createElement("thead",null,ce.default.createElement("tr",null,ce.default.createElement("th",null,"Property"),ce.default.createElement("th",null,"Before"),ce.default.createElement("th",null,"After"))),ce.default.createElement("tbody",null,Object.entries(n.properties).map(f=>{let l=f[0];if(l==="id"||l==="meta")return null;let s=f[1],[i,u]=Ue((0,Wo.toTypedValue)(e.original),l),[c,p]=Ue((0,Wo.toTypedValue)(e.revised),l);return Jl(i)&&Jl(c)||(0,Wo.stringify)(i)===(0,Wo.stringify)(c)?null:ce.default.createElement("tr",{key:l},ce.default.createElement("td",null,(0,Wo.getPropertyDisplayName)(l)),ce.default.createElement("td",{className:o.removed},ce.default.createElement(Te,{property:s,propertyType:u,value:i,ignoreMissingValues:!0})),ce.default.createElement("td",{className:o.added},ce.default.createElement(Te,{property:s,propertyType:p,value:c,ignoreMissingValues:!0})))}))):null}function Jl(e){return!e||Array.isArray(e)&&e.length===0||typeof e=="object"&&Object.keys(e).length===0}var qt=m(require("react"));function ua(e){let o=b(),t=ee(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(kt,{value:{type:t.resourceType,value:e.forceUseInput?e.value:t},ignoreMissingValues:e.ignoreMissingValues})}var so=require("@mantine/core"),da=require("@medplum/core");var ye=m(require("react"));function jn(e){return ye.default.createElement(Fo,null,e.children)}function Oo(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(dt,{"data-testid":"timeline-item",fill:!0,...n},ye.default.createElement(so.Group,{position:"apart",spacing:8,mx:"xs",my:"sm"},ye.default.createElement(Me,{value:f,link:!0,size:"md"}),ye.default.createElement("div",{style:{flex:1}},ye.default.createElement(so.Text,{size:"sm"},ye.default.createElement(lo,{color:"dark",weight:500,value:f,link:!0})),ye.default.createElement(so.Text,{size:"xs"},ye.default.createElement(Pe,{color:"dimmed",to:e.resource},(0,da.formatDateTime)(l)),ye.default.createElement(so.Text,{component:"span",color:"dimmed",mx:8},"\xB7"),ye.default.createElement(Pe,{color:"dimmed",to:e.resource},e.resource.resourceType))),a&&ye.default.createElement(so.Menu,{position:"bottom-end",shadow:"md",width:200},ye.default.createElement(so.Menu.Target,null,ye.default.createElement(so.ActionIcon,{radius:"xl","aria-label":`Actions for ${(0,da.getReferenceString)(e.resource)}`},ye.default.createElement($a,null))),a)),ye.default.createElement(ot,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 _n(e,o){e.sort((t,r)=>{let a=jl(t,o),n=jl(r,o);return a>n?1:a<n?-1:_l(t,o)-_l(r,o)})}function jl(e,o){if(!Zl(e,o)){let t=e.priority;if(typeof t=="string")return{stat:4,asap:3,urgent:2}[t]??0}return 0}function _l(e,o){if(!Zl(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 Zl(e,o){return!!o&&e.resourceType===o.resourceType&&e.id===o.id}var gu=(0,le.createStyles)(e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}}));function Eo(e){let o=b(),t=yo(),r=o.getProfile(),a=(0,C.useRef)(null),n=ee(e.value),[f,l]=(0,C.useState)(),[s,i]=(0,C.useState)([]),u=e.loadTimelineResources,c=(0,C.useRef)(s);c.current=s;let p=(0,C.useCallback)(h=>{_n(h,n),h.reverse(),i(h)},[n]),D=(0,C.useCallback)(h=>{let q=[];for(let Ho of h){if(Ho.status!=="fulfilled")continue;let S=Ho.value;if(S.type==="history"&&l(S),S.entry)for(let re of S.entry)q.push(re.resource)}p(q)},[p]),A=(0,C.useCallback)(h=>p([...c.current,h]),[p]),B=(0,C.useCallback)(()=>{let h,q;"resourceType"in e.value?(h=e.value.resourceType,q=e.value.id):[h,q]=e.value.reference?.split("/"),u(o,h,q).then(D).catch(console.log)},[o,e.value,u,D]);(0,C.useEffect)(()=>B(),[B]);function y(h){!n||!e.createCommunication||o.createResource(e.createCommunication(n,r,h)).then(q=>A(q)).catch(console.log)}function T(h){!n||!e.createMedia||o.createResource(e.createMedia(n,r,h)).then(q=>A(q)).then(()=>(0,Ut.updateNotification)({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:C.default.createElement(za,{size:16}),autoClose:2e3})).catch(q=>(0,Ut.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,Xo.normalizeErrorString)(q),icon:C.default.createElement(ja,{size:16}),autoClose:2e3}))}function d(h,q){return o.updateResource({...h,priority:q})}function H(h){d(h,"stat").then(B).catch(console.log)}function P(h){d(h,"routine").then(B).catch(console.log)}function R(h){t(`/${h.resourceType}/${h.id}`)}function Re(h){t(`/${h.resourceType}/${h.id}/edit`)}function he(h){t(`/${h.resourceType}/${h.id}/delete`)}function Ne(h){t(`/${h.resourceType}/${h.id}/_history/${h.meta?.versionId}`)}function He(){(0,Ut.showNotification)({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})}function to(h){(0,Ut.updateNotification)({id:"upload-notification",loading:!0,title:"Uploading...",message:bu(h),autoClose:!1,withCloseButton:!1})}return n?C.default.createElement(jn,null,e.createCommunication&&C.default.createElement(dt,null,C.default.createElement(ne,{testid:"timeline-form",onSubmit:h=>{y(h.text);let q=a.current;q&&(q.value="",q.focus())}},C.default.createElement(le.Group,{spacing:"xs",noWrap:!0,style:{width:"100%"}},C.default.createElement(Me,{value:r}),C.default.createElement(le.TextInput,{name:"text",ref:a,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),C.default.createElement(le.ActionIcon,{type:"submit",radius:"xl",color:"blue",variant:"filled"},C.default.createElement(on,{size:16})),C.default.createElement(nt,{onUpload:T,onUploadStart:He,onUploadProgress:to},h=>C.default.createElement(le.ActionIcon,{...h,radius:"xl",color:"blue",variant:"filled"},C.default.createElement(Yt,{size:16})))))),s.map(h=>{if(!h)return null;let q=`${h.resourceType}/${h.id}/${h.meta?.versionId}`;if(h.resourceType===n.resourceType&&h.id===n.id)return C.default.createElement(hu,{key:q,history:f,resource:h,onDetails:Ne});switch(h.resourceType){case"AuditEvent":return C.default.createElement(Su,{key:q,resource:h,onDetails:R});case"Communication":return C.default.createElement(yu,{key:q,resource:h,onPin:h.priority!=="stat"?H:void 0,onUnpin:h.priority==="stat"?P:void 0,onDetails:R,onEdit:Re,onDelete:he});case"DiagnosticReport":return C.default.createElement(Pu,{key:q,resource:h,onDetails:R,onEdit:Re,onDelete:he});case"Media":return C.default.createElement(vu,{key:q,resource:h,onDetails:R,onEdit:Re,onDelete:he});default:return C.default.createElement(Oo,{key:q,resource:h,padding:!0},C.default.createElement(ua,{value:h,ignoreMissingValues:!0}))}})):C.default.createElement(le.Center,{style:{width:"100%",height:"100%"}},C.default.createElement(le.Loader,null))}function Gt(e){return C.default.createElement(le.Menu.Dropdown,null,C.default.createElement(le.Menu.Label,null,"Resource"),e.onPin&&C.default.createElement(le.Menu.Item,{icon:C.default.createElement(tn,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${(0,Xo.getReferenceString)(e.resource)}`},"Pin"),e.onUnpin&&C.default.createElement(le.Menu.Item,{icon:C.default.createElement(rn,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${(0,Xo.getReferenceString)(e.resource)}`},"Unpin"),e.onDetails&&C.default.createElement(le.Menu.Item,{icon:C.default.createElement(Ya,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${(0,Xo.getReferenceString)(e.resource)}`},"Details"),e.onEdit&&C.default.createElement(le.Menu.Item,{icon:C.default.createElement(Ka,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${(0,Xo.getReferenceString)(e.resource)}`},"Edit"),e.onDelete&&C.default.createElement(C.default.Fragment,null,C.default.createElement(le.Menu.Divider,null),C.default.createElement(le.Menu.Label,null,"Danger zone"),C.default.createElement(le.Menu.Item,{color:"red",icon:C.default.createElement(tr,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${(0,Xo.getReferenceString)(e.resource)}`},"Delete")))}function hu(e){let o=Cu(e.history,e.resource);return o?C.default.createElement(Oo,{resource:e.resource,padding:!0,popupMenuItems:C.default.createElement(Gt,{...e})},C.default.createElement(Kl,{original:o,revised:e.resource})):C.default.createElement(Oo,{resource:e.resource,padding:!0,popupMenuItems:C.default.createElement(Gt,{...e})},C.default.createElement("h3",null,"Created"),C.default.createElement(ua,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0}))}function Cu(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 yu(e){let{classes:o}=gu(),r=!e.resource.priority||e.resource.priority==="routine"?void 0:o.pinnedComment;return C.default.createElement(Oo,{resource:e.resource,profile:e.resource.sender,dateTime:e.resource.sent,padding:!0,className:r,popupMenuItems:C.default.createElement(Gt,{...e})},C.default.createElement("p",null,e.resource.payload?.[0]?.contentString))}function vu(e){let o=e.resource.content?.contentType,t=o&&!o.startsWith("image/")&&!o.startsWith("video/")&&o!=="application/pdf";return C.default.createElement(Oo,{resource:e.resource,padding:!!t,popupMenuItems:C.default.createElement(Gt,{...e})},C.default.createElement(ao,{value:e.resource.content}))}function Su(e){return C.default.createElement(Oo,{resource:e.resource,padding:!0,popupMenuItems:C.default.createElement(Gt,{...e})},C.default.createElement(le.ScrollArea,null,C.default.createElement("pre",null,e.resource.outcomeDesc)))}function Pu(e){return C.default.createElement(Oo,{resource:e.resource,padding:!0,popupMenuItems:C.default.createElement(Gt,{...e})},C.default.createElement(ia,{value:e.resource}))}function bu(e){if(e.lengthComputable){let o=100*e.loaded/e.total;return`Uploaded: ${Zn(e.loaded)} / ${Zn(e.total)} ${o.toFixed(2)}%`}return`Uploaded: ${Zn(e.loaded)}`}function Zn(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 Du(e){return Yl.default.createElement(Eo,{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 Yn=m(require("react"));function Sr(e){let{children:o,...t}=e;return Yn.default.createElement(Fo,null,Yn.default.createElement(dt,{...t},o))}var Pr=require("@medplum/core"),es=m(require("react"));function Tu(e){return es.default.createElement(Eo,{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,Pr.createReference)(o),subject:o.subject,sender:(0,Pr.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",encounter:(0,Pr.createReference)(o),subject:o.subject,operator:(0,Pr.createReference)(t),issued:new Date().toISOString(),content:r})})}var Jt=require("@mantine/core"),ms=require("@medplum/core"),_=m(require("react"));var os=require("@medplum/core"),ts=m(require("react"));function rs(e){let o;try{o=(0,os.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 ts.default.createElement(Te,{value:o[0]||"",propertyType:e.propertyType})}var Q=require("@mantine/core"),_o=require("@medplum/core");var v=m(require("react"));var Qo=require("@mantine/core"),ct=m(require("react"));function ns(e){return ct.default.createElement(Qo.Modal,{title:"Export",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},ct.default.createElement(Qo.Box,{display:"flex",sx:{justifyContent:"space-between"}},e.exportCsv&&ct.default.createElement(as,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&ct.default.createElement(as,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})),ct.default.createElement(Qo.Text,{sx:{marginTop:"10px",marginLeft:"2px"}},"Limited to 1000 records"))}function as(e){return ct.default.createElement(Qo.Button,{onClick:()=>{e.exportLogic(),e.onCancel()}},`Export as ${e.text}`)}var Jo=require("@mantine/core"),xa=require("@medplum/core"),z=m(require("react"));var k=require("@medplum/core"),br=m(require("react"));var ku={string:[k.Operator.EQUALS,k.Operator.NOT,k.Operator.CONTAINS,k.Operator.EXACT],fulltext:[k.Operator.EQUALS,k.Operator.NOT,k.Operator.CONTAINS,k.Operator.EXACT],token:[k.Operator.EQUALS,k.Operator.NOT],reference:[k.Operator.EQUALS,k.Operator.NOT],numeric:[k.Operator.EQUALS,k.Operator.NOT_EQUALS,k.Operator.GREATER_THAN,k.Operator.LESS_THAN,k.Operator.GREATER_THAN_OR_EQUALS,k.Operator.LESS_THAN_OR_EQUALS],quantity:[k.Operator.EQUALS,k.Operator.NOT_EQUALS,k.Operator.GREATER_THAN,k.Operator.LESS_THAN,k.Operator.GREATER_THAN_OR_EQUALS,k.Operator.LESS_THAN_OR_EQUALS],date:[k.Operator.EQUALS,k.Operator.NOT_EQUALS,k.Operator.GREATER_THAN,k.Operator.LESS_THAN,k.Operator.GREATER_THAN_OR_EQUALS,k.Operator.LESS_THAN_OR_EQUALS,k.Operator.STARTS_AFTER,k.Operator.ENDS_BEFORE,k.Operator.APPROXIMATELY],datetime:[k.Operator.EQUALS,k.Operator.NOT_EQUALS,k.Operator.GREATER_THAN,k.Operator.LESS_THAN,k.Operator.GREATER_THAN_OR_EQUALS,k.Operator.LESS_THAN_OR_EQUALS,k.Operator.STARTS_AFTER,k.Operator.ENDS_BEFORE,k.Operator.APPROXIMATELY]},Bu={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 zt(e,o){return{...e,filters:o,offset:0,name:void 0}}function Au(e){return zt(e,[])}function Dr(e,o){return zt(e,(e.filters??[]).filter(t=>t.code!==o))}function mt(e,o,t,r,a){a&&(e=Dr(e,o));let n=[];return e.filters&&n.push(...e.filters),n.push({code:o,operator:t,value:r??""}),zt(e,n)}function Mu(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 ef(e,o){if(!e.filters)return e;let t=[...e.filters];return t.splice(o,1),{...e,filters:t,name:void 0}}function of(e,o){return af(e,o,-1)}function tf(e,o){return af(e,o,0)}function rf(e,o){return af(e,o,1)}function af(e,o,t){let r=new Date;r.setDate(r.getDate()+t),r.setHours(0,0,0,0);let a=new Date(r.getTime());return a.setDate(a.getDate()+1),a.setTime(a.getTime()-1),ca(e,o,r,a)}function nf(e,o){return sf(e,o,-1)}function ff(e,o){return sf(e,o,0)}function lf(e,o){return sf(e,o,1)}function sf(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),ca(e,o,r,a)}function uf(e,o){let t=new Date;return t.setMonth(0),t.setDate(1),t.setHours(0,0,0,0),ca(e,o,t,new Date)}function ca(e,o,t,r){return e=Dr(e,o),e=fs(e,o,k.Operator.GREATER_THAN_OR_EQUALS,t),e=fs(e,o,k.Operator.LESS_THAN_OR_EQUALS,r),e}function fs(e,o,t,r){return mt(e,o,t,r.toISOString())}function ma(e,o,t=!0){return mt(e,o,k.Operator.MISSING,t.toString())}function ls(e,o){return e.offset===o?e:{...e,offset:o,name:void 0}}function df(e,o){let t=e.count??k.DEFAULT_SEARCH_COUNT,r=(o-1)*t;return ls(e,r)}function pa(e,o,t){return o===cf(e)&&t!==void 0&&t===mf(e)?e:{...e,sortRules:[{code:o,descending:!!t}],name:void 0}}function Fu(e,o){let t=!1;return cf(e)===o&&(t=!mf(e)),pa(e,o,t)}function cf(e){let o=e.sortRules;if(!o||o.length===0)return;let t=o[0].code;return t.startsWith("-")?t.substr(1):t}function mf(e){let o=e.sortRules;return!o||o.length===0?!1:!!o[0].descending}function pf(e){return ku[e.type]}function Wt(e){return Bu[e]??""}function we(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(k.capitalize).join(" "))}function xf(e,o){let t=o.name;return t==="id"?e.id:t==="meta.versionId"?e.meta?.versionId:t==="_lastUpdated"?(0,k.formatDateTime)(e.meta?.lastUpdated):o.elementDefinition&&`${e.resourceType}.${o.name}`===o.elementDefinition.path?wu(e,o.elementDefinition):o.searchParams&&o.searchParams.length===1&&o.name===o.searchParams[0].code?Ou(e,o.searchParams[0]):null}function wu(e,o){let t=o.path?.split(".")?.pop()?.replaceAll("[x]","")??"",[r,a]=Ue({type:e.resourceType,value:e},t);return r?br.default.createElement(Te,{property:o,propertyType:a,value:r,maxWidth:200,ignoreMissingValues:!0,link:!1}):null}function Ou(e,o){let t=(0,k.evalFhirPathTyped)(o.expression,[{type:e.resourceType,value:e}]);return!t||t.length===0?null:br.default.createElement(br.default.Fragment,null,t.map((r,a)=>br.default.createElement(Te,{key:`${a}-${t.length}`,propertyType:r.type,value:r.value,maxWidth:200,ignoreMissingValues:!0,link:!1})))}function If(e){let[o,t]=(0,z.useState)({search:JSON.parse((0,xa.stringify)(e.search))}),r=(0,z.useRef)(null),a=(0,z.useRef)(null);(0,z.useEffect)(()=>{t({search:e.search})},[e.search]);function n(d){d.key==="Enter"&&i()}function f(){i()}function l(d){d.key==="Enter"&&u()}function s(){u()}function i(){let d=o.search.fields??[],H=r.current?.value;if(H){let P=[...d,H];t({search:{...o.search,fields:P}})}}function u(){let d=o.search.fields??[],H=a.current?.value;if(H){let P=[...d];P.splice(P.indexOf(H),1),t({search:{...o.search,fields:P}})}}function c(){let d=o.search.fields??[],H=a.current?.value;if(!H)return;let P=[...d],R=P.indexOf(H);R<=0||(D(P,R,R-1),t({search:{...o.search,fields:P}}))}function p(){let d=o.search.fields??[],H=a.current?.value;if(!H)return;let P=[...d],R=P.indexOf(H);R>=P.length-1||(D(P,R,R+1),t({search:{...o.search,fields:P}}))}function D(d,H,P){let R=d[H];d[H]=d[P],d[P]=R}if(!e.visible)return null;let A=e.search.resourceType,B=xa.globalSchema.types[A],y=o.search.fields??[],T=Eu(B).filter(d=>!y.includes(d)).sort((d,H)=>d.localeCompare(H));return z.default.createElement(Jo.Modal,{title:"Fields",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},z.default.createElement("div",null,z.default.createElement("table",{style:{margin:"auto"}},z.default.createElement("thead",null,z.default.createElement("tr",null,z.default.createElement("th",{colSpan:2,align:"center"},"Available"),z.default.createElement("th",{colSpan:2,align:"center"},"Selected"))),z.default.createElement("tbody",null,z.default.createElement("tr",null,z.default.createElement("td",{colSpan:2,align:"center"},z.default.createElement("select",{ref:r,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:d=>n(d),onDoubleClick:()=>f(),"data-testid":"available"},T.map(d=>z.default.createElement("option",{key:d,value:d},we(d))))),z.default.createElement("td",{colSpan:2,align:"center"},z.default.createElement("select",{ref:a,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:d=>l(d),onDoubleClick:()=>s(),"data-testid":"selected"},y.map(d=>z.default.createElement("option",{key:d,value:d},we(d))))))),z.default.createElement("tfoot",null,z.default.createElement("tr",null,z.default.createElement("td",{align:"center"},z.default.createElement(Jo.Button,{compact:!0,variant:"outline",onClick:i},"Add")),z.default.createElement("td",{align:"center"},z.default.createElement(Jo.Button,{compact:!0,variant:"outline",onClick:u},"Remove")),z.default.createElement("td",{align:"center"},z.default.createElement(Jo.Button,{compact:!0,variant:"outline",onClick:c},"Up")),z.default.createElement("td",{align:"center"},z.default.createElement(Jo.Button,{compact:!0,variant:"outline",onClick:p},"Down")))))),z.default.createElement(Jo.Button,{onClick:()=>e.onOk(o.search)},"OK"))}function Eu(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(we(a));if(e.searchParams)for(let a of Object.keys(e.searchParams)){let n=we(a);!t.has(a)&&!r.has(n)&&(o.push(a),t.add(a),r.add(we(a)))}return o}var je=require("@mantine/core"),Tr=require("@medplum/core"),F=m(require("react"));var io=require("@medplum/core"),Xt=m(require("react"));function Ia(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 Xt.default.createElement(lo,{value:{reference:t.value}});let a=(0,io.getSearchParameterDetails)(o,r);if(t.code==="_lastUpdated"||a.type===io.SearchParameterType.DATETIME)return Xt.default.createElement(Xt.default.Fragment,null,(0,io.formatDateTime)(t.value))}return Xt.default.createElement(Xt.default.Fragment,null,t.value)}var Qt=require("@mantine/core"),Lo=require("@medplum/core"),$o=m(require("react"));function ga(e){let o=(0,Lo.getSearchParameterDetails)(e.resourceType,e.searchParam),t="filter-value";switch(o.type){case Lo.SearchParameterType.REFERENCE:return $o.default.createElement(ut,{name:t,defaultValue:{reference:e.defaultValue},targetTypes:e.searchParam.target,autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(r.reference):e.onChange("")}});case Lo.SearchParameterType.BOOLEAN:return $o.default.createElement(Qt.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 Lo.SearchParameterType.DATE:return $o.default.createElement(Qt.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 Lo.SearchParameterType.DATETIME:return $o.default.createElement(eo,{name:t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:e.onChange});case Lo.SearchParameterType.NUMBER:return $o.default.createElement(Qt.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 Lo.SearchParameterType.QUANTITY:return $o.default.createElement($e,{name:t,defaultValue:Lu(e.defaultValue),autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(`${r.value}`):e.onChange("")}});default:return $o.default.createElement(Qt.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 Lu(e){if(e){let[o,t,r]=e.split("|");if(o)return{value:parseFloat(o),system:t,unit:r}}}function gf(e){let[o,t]=(0,F.useState)(JSON.parse((0,Tr.stringify)(e.search))),[r,a]=(0,F.useState)(-1),n=(0,F.useRef)(o);n.current=o,(0,F.useEffect)(()=>{t(JSON.parse((0,Tr.stringify)(e.search)))},[e.search]);function f(u){t(mt(n.current,u.code,u.operator,u.value))}if(!e.visible)return null;let l=e.search.resourceType,s=Tr.globalSchema.types[l].searchParams??{},i=o.filters||[];return F.default.createElement(je.Modal,{title:"Filters",closeButtonProps:{"aria-label":"Close"},size:900,opened:e.visible,onClose:e.onCancel},F.default.createElement("div",null,F.default.createElement("table",null,F.default.createElement("colgroup",null,F.default.createElement("col",{style:{width:200}}),F.default.createElement("col",{style:{width:200}}),F.default.createElement("col",{style:{width:380}}),F.default.createElement("col",{style:{width:120}})),F.default.createElement("thead",null,F.default.createElement("tr",null,F.default.createElement("th",null,"Field"),F.default.createElement("th",null,"Operation"),F.default.createElement("th",null,"Value"),F.default.createElement("th",null,"Actions"))),F.default.createElement("tbody",null,i.map((u,c)=>c===r?F.default.createElement(ss,{key:`filter-${c}-${i.length}-input`,resourceType:l,searchParams:s,defaultValue:u,okText:"Save",onOk:p=>{let D=[...i];D[c]=p,t(zt(n.current,D)),a(-1)},onCancel:()=>a(-1)}):F.default.createElement(Ru,{key:`filter-${c}-${i.length}-display`,resourceType:l,searchParams:s,filter:u,onEdit:()=>a(c),onDelete:()=>t(ef(n.current,c))})),F.default.createElement(ss,{resourceType:l,searchParams:s,okText:"Add",onOk:f})))),F.default.createElement(je.Group,{position:"right",mt:"xl"},F.default.createElement(je.Button,{onClick:()=>e.onOk(n.current)},"OK")))}function Ru(e){let{filter:o}=e;return F.default.createElement("tr",null,F.default.createElement("td",null,we(o.code)),F.default.createElement("td",null,Wt(o.operator)),F.default.createElement("td",null,F.default.createElement(Ia,{resourceType:e.resourceType,filter:o})),F.default.createElement("td",null,F.default.createElement(je.Button,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),F.default.createElement(je.Button,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function ss(e){let[o,t]=(0,F.useState)(e.defaultValue??{}),r=(0,F.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 F.default.createElement("tr",null,F.default.createElement("td",null,F.default.createElement(je.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:we(i)}))})),F.default.createElement("td",null,s&&F.default.createElement(je.NativeSelect,{"data-testid":"filter-operation",defaultValue:o.operator,onChange:i=>n(i.currentTarget.value),data:["",...s.map(i=>({value:i,label:Wt(i)}))]})),F.default.createElement("td",null,l&&o.operator&&F.default.createElement(ga,{resourceType:e.resourceType,searchParam:l,defaultValue:o.value,onChange:f})),F.default.createElement("td",null,o.code&&o.operator&&o.value&&F.default.createElement(je.Button,{compact:!0,variant:"outline",onClick:()=>{e.onOk(r.current),t({})}},e.okText),e.onCancel&&F.default.createElement(je.Button,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}var Ko=require("@mantine/core"),po=m(require("react"));function is(e){let[o,t]=(0,po.useState)(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function r(){e.onOk({...e.filter,value:o})}return po.default.createElement(Ko.Modal,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},po.default.createElement(ne,{onSubmit:r},po.default.createElement(Ko.Grid,null,po.default.createElement(Ko.Grid.Col,{span:10},po.default.createElement(ga,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:o,autoFocus:!0,onChange:t})),po.default.createElement(Ko.Grid.Col,{span:2},po.default.createElement(Ko.Button,{onClick:r,fullWidth:!0},"OK")))))}var M=require("@mantine/core"),be=require("@medplum/core");var x=m(require("react"));function us(e){if(!e.searchParams)return null;function o(n,f){a(pa(e.search,n.code,f))}function t(n){a(Dr(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(Nu,{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},we(n.code))))}function Nu(e){switch(e.searchParam.type){case"date":return x.default.createElement(Hu,{...e});case"number":case"quantity":return x.default.createElement(Vu,{...e});case"reference":return x.default.createElement(qu,{...e});case"string":case"token":case"uri":return x.default.createElement(Uu,{...e});default:return x.default.createElement(x.default.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function Hu(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(er,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Oldest to Newest"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(or,{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(vt,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.EQUALS)},"Equals..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(yt,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.NOT_EQUALS)},"Does not equal..."),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Rr,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.ENDS_BEFORE)},"Before..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Lr,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.STARTS_AFTER)},"After..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(qa,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.EQUALS)},"Between..."),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(vo,{size:14}),onClick:()=>e.onChange(rf(e.search,t))},"Tomorrow"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(vo,{size:14}),onClick:()=>e.onChange(tf(e.search,t))},"Today"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(vo,{size:14}),onClick:()=>e.onChange(of(e.search,t))},"Yesterday"),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(vo,{size:14}),onClick:()=>e.onChange(lf(e.search,t))},"Next Month"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(vo,{size:14}),onClick:()=>e.onChange(ff(e.search,t))},"This Month"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(vo,{size:14}),onClick:()=>e.onChange(nf(e.search,t))},"Last Month"),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(vo,{size:14}),onClick:()=>e.onChange(uf(e.search,t))},"Year to date"),x.default.createElement(ha,{...e}))}function Vu(e){let{searchParam:o}=e;return x.default.createElement(M.Menu.Dropdown,null,x.default.createElement(M.Menu.Item,{icon:x.default.createElement(er,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Smallest to Largest"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(or,{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(vt,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.EQUALS)},"Equals..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(yt,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.NOT_EQUALS)},"Does not equal..."),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Lr,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.GREATER_THAN)},"Greater than..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(St,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Rr,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.LESS_THAN)},"Less than..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(St,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),x.default.createElement(ha,{...e}))}function qu(e){let{searchParam:o}=e;return x.default.createElement(M.Menu.Dropdown,null,x.default.createElement(M.Menu.Item,{icon:x.default.createElement(vt,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.EQUALS)},"Equals..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(yt,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.NOT)},"Does not equal..."),x.default.createElement(ha,{...e}))}function Uu(e){let{searchParam:o}=e;return x.default.createElement(M.Menu.Dropdown,null,x.default.createElement(M.Menu.Item,{icon:x.default.createElement(er,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort A to Z"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(or,{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(vt,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.EQUALS)},"Equals..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(yt,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.NOT)},"Does not equal..."),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Ga,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.CONTAINS)},"Contains..."),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Ua,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.EQUALS)},"Does not contain..."),x.default.createElement(ha,{...e}))}function ha(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(Ha,{size:14}),onClick:()=>e.onChange(ma(e.search,t))},"Missing"),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(Na,{size:14}),onClick:()=>e.onChange(ma(e.search,t,!1))},"Not missing"),x.default.createElement(M.Menu.Divider,null),x.default.createElement(M.Menu.Item,{icon:x.default.createElement(un,{size:14}),onClick:()=>e.onClear(o)},"Clear filters"))}var Ca=require("@medplum/core");function ds(e){let o=e.resourceType,t=[];for(let r of e.fields||["id","_lastUpdated"])t.push(Gu(o,r));return t}function Gu(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=Ca.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,Ca.getSearchParameterDetails)(e,a);return{name:o,elementDefinition:n.elementDefinitions?.[0],searchParams:[a]}}return{name:o}}var ya=class extends Event{constructor(t){super("change");this.definition=t}},va=class extends Event{constructor(t){super("load");this.response=t}},jo=class extends Event{constructor(t,r){super("click");this.resource=t,this.browserEvent=r}},zu=(0,Q.createStyles)(e=>({root:{maxWidth:"100%",overflow:"auto",textAlign:"left",marginBottom:"20px"},table:{cursor:"pointer"},tr:{"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[7]:e.colors.gray[0]}},th:{padding:"0 !important"},control:{width:"100%",padding:`${e.spacing.xs} ${e.spacing.md}`,"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[6]:e.colors.gray[0]}},icon:{width:21,height:21,borderRadius:21}}));function cs(e){let{classes:o}=zu(),t=b(),[r,a]=(0,v.useState)(!1),[n,f]=(0,v.useState)(),{search:l,onLoad:s}=e,[i,u]=(0,v.useState)({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,exportDialogVisible:!1,filterDialogVisible:!1}),c=(0,v.useRef)(i);c.current=i;let p=l.total??"accurate";(0,v.useEffect)(()=>{f(void 0),t.search(l.resourceType,(0,_o.formatSearchQuery)({...l,total:p,fields:void 0})).then(S=>{u({...c.current,searchResponse:S}),s&&s(new va(S))}).catch(S=>{u({...c.current,searchResponse:void 0}),f(S)})},[t,l,p,s]);function D(S,re){S.stopPropagation();let It=S.target.checked,Ce={...c.current.selected};It?Ce[re]=!0:delete Ce[re],u({...c.current,selected:Ce})}function A(S){S.stopPropagation();let xt=S.target.checked,It={},Ce=c.current.searchResponse;xt&&Ce?.entry&&Ce.entry.forEach(Fe=>{Fe.resource?.id&&(It[Fe.resource.id]=!0)}),u({...c.current,selected:It})}function B(){let S=c.current;if(!S.searchResponse?.entry||S.searchResponse.entry.length===0)return!1;for(let re of S.searchResponse.entry)if(re.resource?.id&&!S.selected[re.resource.id])return!1;return!0}function y(S){e.onChange&&e.onChange(new ya(S))}function T(S,re){qr(S.target)||S.button!==2&&(W(S),S.button!==1&&e.onClick&&e.onClick(new jo(re,S)),S.button===1&&e.onAuxClick&&e.onAuxClick(new jo(re,S)))}function d(){return!!(e.onExport??e.onExportCsv??e.onExportTransactionBundle)}if((0,v.useEffect)(()=>{a(!1),t.requestSchema(e.search.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.search.resourceType]),!(r&&_o.globalSchema.types[e.search.resourceType]))return v.default.createElement(Q.Center,{style:{width:"100%",height:"100%"}},v.default.createElement(Q.Loader,null));let P=e.checkboxesEnabled,R=ds(l),Re=l.resourceType,he=i.searchResponse,He=he?.entry?.map(S=>S.resource),to="subtle",h="gray",q=16,Ho=window.innerWidth<768;return v.default.createElement("div",{className:o.root,"data-testid":"search-control"},!e.hideToolbar&&v.default.createElement(Q.Group,{position:"apart",mb:"xl"},v.default.createElement(Q.Group,{spacing:2},v.default.createElement(Q.Button,{compact:!0,variant:to,color:h,leftIcon:v.default.createElement(Qa,{size:q}),onClick:()=>u({...c.current,fieldEditorVisible:!0})},"Fields"),v.default.createElement(Q.Button,{compact:!0,variant:to,color:h,leftIcon:v.default.createElement(Za,{size:q}),onClick:()=>u({...c.current,filterEditorVisible:!0})},"Filters"),e.onNew&&v.default.createElement(Q.Button,{compact:!0,variant:to,color:h,leftIcon:v.default.createElement(_a,{size:q}),onClick:e.onNew},"New..."),!Ho&&d()&&v.default.createElement(Q.Button,{compact:!0,variant:to,color:h,leftIcon:v.default.createElement(sn,{size:q}),onClick:e.onExport?e.onExport:()=>u({...c.current,exportDialogVisible:!0})},"Export..."),!Ho&&e.onDelete&&v.default.createElement(Q.Button,{compact:!0,variant:to,color:h,leftIcon:v.default.createElement(tr,{size:q}),onClick:()=>e.onDelete(Object.keys(i.selected))},"Delete..."),!Ho&&e.onBulk&&v.default.createElement(Q.Button,{compact:!0,variant:to,color:h,leftIcon:v.default.createElement(Va,{size:q}),onClick:()=>e.onBulk(Object.keys(i.selected))},"Bulk...")),he&&v.default.createElement(Q.Text,{size:"xs",color:"dimmed"},$u(l,he.total),"-",Ku(l,he.total)," of"," ",`${p==="estimate"?"~":""}${he.total?.toLocaleString()}`)),v.default.createElement(Q.Table,{className:o.table},v.default.createElement("thead",null,v.default.createElement("tr",null,P&&v.default.createElement("th",null,v.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:B(),onChange:S=>A(S)})),R.map(S=>v.default.createElement("th",{key:S.name},v.default.createElement(Q.Menu,{shadow:"md",width:240,position:"bottom-end"},v.default.createElement(Q.Menu.Target,null,v.default.createElement(Q.UnstyledButton,{className:o.control},v.default.createElement(Q.Group,{position:"apart",noWrap:!0},v.default.createElement(Q.Text,{weight:500,size:"sm"},we(S.name)),v.default.createElement(Q.Center,{className:o.icon},v.default.createElement(Ra,{size:14,stroke:1.5}))))),v.default.createElement(us,{search:e.search,searchParams:S.searchParams,onPrompt:(re,xt)=>{u({...c.current,filterDialogVisible:!0,filterDialogSearchParam:re,filterDialogFilter:xt})},onChange:re=>{y(re)}}))))),!e.hideFilters&&v.default.createElement("tr",null,P&&v.default.createElement("th",null),R.map(S=>v.default.createElement("th",{key:S.name},S.searchParams&&v.default.createElement(Xu,{resourceType:Re,searchParams:S.searchParams,filters:e.search.filters}))))),v.default.createElement("tbody",null,He?.map(S=>S&&v.default.createElement("tr",{key:S.id,className:o.tr,"data-testid":"search-control-row",onClick:re=>T(re,S),onAuxClick:re=>T(re,S)},P&&v.default.createElement("td",null,v.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${S.id}`,checked:!!i.selected[S.id],onChange:re=>D(re,S.id)})),R.map(re=>v.default.createElement("td",{key:re.name},xf(S,re))))))),He?.length===0&&v.default.createElement(Fo,null,v.default.createElement(Q.Center,{style:{height:150}},v.default.createElement(Q.Text,{size:"xl",color:"dimmed"},"No results"))),he?.total!==void 0&&he.total>0&&v.default.createElement(Q.Center,{m:"md",p:"md"},v.default.createElement(Q.Pagination,{value:Qu(l),total:Ju(l,he.total),onChange:S=>y(df(l,S)),getControlProps:S=>{switch(S){case"previous":return{"aria-label":"Previous page"};case"next":return{"aria-label":"Next page"};default:return{}}}})),n&&v.default.createElement("div",{"data-testid":"search-error"},v.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(n,void 0,2))),v.default.createElement(If,{search:e.search,visible:c.current.fieldEditorVisible,onOk:S=>{y(S),u({...c.current,fieldEditorVisible:!1})},onCancel:()=>{u({...c.current,fieldEditorVisible:!1})}}),v.default.createElement(gf,{search:e.search,visible:c.current.filterEditorVisible,onOk:S=>{y(S),u({...c.current,filterEditorVisible:!1})},onCancel:()=>{u({...c.current,filterEditorVisible:!1})}}),v.default.createElement(ns,{visible:c.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{u({...c.current,exportDialogVisible:!1})}}),v.default.createElement(is,{key:i.filterDialogSearchParam?.code,visible:c.current.filterDialogVisible,title:i.filterDialogSearchParam?.code?we(i.filterDialogSearchParam.code):"",resourceType:Re,searchParam:i.filterDialogSearchParam,filter:i.filterDialogFilter,defaultValue:"",onOk:S=>{y(mt(e.search,S.code,S.operator,S.value)),u({...c.current,filterDialogVisible:!1})},onCancel:()=>{u({...c.current,filterDialogVisible:!1})}}))}var Wu=v.default.memo(cs);function Xu(e){let o=(e.filters??[]).filter(t=>e.searchParams.find(r=>r.code===t.code));return o.length===0?v.default.createElement("span",null,"no filters"):v.default.createElement(v.default.Fragment,null,o.map((t,r)=>v.default.createElement("div",{key:`filter-${r}-${o.length}`},Wt(t.operator),"\xA0",v.default.createElement(Ia,{resourceType:e.resourceType,filter:t}))))}function Qu(e){return Math.floor((e.offset??0)/(e.count??_o.DEFAULT_SEARCH_COUNT))+1}function Ju(e,o){let t=e.count??_o.DEFAULT_SEARCH_COUNT;return Math.ceil(o/t)}function $u(e,o){return Math.min(o,(e.offset??0)+1)}function Ku(e,o){return Math.min(o,((e.offset??0)+1)*(e.count??_o.DEFAULT_SEARCH_COUNT))}function ps(e){let o=b(),[t,r]=(0,_.useState)(),[a,n]=(0,_.useState)(),{query:f,fields:l}=e,[s,i]=(0,_.useState)(),[u,c]=(0,_.useState)({}),p=(0,_.useRef)();p.current=s;let D=(0,_.useRef)({});D.current=u,(0,_.useEffect)(()=>{n(void 0),o.graphql(f).then(i).catch(P=>n((0,ms.normalizeOperationOutcome)(P)))},[o,f]);function A(P,R){P.stopPropagation();let he=P.target.checked,Ne={...D.current};he?Ne[R]=!0:delete Ne[R],c(Ne)}function B(P){P.stopPropagation();let Re=P.target.checked,he={},Ne=p.current?.data.ResourceList;Re&&Ne&&Ne.forEach(He=>{He.id&&(he[He.id]=!0)}),c(he)}function y(){let P=p.current?.data.ResourceList;if(!P||P.length===0)return!1;for(let R of P)if(R.id&&!D.current[R.id])return!1;return!0}function T(P,R){qr(P.target)||(W(P),P.button!==1&&e.onClick&&e.onClick(new jo(R,P)),P.button===1&&e.onAuxClick&&e.onAuxClick(new jo(R,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(Jt.Loader,null);let H=e.checkboxesEnabled;return _.default.createElement("div",{onContextMenu:P=>W(P),"data-testid":"search-control"},_.default.createElement(Jt.Table,null,_.default.createElement("thead",null,_.default.createElement("tr",null,H&&_.default.createElement("th",null,_.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:y(),onChange:P=>B(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:R=>T(R,P),onAuxClick:R=>T(R,P)},H&&_.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:R=>A(R,P.id)})),l.map(R=>_.default.createElement("td",{key:R.name},_.default.createElement(rs,{propertyType:R.propertyType,path:R.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(Jt.Button,{onClick:()=>e.onBulk(Object.keys(D.current))},"Bulk..."))}var ju=_.default.memo(ps);var Zo=m(require("react"));function Ro(e){return Zo.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},Zo.default.createElement("title",null,"Medplum Logo"),Zo.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"}),Zo.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"}),Zo.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"}),Zo.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"}),Zo.default.createElement("path",{fill:e.fill??"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}var xs=require("@mantine/core");var Sa=m(require("react"));function pt(e){let o=e.outcome?.issue||e.issues;return!o||o.length===0?null:Sa.default.createElement(xs.Alert,{icon:Sa.default.createElement(et,{size:16}),color:"red"},o.map(t=>Sa.default.createElement("div",{"data-testid":"text-field-error",key:t.details?.text},t.details?.text)))}var kr=require("@medplum/core"),Pa=m(require("react"));function _u(e){let o=(0,Pa.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 Pa.default.createElement(Eo,{value:e.patient,loadTimelineResources:o,createCommunication:(t,r,a)=>({resourceType:"Communication",status:"completed",subject:(0,kr.createReference)(t),sender:(0,kr.createReference)(r),sent:new Date().toISOString(),payload:[{contentString:a}]}),createMedia:(t,r,a)=>({resourceType:"Media",status:"completed",subject:(0,kr.createReference)(t),operator:(0,kr.createReference)(r),issued:new Date().toISOString(),content:a})})}var Oe=require("@mantine/core"),Is=require("@medplum/core"),O=m(require("react"));var gs=(0,Oe.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 Zu(e){let o=b(),t=ee(e.value),[r,a]=(0,O.useState)(void 0),[n,f]=(0,O.useState)(),[l,s]=(0,O.useState)(),[i,u]=(0,O.useState)();function c(){s(void 0)}function p(){f(void 0)}let D=(0,O.useRef)();if(D.current=i,(0,O.useEffect)(()=>{o.requestSchema("PlanDefinition").then(a).catch(console.log)},[o]),(0,O.useEffect)(()=>(u(ad(t??{resourceType:"PlanDefinition"})),document.addEventListener("mouseover",c),document.addEventListener("click",p),()=>{document.removeEventListener("mouseover",c),document.removeEventListener("click",p)}),[t]),!r||!i)return null;function A(B,y){u({...D.current,[B]:y})}return O.default.createElement("div",null,O.default.createElement(ne,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(i)},O.default.createElement(Oe.TextInput,{label:"Plan Title",defaultValue:i.title,onChange:B=>A("title",B.currentTarget.value)}),O.default.createElement(hs,{actions:i.action||[],selectedKey:n,setSelectedKey:f,hoverKey:l,setHoverKey:s,onChange:B=>A("action",B)}),O.default.createElement(Oe.Button,{type:"submit"},"Save")))}function hs(e){let{classes:o}=gs(),t=(0,O.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 O.default.createElement("div",{className:o.section},e.actions.map(f=>O.default.createElement("div",{key:f.id},O.default.createElement(Yu,{action:f,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:r,onRemove:()=>n(f)}))),O.default.createElement("div",{className:o.bottomActions},O.default.createElement(Oe.Anchor,{href:"#",onClick:f=>{W(f),a({id:ys()})}},"Add action")))}function Yu(e){let{classes:o,cx:t}=gs(),{action:r}=e,a=rd(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){W(u),e.setHoverKey(e.action.id)}let i=t(o.section,{[o.editing]:n,[o.hovering]:f&&!n});return O.default.createElement("div",{"data-testid":r.id,className:i,onClick:l,onMouseOver:s},n?O.default.createElement(od,{action:r,actionType:a,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):O.default.createElement(ed,{action:r,actionType:a}),O.default.createElement("div",{className:o.bottomActions},O.default.createElement(Oe.Anchor,{href:"#",onClick:u=>{u.preventDefault(),e.onRemove()}},"Remove")))}var Cf={path:"PlanDefinition.action.timing[x]",min:0,max:"1",type:[{code:"dateTime"},{code:"Period"},{code:"Range"},{code:"Timing"}]};function ed(e){let{action:o,actionType:t}=e,[r,a]=Cs(o);return O.default.createElement("div",null,O.default.createElement("div",null,o.title||"Untitled"," ",t&&`(${t})`),o.definitionCanonical&&O.default.createElement("div",null,O.default.createElement(Uo,{value:{reference:o.definitionCanonical}})),r&&O.default.createElement("div",null,O.default.createElement(Te,{property:Cf,propertyType:a,value:r})))}function od(e){let{action:o}=e,[t,r]=(0,O.useState)(e.actionType);function a(n,f){e.onChange({...o,[n]:f})}return O.default.createElement(Oe.Stack,{spacing:"xl"},O.default.createElement(Oe.TextInput,{name:`actionTitle-${o.id}`,label:"Title",defaultValue:o.title,onChange:n=>a("title",n.currentTarget.value)}),O.default.createElement(Oe.TextInput,{name:`actionDescription-${o.id}`,label:"Description",defaultValue:o.description,onChange:n=>a("description",n.currentTarget.value)}),O.default.createElement(Oe.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&&O.default.createElement(hs,{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 O.default.createElement(ba,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:o,onChange:e.onChange});case"lab":return O.default.createElement(ba,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});case"questionnaire":return O.default.createElement(ba,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:o,onChange:e.onChange});case"task":return O.default.createElement(ba,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});default:return null}})(),O.default.createElement(Ge,{title:"Timing",description:"When the action should take place."},O.default.createElement(td,{name:"timing-"+o.id,action:o,onChange:e.onChange})))}function ba(e){let{id:o,definitionCanonical:t}=e.action,r=t?.startsWith(e.resourceType+"/")?{reference:t}:void 0;return O.default.createElement(hr,{name:o,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:a=>{a?e.onChange({...e.action,definitionCanonical:(0,Is.getReferenceString)(a)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function td(e){let o=e.action,t="timing",[r,a]=Cs(o);return O.default.createElement(mo,{property:Cf,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(n,f)=>{e.onChange(At(o,t,f??t,Cf,n))}})}function rd(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task"}function Cs(e){return Ue({type:"PlanDefinitionAction",value:e},"timing")}var hf=1;function ys(e){if(e){if(e.startsWith("id-")){let o=parseInt(e.substring(3),10);isNaN(o)||(hf=Math.max(hf,o+1))}return e}return"id-"+hf++}function ad(e){return{...e,action:vs(e.action)}}function vs(e){if(e)return e.map(o=>({...o,id:ys(o.id),action:vs(o.action)}))}var ve=require("@mantine/core"),Da=require("@medplum/core"),w=m(require("react"));var ie=require("@mantine/core"),se=require("@medplum/core"),N=m(require("react"));var yf=(T=>(T.group="group",T.display="display",T.question="question",T.boolean="boolean",T.decimal="decimal",T.integer="integer",T.date="date",T.dateTime="dateTime",T.time="time",T.string="string",T.text="text",T.url="url",T.choice="choice",T.openChoice="open-choice",T.attachment="attachment",T.reference="reference",T.quantity="quantity",T))(yf||{});function vf(e){return e.type==="choice"||e.type==="open-choice"}function Sf(e){let o=b(),t=o.getProfile(),[r,a]=(0,N.useState)(),n=ee(e.questionnaire),[f,l]=(0,N.useState)(),[s,i]=(0,N.useState)({});(0,N.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>o.requestSchema("QuestionnaireResponse")).then(a).catch(console.log)},[o]),(0,N.useEffect)(()=>{l(n?ld(n):void 0)},[n]);function u(c){let p={resourceType:"QuestionnaireResponse",item:c};l(p),i((0,se.getQuestionnaireAnswers)(p))}return!r||!n?null:N.default.createElement(ne,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&f&&e.onSubmit({...f,questionnaire:(0,se.getReferenceString)(n),subject:e.subject,source:(0,se.createReference)(t),authored:new Date().toISOString(),status:"completed"})}},n.title&&N.default.createElement(ie.Title,null,n.title),n.item&&N.default.createElement(Ps,{items:n.item,answers:s,onChange:u}),N.default.createElement(ie.Group,{position:"right",mt:"xl"},N.default.createElement(ie.Button,{type:"submit"},e.submitButtonText??"OK")))}function Ps(e){let[o,t]=(0,N.useState)(Pf(e.items));function r(a,n){let f=o.slice();f[a]=n,t(f),e.onChange(f)}return N.default.createElement(ie.Stack,null,e.items.map((a,n)=>{if(!bs(a,e.answers))return null;if(a.type==="display")return N.default.createElement("p",{key:a.linkId},a.text);if(a.type==="group")return N.default.createElement(Br,{key:a.linkId,item:a,answers:e.answers,onChange:f=>r(n,f)});if(a.type==="boolean"){let f=a.initial&&a.initial.length>0?a.initial[0]:void 0;return N.default.createElement(cr,{key:a.linkId,title:a.text,htmlFor:a.linkId},N.default.createElement(ie.Checkbox,{id:a.linkId,name:a.linkId,defaultChecked:f?.valueBoolean,onChange:l=>r(n,{linkId:a.linkId,text:a.text,answer:[{valueBoolean:l.currentTarget.checked}]})}))}return N.default.createElement(Ge,{key:a.linkId,htmlFor:a.linkId,title:a.text??""},N.default.createElement(Br,{item:a,answers:e.answers,onChange:f=>r(n,f)}))}))}function Br(e){let o=e.item,t=o.type;if(!t)return null;let r=o.linkId;if(!r)return null;let a=o.initial&&o.initial.length>0?o.initial[0]:void 0;function n(l){e.onChange({linkId:o.linkId,text:o.text,item:l})}function f(l){e.onChange({linkId:o.linkId,text:o.text,answer:[l]})}switch(t){case"group":return N.default.createElement("div",null,N.default.createElement("h3",null,o.text),o.item&&N.default.createElement(Ps,{items:o.item,answers:e.answers,onChange:n}));case"boolean":return N.default.createElement(ie.Checkbox,{id:r,name:r,defaultChecked:a?.valueBoolean,onChange:l=>f({valueBoolean:l.currentTarget.checked})});case"decimal":return N.default.createElement(ie.TextInput,{type:"number",step:"any",id:r,name:r,defaultValue:a?.valueDecimal,onChange:l=>f({valueDecimal:l.currentTarget.valueAsNumber})});case"integer":return N.default.createElement(ie.TextInput,{type:"number",step:1,id:r,name:r,defaultValue:a?.valueInteger,onChange:l=>f({valueInteger:l.currentTarget.valueAsNumber})});case"date":return N.default.createElement(ie.TextInput,{type:"date",id:r,name:r,defaultValue:a?.valueDate,onChange:l=>f({valueDate:l.currentTarget.value})});case"dateTime":return N.default.createElement(eo,{name:r,defaultValue:a?.valueDateTime,onChange:l=>f({valueDateTime:l})});case"time":return N.default.createElement(ie.TextInput,{type:"time",id:r,name:r,defaultValue:a?.valueTime,onChange:l=>f({valueTime:l.currentTarget.value})});case"string":case"url":return N.default.createElement(ie.TextInput,{id:r,name:r,defaultValue:a?.valueString,onChange:l=>f({valueString:l.currentTarget.value})});case"text":return N.default.createElement(ie.Textarea,{id:r,name:r,defaultValue:a?.valueString,onChange:l=>f({valueString:l.currentTarget.value})});case"attachment":return N.default.createElement(fr,{name:r,defaultValue:a?.valueAttachment,onChange:l=>f({valueAttachment:l})});case"reference":return N.default.createElement(ut,{name:r,defaultValue:a?.valueReference,onChange:l=>f({valueReference:l})});case"quantity":return N.default.createElement($e,{name:r,defaultValue:a?.valueQuantity,onChange:l=>f({valueQuantity:l}),disableWheel:!0});case"choice":case"open-choice":return ud(o)?N.default.createElement(nd,{name:r,item:o,initial:a,onChangeAnswer:f}):N.default.createElement(fd,{name:r,item:o,initial:a,onChangeAnswer:f});default:return null}}function nd(e){let{name:o,item:t,initial:r}=e,a=(0,se.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),n=[""];if(t.answerOption)for(let f of t.answerOption){let l=(0,se.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:f},"value");n.push(Ss(l))}return N.default.createElement(ie.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,se.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:s},"value"),u="value"+(0,se.capitalize)(i.type);e.onChangeAnswer({[u]:i.value})},defaultValue:Ss(a),data:n})}function Ss(e){if(e)return e.type==="CodeableConcept"?e.value.coding[0].display:e.type==="Coding"?e.value.display:e.value.toString()}function fd(e){let{name:o,item:t,initial:r,onChangeAnswer:a}=e,n=se.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],f=(0,se.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],c=`${o}-option-${i}`,p=(0,se.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:u},"value");f&&(0,se.stringify)(p)===(0,se.stringify)(f)&&(s=c),l.push([c,p])}return N.default.createElement(ie.Radio.Group,{name:o,defaultValue:s,onChange:i=>{let u=l.find(c=>c[0]===i);if(u){let c=u[1],p="value"+(0,se.capitalize)(c.type);a({[p]:c.value})}}},l.map(([i,u])=>N.default.createElement(ie.Radio,{key:i,id:i,value:i,label:N.default.createElement(Te,{property:n,propertyType:u.type,value:u.value})})))}function ld(e){return{resourceType:"QuestionnaireResponse",questionnaire:(0,se.getReferenceString)(e),item:Pf(e.item)}}function Pf(e){return e?.map(sd)??[]}function sd(e){return{linkId:e.linkId,text:e.text,item:Pf(e.item),answer:e.initial?.map(id)??[]}}function id(e){return{...e}}function ud(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function bs(e,o){if(!e.enableWhen)return!0;let t=e.enableBehavior??"any";for(let r of e.enableWhen){let a=(0,se.getTypedPropertyValue)({type:"QuestionnaireItemEnableWhen",value:r},"answer[x]"),n=(0,se.getTypedPropertyValue)({type:"QuestionnaireResponseItemAnswer",value:o[r.question]},"value[x]"),f=(0,se.deepEquals)(a,n);if(t==="any"&&f)return!0;if(t==="all"&&!f)return!1}return t!=="any"}var dd=(0,ve.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 cd(e){let o=b(),t=ee(e.questionnaire),[r,a]=(0,w.useState)(),[n,f]=(0,w.useState)(),[l,s]=(0,w.useState)(),[i,u]=(0,w.useState)();function c(){u(void 0)}function p(){s(void 0)}return(0,w.useEffect)(()=>{o.requestSchema("Questionnaire").then(a).catch(console.log)},[o]),(0,w.useEffect)(()=>(f(pd(t??{resourceType:"Questionnaire"})),document.addEventListener("mouseover",c),document.addEventListener("click",p),()=>{document.removeEventListener("mouseover",c),document.removeEventListener("click",p)}),[t]),!r||!n?null:w.default.createElement("div",null,w.default.createElement(ne,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(n)},w.default.createElement(Ts,{item:n,selectedKey:l,setSelectedKey:s,hoverKey:i,setHoverKey:u,onChange:f}),w.default.createElement(ve.Button,{type:"submit"},"Save")))}function Ts(e){let{classes:o,cx:t}=dd(),r=e.item,a=e.item,n=(0,Da.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,w.useRef)();u.current=e.item;function c(d){W(d),e.setSelectedKey(e.item.id)}function p(d){W(d),e.setHoverKey(e.item.id)}function D(d){let H=u.current;e.onChange({...H,item:H.item?.map(P=>P.id===d.id?d:P)})}function A(d){e.onChange({...e.item,item:[...e.item.item??[],d]})}function B(d){e.onChange({...e.item,item:e.item.item?.filter(H=>H!==d)})}function y(d,H){e.onChange({...u.current,[d]:H})}let T=t(o.section,{[o.editing]:s,[o.hovering]:i&&!s});return w.default.createElement("div",{"data-testid":a.linkId,className:T,onClick:c,onMouseOver:p},w.default.createElement("div",{className:o.questionBody},s?w.default.createElement(w.default.Fragment,null,n&&w.default.createElement(ve.TextInput,{size:"xl",defaultValue:r.title,onChange:d=>y("title",d.currentTarget.value)}),!n&&w.default.createElement(ve.Textarea,{autosize:!0,minRows:2,defaultValue:a.text,onChange:d=>y("text",d.currentTarget.value)}),vf(a)&&w.default.createElement(md,{options:a.answerOption,onChange:d=>y("answerOption",d)})):w.default.createElement(w.default.Fragment,null,r.title&&w.default.createElement(ve.Title,null,r.title),a.text&&w.default.createElement("div",null,a.text),!f&&w.default.createElement(Br,{item:a,answers:{},onChange:()=>{}}))),a.item?.map(d=>w.default.createElement("div",{key:d.id},w.default.createElement(Ts,{item:d,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:D,onRemove:()=>B(d)}))),!f&&w.default.createElement("div",{className:o.topActions},s?w.default.createElement(w.default.Fragment,null,w.default.createElement(ve.TextInput,{size:"xs",className:o.linkIdInput,defaultValue:a.linkId,onChange:d=>y("linkId",d.currentTarget.value)}),!f&&w.default.createElement(ve.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:a.type,onChange:d=>y("type",d.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"}]})):w.default.createElement("div",null,l)),w.default.createElement("div",{className:o.bottomActions},f&&w.default.createElement(w.default.Fragment,null,w.default.createElement(ve.Anchor,{href:"#",onClick:d=>{d.preventDefault(),A({id:$t(),linkId:Ds("q"),type:"string",text:"Question"})}},"Add item"),w.default.createElement(ve.Anchor,{href:"#",onClick:d=>{d.preventDefault(),A({id:$t(),linkId:Ds("g"),type:"group",text:"Group"})}},"Add group")),s&&!n&&w.default.createElement(ve.Anchor,{href:"#",onClick:d=>{d.preventDefault(),e.onRemove&&e.onRemove()}},"Remove")))}function md(e){let o=Da.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],t=e.options??[];return w.default.createElement("div",null,t.map(r=>{let[a,n]=Ue({type:"QuestionnaireItemAnswerOption",value:r},"value");return w.default.createElement("div",{key:r.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},w.default.createElement("div",null,w.default.createElement(mo,{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)}})),w.default.createElement("div",null,w.default.createElement(ve.Anchor,{href:"#",onClick:f=>{W(f),e.onChange(t.filter(l=>l.id!==r.id))}},"Remove")))}),w.default.createElement(ve.Anchor,{href:"#",onClick:r=>{W(r),e.onChange([...t,{id:$t()}])}},"Add choice"))}var bf=1,Df=1;function Ds(e){return e+bf++}function $t(){return"id-"+Df++}function pd(e){return{...e,id:e.id||$t(),item:ks(e.item)}}function ks(e){if(e)return e.forEach(o=>{o.id?.match(/^id-\d+$/)&&(Df=Math.max(Df,parseInt(o.id.substring(3),10)+1)),o.linkId?.match(/^q\d+$/)&&(bf=Math.max(bf,parseInt(o.linkId.substring(1),10)+1))}),e.map(o=>({...o,id:o.id||$t(),item:ks(o.item),answerOption:xd(o.answerOption)}))}function xd(e){if(e)return e.map(o=>({...o,id:o.id||$t()}))}var Y=require("@mantine/core"),Ar=require("@medplum/core");var V=m(require("react"));var Id=(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"}})),gd=["gender","age","gestationalAge","context","appliesTo"],hd={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function Cd(e){e=Object.assign(hd,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 A=vd(o,l);r(Sd(A.qualifiedInterval||[],n))},[o]),V.default.createElement(ne,{testid:"reference-range-editor",onSubmit:s},V.default.createElement(Y.Stack,null,t.map(A=>V.default.createElement(Bs,{unit:bd(o.quantitativeDetails?.unit),onChange:c,onAdd:p,onRemove:D,onRemoveGroup:u,key:`group-${A.id}`,intervalGroup:A}))),V.default.createElement(Y.ActionIcon,{title:"Add Group",size:"sm",onClick:A=>{W(A),i({id:`group-id-${a}`,filters:{},intervals:[]}),n(B=>B+1)}},V.default.createElement(Ct,null)),V.default.createElement(Y.Group,{position:"right"},V.default.createElement(Y.Button,{type:"submit"},"Save")));function s(){let A=t.flatMap(B=>B.intervals).filter(B=>!Dd(B));e.onSubmit({...o,qualifiedInterval:A})}function i(A){r(B=>[...B,A])}function u(A){r(B=>B.filter(y=>y.id!==A.id))}function c(A,B){r(y=>{y=[...y];let T=y.find(H=>H.id===A),d=T?.intervals.findIndex(H=>H.id===B.id);return d!==void 0&&T?.intervals[d]&&(T.intervals[d]=B),y})}function p(A,B){B.id===void 0&&(B.id=`id-${f}`,l(y=>y+1)),r(y=>{y=[...y];let T=y.findIndex(d=>d.id===A);if(T!==-1){let d={...y[T]};B={...B,...d.filters},d.intervals=[...d.intervals,B],y[T]=d}return y})}function D(A,B){r(y=>{y=[...y];let T=y.find(d=>d.id===A);return T&&(T.intervals=T.intervals.filter(d=>d.id!==B.id)),y})}}function Bs(e){let{intervalGroup:o,unit:t}=e,{classes:r}=Id();return V.default.createElement(Fo,{"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=>{W(a),e.onRemoveGroup(o)}},V.default.createElement(qo,null))),V.default.createElement(yd,{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=>{W(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=>{W(n),e.onRemove(o.id,a)}},V.default.createElement(qo,null))),V.default.createElement(Et,{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=>{W(a),e.onAdd(o.id,{range:{low:{unit:t},high:{unit:t}}})}},V.default.createElement(Ct,null))))}function yd(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(Et,{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"}]}})}}}))}function vd(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 Sd(e,o){let t=1,r={};for(let a of e){let n=Pd(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 Pd(e){return[`gender=${e.gender}`,`age=${(0,Ar.formatRange)(e.age)}`,`gestationalAge=${(0,Ar.formatRange)(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map(t=>t.text).join("+")}`].join(":")}function bd(e){return e&&((0,Ar.getCodeBySystem)(e,"http://unitsofmeasure.org")||e.text)}function Dd(e){return e.range?.low?.value===void 0&&e.range?.high?.value===void 0}var xo=require("@mantine/core"),Ta=require("@medplum/core");var me=m(require("react"));function Td(e){let o=b(),t=ee(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(xo.Grid,null,t.action?.map((i,u)=>{let c=i.resource&&s(i.resource),p=c?.input?.[0]?.valueReference,D=c?.output?.[0]?.valueReference;return me.default.createElement(me.default.Fragment,{key:`action-${u}`},me.default.createElement(xo.Grid.Col,{span:1,p:"md"},c?.status==="completed"?me.default.createElement(Wa,null):me.default.createElement(fn,{color:"gray"})),me.default.createElement(xo.Grid.Col,{span:9,p:"xs"},me.default.createElement(xo.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(lo,{value:c?.meta?.author}),"\xA0on\xA0",(0,Ta.formatDateTime)(c?.meta?.lastUpdated)),me.default.createElement("div",null,"Status: ",me.default.createElement(vr,{status:c?.status||"unknown"}))),me.default.createElement(xo.Grid.Col,{span:2,p:"md"},p&&!D&&me.default.createElement(xo.Button,{onClick:()=>e.onStart(c,p)},"Start"),p&&D&&me.default.createElement(xo.Button,{onClick:()=>e.onEdit(c,p,D)},"Edit")))}));function l(i){let u=[];if(i.action)for(let c of i.action)c.resource?.reference&&u.push({request:{method:"GET",url:c.resource.reference}});return{resourceType:"Bundle",type:"batch",entry:u}}function s(i){for(let u of n?.entry)if(u.resource&&i.reference===(0,Ta.getReferenceString)(u.resource))return u.resource}}var Fs=require("@mantine/core"),Se=m(require("react"));var As=require("@medplum/core");function ka(e,o){let t=kd(e,o);return Bd(t,e,o)}function kd(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,c=u+1,p=u-1,D=l[c],A=l[p],B,y=0;i===-s||i!==s&&A.i<D.i?(y=D.i,B=D):(y=A.i+1,B=A),l[p]=void 0;let T=y-i,d={i:y,j:T,prev:Ad(B),snake:!1};for(;y<t&&T<r&&e[y]===o[T];)y++,T++;if(y>d.i&&(d={i:y,j:T,prev:d,snake:!0}),l[u]=d,y>=t&&T>=r)return l[u]}l[f+s-1]=void 0}}function Bd(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)},c;i.lines.length===0&&u.lines.length>0?c="insert":i.lines.length>0&&u.lines.length===0?c="delete":c="change",r.push({original:i,revised:u,type:c}),a.snake&&(a=a.prev)}return r}function Ad(e){return e&&!e.snake&&e.prev?e.prev:e}function Ms(e){let o=e.entry.filter(r=>!!r.resource).map(r=>({meta:r.resource?.meta,lines:(0,As.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 Md(t,o),Fd(t),t}function Md(e,o){for(let t=1;t<o.length;t++){let r=ka(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 Fd(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 wd=(0,Fs.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 Od(e){let{classes:o}=wd(),t=b(),[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,f=Ms(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(wo,{value:l.meta.author,link:!0})),Se.default.createElement("td",{className:o.dateTime,rowSpan:l.span},Se.default.createElement(Pe,{to:Ed(n,l.meta.versionId)},ws(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 Ed(e,o){return`/${e.resourceType}/${e.id}/_history/${o}`}function ws(e){let o=Math.floor((Date.now()-Date.parse(e))/1e3),t=Math.floor(o/31536e3);if(t>0)return Kt(t,"year");let r=Math.floor(o/2592e3);if(r>0)return Kt(r,"month");let a=Math.floor(o/86400);if(a>0)return Kt(a,"day");let n=Math.floor(o/3600);if(n>0)return Kt(n,"hour");let f=Math.floor(o/60);return f>0?Kt(f,"minute"):Kt(o,"second")}function Kt(e,o){return`${e} ${e===1?o:o+"s"} ago`}var Os=require("@mantine/core"),Tf=require("@medplum/core"),No=m(require("react"));var Ld=(0,Os.createStyles)(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function Rd(e){let o=e.original,t=e.revised;e.ignoreMeta&&(o={...o,meta:void 0},t={...t,meta:void 0});let r=(0,Tf.stringify)(o,!0).match(/[^\r\n]+/g),a=(0,Tf.stringify)(t,!0).match(/[^\r\n]+/g),n=ka(r,a);return No.default.createElement("pre",{style:{color:"gray"}},n.map((f,l)=>No.default.createElement(Nd,{key:"delta"+l,delta:f})))}function Nd(e){let{classes:o}=Ld();return No.default.createElement(No.default.Fragment,null,"...",No.default.createElement("br",null),e.delta.original.lines.length>0&&No.default.createElement("div",{className:o.removed},e.delta.original.lines.join(`
|
|
66
|
-
`)),e.delta.revised.lines.length>0&&
|
|
67
|
-
`)),"...",No.default.createElement("br",null))}var Es=require("@mantine/core"),Ba=require("@medplum/core"),pe=m(require("react"));function Hd(e){let o=b(),[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(Es.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(Vd,{key:"entry-"+n,entry:a})))):pe.default.createElement("div",null,"Loading...")}function Vd(e){let{response:o,resource:t}=e.entry;return t?pe.default.createElement("tr",null,pe.default.createElement("td",null,pe.default.createElement(wo,{value:t.meta?.author,link:!0})),pe.default.createElement("td",null,(0,Ba.formatDateTime)(t.meta?.lastUpdated)),pe.default.createElement("td",null,pe.default.createElement(Pe,{to:qd(t)},t.meta?.versionId))):pe.default.createElement("tr",null,pe.default.createElement("td",{colSpan:3},(0,Ba.normalizeErrorString)(o?.outcome)))}function qd(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}var Yo=require("@mantine/core"),Rs=require("@medplum/core"),$=m(require("react"));var Ud=(0,Yo.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 Gd(e){let{classes:o}=Ud(),t=b(),r=ee(e.schedule),a=ee(e.questionnaire),[n,f]=(0,$.useState)(),l=(0,$.useRef)();l.current=n;let[s,i]=(0,$.useState)(fa()),[u,c]=(0,$.useState)(),[p,D]=(0,$.useState)(),[A,B]=(0,$.useState)();if((0,$.useEffect)(()=>{r?(f([]),t.searchResources("Slot",new URLSearchParams([["_count",(30*24).toString()],["schedule",(0,Rs.getReferenceString)(r)],["start","gt"+zd(s)],["start","lt"+Wd(s)]])).then(f).catch(console.log)):f(void 0)},[t,r,s]),!r||!n||!a)return null;let y=r.actor?.[0];return $.default.createElement("div",{className:o.container,"data-testid":"scheduler"},$.default.createElement("div",{className:o.info},y&&$.default.createElement(Me,{value:y,size:"xl"}),y&&$.default.createElement(Yo.Text,{size:"xl",weight:500},$.default.createElement(lo,{value:y})),$.default.createElement("p",null,"1 hour"),u&&$.default.createElement("p",null,u.toLocaleDateString()),p&&$.default.createElement("p",null,Ls(new Date(p.start)))),$.default.createElement("div",{className:o.selection},!u&&$.default.createElement("div",null,$.default.createElement("h3",null,"Select date"),$.default.createElement(Jn,{slots:n,onChangeMonth:i,onClick:c})),u&&!p&&$.default.createElement("div",null,$.default.createElement("h3",null,"Select time"),$.default.createElement(Yo.Stack,null,n.map(T=>{let d=new Date(T.start);return d.getTime()>u.getTime()&&d.getTime()<u.getTime()+24*3600*1e3&&$.default.createElement("div",{key:T.id},$.default.createElement(Yo.Button,{variant:"outline",style:{width:150},onClick:()=>D(T)},Ls(d)))}))),u&&p&&!A&&$.default.createElement(Sf,{questionnaire:a,submitButtonText:"Next",onSubmit:B}),u&&p&&A&&$.default.createElement("div",null,$.default.createElement("h3",null,"You're all set!"),$.default.createElement("p",null,"Check your email for a calendar invite."))))}function zd(e){return Ns(e.getTime())}function Wd(e){return Ns(e.getTime()+31*24*60*60*1e3)}function Ns(e){return new Date(Math.max(Date.now(),e)).toISOString()}function Ls(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}var Mr=require("@medplum/core"),Hs=m(require("react"));function Xd(e){return Hs.default.createElement(Eo,{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,Mr.createReference)(o)],subject:o.subject,sender:(0,Mr.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",basedOn:[(0,Mr.createReference)(o)],subject:o.subject,operator:(0,Mr.createReference)(t),issued:new Date().toISOString(),content:r})})}var Us=require("@medplum/core"),go=m(require("react"));var Ae=require("@mantine/core"),Vs=require("@medplum/core"),ze=m(require("react"));function Aa(e){let o=b(),[t,r]=(0,ze.useState)();return ze.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,Vs.normalizeOperationOutcome)(n))}}},ze.default.createElement(Ae.Center,{sx:{flexDirection:"column"}},ze.default.createElement(Ro,{size:32}),ze.default.createElement(Ae.Title,null,"Create project")),ze.default.createElement(Ae.Stack,{spacing:"xl"},ze.default.createElement(Ae.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:ke(t,"firstName")}),ze.default.createElement(Ae.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",ze.default.createElement(Ae.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",ze.default.createElement(Ae.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),".")),ze.default.createElement(Ae.Group,{position:"right",mt:"xl",noWrap:!0},ze.default.createElement(Ae.Button,{type:"submit"},"Create project")))}var te=require("@mantine/core"),Af=require("@medplum/core"),oe=m(require("react"));var Io=m(require("react"));function Fr(e,o){let t=document.getElementsByTagName("head")[0],r=document.createElement("script");r.async=!0,r.src=e,r.onload=o??null,t.appendChild(r)}function Ma(e){let o=b(),{googleClientId:t,handleGoogleCredential:r}=e,a=(0,Io.useRef)(null),[n,f]=(0,Io.useState)(typeof google<"u"),[l,s]=(0,Io.useState)(!1),[i,u]=(0,Io.useState)(!1);return(0,Io.useEffect)(()=>{if(typeof google>"u"){Fr("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?Io.default.createElement("div",{ref:a}):null}function Fa(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 kf(e){typeof grecaptcha>"u"&&Fr("https://www.google.com/recaptcha/api.js?render="+e)}function Bf(e){return new Promise((o,t)=>{grecaptcha.ready(async()=>{try{o(await grecaptcha.execute(e,{action:"submit"}))}catch(r){t(r)}})})}function qs(e){let o=Fa(e.googleClientId),t=e.recaptchaSiteKey,r=b(),[a,n]=(0,oe.useState)(),f=mr(a,void 0);return(0,oe.useEffect)(()=>{t&&kf(t)},[t]),oe.default.createElement(ne,{style:{maxWidth:400},onSubmit:async l=>{try{let s="";t&&(s=await Bf(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,Af.normalizeOperationOutcome)(s))}}},oe.default.createElement(te.Center,{sx:{flexDirection:"column"}},e.children),oe.default.createElement(pt,{issues:f}),o&&oe.default.createElement(oe.default.Fragment,null,oe.default.createElement(te.Group,{position:"center",p:"xl",style:{height:70}},oe.default.createElement(Ma,{googleClientId:o,handleGoogleCredential:async l=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:l.clientId,googleCredential:l.credential,createUser:!0}))}catch(s){n((0,Af.normalizeOperationOutcome)(s))}}})),oe.default.createElement(te.Divider,{label:"or",labelPosition:"center",my:"lg"})),oe.default.createElement(te.Stack,{spacing:"xl"},oe.default.createElement(te.TextInput,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:ke(a,"firstName")}),oe.default.createElement(te.TextInput,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:ke(a,"lastName")}),oe.default.createElement(te.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:ke(a,"email")}),oe.default.createElement(te.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,error:ke(a,"password")}),oe.default.createElement(te.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",oe.default.createElement(te.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",oe.default.createElement(te.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),"."),oe.default.createElement(te.Text,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",oe.default.createElement(te.Anchor,{href:"https://policies.google.com/privacy"},"Privacy\xA0Policy")," and ",oe.default.createElement(te.Anchor,{href:"https://policies.google.com/terms"},"Terms\xA0of\xA0Service")," apply.")),oe.default.createElement(te.Group,{position:"apart",mt:"xl",noWrap:!0},oe.default.createElement(te.Checkbox,{name:"remember",label:"Remember me",size:"xs"}),oe.default.createElement(te.Button,{type:"submit"},"Create account")))}function Qd(e){let{type:o,projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,onSuccess:f}=e,l=b(),[s,i]=(0,go.useState)(void 0),[u,c]=(0,go.useState)();(0,go.useEffect)(()=>{o==="patient"&&s&&l.startNewPatient({login:s,projectId:t}).then(D=>l.processCode(D.code)).then(()=>f()).catch(D=>c((0,Us.normalizeOperationOutcome)(D)))},[l,o,t,s,f]);function p(D){D.code?l.processCode(D.code).then(()=>f()).catch(console.log):D.login&&i(D.login)}return go.default.createElement(Sr,{width:450},u&&go.default.createElement("pre",null,JSON.stringify(u,null,2)),!s&&go.default.createElement(qs,{projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,handleAuthResponse:p},e.children),s&&o==="project"&&go.default.createElement(Aa,{login:s,handleAuthResponse:p}))}var Mf=require("@mantine/notifications"),Ff=require("@medplum/core"),De=m(require("react"));var ue=require("@mantine/core"),Gs=require("@medplum/core"),K=m(require("react"));function zs(e){let[o,t]=(0,K.useState)();return o?K.default.createElement($d,{email:o,...e}):K.default.createElement(Jd,{setEmail:t,...e})}function Jd(e){let{setEmail:o,onRegister:t,handleAuthResponse:r,children:a,...n}=e,f=b(),l=!e.disableGoogleAuth&&Fa(e.googleClientId),s=(0,K.useCallback)(async c=>{if(!c.authorizeUrl)return!1;let p=JSON.stringify({...await f.ensureCodeChallenge(n),domain:c.domain}),D=new URL(c.authorizeUrl);return D.searchParams.set("state",p),window.location.assign(D.toString()),!0},[f,n]),i=(0,K.useCallback)(async c=>{let p=await f.post("auth/method",{email:c.email});await s(p)||o(c.email)},[f,s,o]),u=(0,K.useCallback)(async c=>{let p=await f.startGoogleLogin({...n,googleCredential:c.credential});await s(p)||r(p)},[f,n,s,r]);return K.default.createElement(ne,{style:{maxWidth:400},onSubmit:i},K.default.createElement(ue.Center,{sx:{flexDirection:"column"}},a),l&&K.default.createElement(K.default.Fragment,null,K.default.createElement(ue.Group,{position:"center",p:"xl",style:{height:70}},K.default.createElement(Ma,{googleClientId:l,handleGoogleCredential:u})),K.default.createElement(ue.Divider,{label:"or",labelPosition:"center",my:"lg"})),K.default.createElement(ue.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),K.default.createElement(ue.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},K.default.createElement("div",null,t&&K.default.createElement(ue.Anchor,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs"},"Register")),K.default.createElement(ue.Button,{type:"submit"},"Next")))}function $d(e){let{onForgotPassword:o,handleAuthResponse:t,children:r,...a}=e,n=b(),[f,l]=(0,K.useState)(),s=mr(f,void 0),i=(0,K.useCallback)(u=>{n.startLogin({...a,password:u.password,remember:u.remember==="on"}).then(t).catch(c=>l((0,Gs.normalizeOperationOutcome)(c)))},[n,a,t]);return K.default.createElement(ne,{style:{maxWidth:400},onSubmit:i},K.default.createElement(ue.Center,{sx:{flexDirection:"column"}},r),K.default.createElement(pt,{issues:s}),K.default.createElement(ue.Stack,{spacing:"xl"},K.default.createElement(ue.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:ke(f,"password")})),K.default.createElement(ue.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},o&&K.default.createElement(ue.Anchor,{component:"button",type:"button",color:"dimmed",onClick:o,size:"xs"},"Forgot password"),K.default.createElement(ue.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),K.default.createElement(ue.Button,{type:"submit"},"Sign in")))}var Ee=require("@mantine/core"),Ws=require("@medplum/core"),We=m(require("react"));function Xs(e){let o=b(),[t,r]=(0,We.useState)();return We.default.createElement(Ee.Stack,null,We.default.createElement(Ee.Center,{sx:{flexDirection:"column"}},We.default.createElement(Ro,{size:32}),We.default.createElement(Ee.Title,{order:3},"Choose profile")),We.default.createElement(pt,{outcome:t}),e.memberships.map(a=>We.default.createElement(Ee.UnstyledButton,{key:a.id,onClick:()=>{o.post("auth/profile",{login:e.login,profile:a.id}).then(e.handleAuthResponse).catch(n=>r((0,Ws.normalizeOperationOutcome)(n)))}},We.default.createElement(Ee.Group,null,We.default.createElement(Ee.Avatar,{radius:"xl"}),We.default.createElement("div",{style:{flex:1}},We.default.createElement(Ee.Text,{size:"sm",weight:500},a.profile?.display),We.default.createElement(Ee.Text,{color:"dimmed",size:"xs"},a.project?.display))))))}var _e=require("@mantine/core"),ho=m(require("react"));function Qs(e){let o=b();return ho.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)}},ho.default.createElement(_e.Stack,null,ho.default.createElement(_e.Center,{sx:{flexDirection:"column"}},ho.default.createElement(Ro,{size:32}),ho.default.createElement(_e.Title,null,"Choose scope")),ho.default.createElement(_e.Stack,null,(e.scope??"openid").split(" ").map(t=>ho.default.createElement(_e.Checkbox,{key:t,id:t,name:t,label:t,defaultChecked:!0}))),ho.default.createElement(_e.Group,{position:"right",mt:"xl"},ho.default.createElement(_e.Button,{type:"submit"},"Set scope"))))}var Le=require("@mantine/core"),Js=require("@medplum/core");var Xe=m(require("react"));function $s(e){let o=b(),[t,r]=(0,Xe.useState)(void 0);return Xe.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,Js.normalizeErrorString)(n)))}},Xe.default.createElement(Le.Stack,null,Xe.default.createElement(Le.Center,{sx:{flexDirection:"column"}},Xe.default.createElement(Ro,{size:32}),Xe.default.createElement(Le.Title,null,"Enter MFA code")),t&&Xe.default.createElement(Le.Alert,{icon:Xe.default.createElement(et,{size:16}),title:"Error",color:"red"},t),Xe.default.createElement(Le.Stack,null,Xe.default.createElement(Le.TextInput,{name:"token",label:"MFA code",required:!0})),Xe.default.createElement(Le.Group,{position:"right",mt:"xl"},Xe.default.createElement(Le.Button,{type:"submit"},"Submit code"))))}function Kd(e){let{login:o,chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:n,onCode:f,...l}=e,s=b(),[i,u]=(0,De.useState)(void 0),[c,p]=(0,De.useState)(!1),[D,A]=(0,De.useState)(void 0),B=(0,De.useCallback)(d=>{f?f(d):s.processCode(d).then(()=>{r&&r()}).catch(H=>(0,Mf.showNotification)({color:"red",message:(0,Ff.normalizeErrorString)(H)}))},[s,f,r]),y=(0,De.useCallback)(d=>{p(!!d.mfaRequired),d.login&&u(d.login),d.memberships&&A(d.memberships),d.code&&(t?A(void 0):B(d.code))},[t,B]),T=(0,De.useCallback)(d=>{B(d.code)},[B]);return(0,De.useEffect)(()=>{o&&!i&&s.get("auth/login/"+o).then(y).catch(d=>(0,Mf.showNotification)({color:"red",message:(0,Ff.normalizeErrorString)(d)}))},[s,o,i,y]),De.default.createElement(Sr,{width:450},(()=>i?c?De.default.createElement($s,{login:i,handleAuthResponse:y}):D?De.default.createElement(Xs,{login:i,memberships:D,handleAuthResponse:y}):e.projectId==="new"?De.default.createElement(Aa,{login:i,handleAuthResponse:y}):e.chooseScopes?De.default.createElement(Qs,{login:i,scope:e.scope,handleAuthResponse:T}):De.default.createElement("div",null,"Success"):De.default.createElement(zs,{onForgotPassword:a,onRegister:n,handleAuthResponse:y,disableGoogleAuth:e.disableGoogleAuth,...l},e.children))())}
|
|
64
|
+
}`.replace(/\s+/g," ")}function bi(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),Ti(Di(t),o).slice(0,5)}function Di(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 Ti(e,o){return e.sort((t,r)=>nl(r,o)-nl(t,o))}function nl(e,o){let t=0;if(e.identifier)for(let r of e.identifier)t=Math.max(t,fl(r.value,o));if(e.resourceType==="Patient"&&e.name)for(let r of e.name)t=Math.max(t,fl((0,Do.formatHumanName)(r),o));return t}function fl(e,o){if(!e)return 0;let t=e.toLowerCase().indexOf(o.toLowerCase());return t<0?0:100-t}var ki=(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 hn(e){let o=ht(),{medplum:t,profile:r,navigate:a}=o,n=t.getLogins(),{classes:f,cx:l}=ki(),[s,i]=(0,X.useState)(!1);return X.default.createElement(J.Header,{height:60,p:8,style:{zIndex:101}},X.default.createElement(J.Group,{position:"apart"},X.default.createElement(J.Group,{spacing:"xs"},X.default.createElement(J.UnstyledButton,{className:f.logoButton,onClick:e.navbarToggle},e.logo),X.default.createElement(ll,{pathname:e.pathname,searchParams:e.searchParams})),X.default.createElement(J.Menu,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:s,onClose:()=>i(!1)},X.default.createElement(J.Menu.Target,null,X.default.createElement(J.UnstyledButton,{className:l(f.user,{[f.userActive]:s}),onClick:()=>i(u=>!u)},X.default.createElement(J.Group,{spacing:7},X.default.createElement(Oe,{value:r,radius:"xl",size:24}),X.default.createElement(J.Text,{size:"sm",className:f.userName},(0,lr.formatHumanName)(r?.name?.[0])),X.default.createElement(Ja,{size:12,stroke:1.5})))),X.default.createElement(J.Menu.Dropdown,null,X.default.createElement(J.Stack,{align:"center",p:"xl"},X.default.createElement(Oe,{size:"xl",radius:100,value:o.profile}),X.default.createElement(fr,{value:o.profile?.name?.[0]}),X.default.createElement(J.Text,{color:"dimmed",size:"xs"},t.getActiveLogin()?.project.display)),n.length>1&&X.default.createElement(J.Menu.Divider,null),n.map(u=>u.profile.reference!==(0,lr.getReferenceString)(o.profile)&&X.default.createElement(J.Menu.Item,{key:u.profile.reference,onClick:()=>{t.setActiveLogin(u).then(()=>window.location.reload()).catch(console.log)}},X.default.createElement(J.Group,null,X.default.createElement(J.Avatar,{radius:"xl"}),X.default.createElement("div",{style:{flex:1}},X.default.createElement(J.Text,{size:"sm",weight:500},u.profile.display),X.default.createElement(J.Text,{color:"dimmed",size:"xs"},u.project.display))))),X.default.createElement(J.Menu.Divider,null),X.default.createElement(J.Menu.Item,{icon:X.default.createElement(cn,{size:14,stroke:1.5}),onClick:()=>a("/signin")},"Add another account"),X.default.createElement(J.Menu.Item,{icon:X.default.createElement(Pt,{size:14,stroke:1.5}),onClick:()=>a(`/${(0,lr.getReferenceString)(r)}`)},"Account settings"),X.default.createElement(J.Menu.Item,{icon:X.default.createElement(rn,{size:14,stroke:1.5}),onClick:async()=>{await t.signOut(),a("/signin")}},"Sign out"),X.default.createElement(J.Text,{size:"xs",color:"dimmed",align:"center"},e.version)))))}var ze=require("@mantine/core");var ge=m(require("react"));var eo=require("@mantine/core"),yn=require("@mantine/notifications"),$r=require("@medplum/core"),To=m(require("react"));var sl=m(require("react"));function Cn(e){let o={};for(let t of Array.from(e.elements))t instanceof HTMLInputElement?Bi(o,t):t instanceof HTMLTextAreaElement?o[t.name]=t.value:t instanceof HTMLSelectElement&&Ai(o,t);return o}function Bi(e,o){o.disabled||(o.type==="checkbox"||o.type==="radio")&&!o.checked||(e[o.name]=o.value)}function Ai(e,o){e[o.name]=o.value}function le(e){return sl.default.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:o=>{o.preventDefault();let t=Cn(o.target);e.onSubmit&&e.onSubmit(t)}},e.children)}function il(e){let o=b(),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,yn.showNotification)({color:"green",message:"Success"}),e.onOk()}).catch(u=>{(0,yn.showNotification)({color:"red",message:(0,$r.normalizeErrorString)(u)})})}return To.default.createElement(eo.Modal,{title:"Add Bookmark",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},To.default.createElement(le,{onSubmit:r},To.default.createElement(eo.Stack,null,To.default.createElement(Fi,{config:t}),To.default.createElement(eo.TextInput,{label:"Bookmark Name",type:"text",name:"bookmarkname",placeholder:"bookmark name",withAsterisk:!0}),To.default.createElement(eo.Group,{position:"right"},To.default.createElement(eo.Button,{mt:"sm",type:"submit"},"OK")))))}function Fi(e){function o(r){return r?.menu?.map(a=>a.title)}let t=o(e.config);return To.default.createElement(eo.NativeSelect,{name:"menuname",defaultValue:t[0],label:"Select Menu Option",placeholder:"Menu",data:t,withAsterisk:!0})}var jr=m(require("react"));var Kr=m(require("react"));function vn(e){return typeof e.code=="string"?e.code:JSON.stringify(e)}function Mi(e){return typeof e.display=="string"?e.display:vn(e)}function wi(e){return{value:vn(e),label:Mi(e),resource:e}}function Oi(e){return{code:e,display:e}}function bt(e){let o=b(),{elementDefinition:t,creatable:r,clearable:a,...n}=e,f=(0,Kr.useCallback)(async(l,s)=>{if(!t.binding)return[];let i=t.binding.valueSet,p=(await o.searchValueSet(i,l,{signal:s})).expansion?.contains,c=[];for(let v of p)v.code&&!c.some(T=>T.code===v.code)&&c.push(v);return c},[o,t]);return Kr.default.createElement(ft,{...n,creatable:r??!0,clearable:a??!0,toKey:vn,toOption:wi,loadOptions:f,onCreate:Oi,getCreateLabel:r===!1?void 0:l=>`+ Create ${l}`})}function sr(e){let[o,t]=(0,jr.useState)(e.defaultValue);function r(a){let n=a[0],f=Li(n);t(f),e.onChange&&e.onChange(f)}return jr.default.createElement(bt,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:Ei(o),onChange:r,creatable:e.creatable,maxSelectedValues:e.maxSelectedValues??1,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable})}function Ei(e){return e?{code:e}:void 0}function Li(e){return e?.code}var ul=(0,ze.createStyles)(e=>({menuTitle:{margin:"20px 0 4px 6px",fontSize:"9px",fontWeight:"normal",textTransform:"uppercase",letterSpacing:"2px"},link:{...e.fn.focusStyles(),display:"flex",alignItems:"center",textDecoration:"none",fontSize:e.fontSizes.sm,color:e.colorScheme==="dark"?e.colors.dark[1]:e.colors.gray[7],padding:"8px 12px",borderRadius:e.radius.sm,fontWeight:500,"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[6]:e.colors.gray[0],color:e.colorScheme==="dark"?e.white:e.black,textDecoration:"none","& svg":{color:e.colorScheme==="dark"?e.white:e.black}},"& svg":{color:e.colorScheme==="dark"?e.colors.dark[2]:e.colors.gray[6],marginRight:e.spacing.sm,strokeWidth:1.5,width:18,height:18}},linkActive:{"&, &:hover":{backgroundColor:e.fn.variant({variant:"light",color:e.primaryColor}).background,color:e.fn.variant({variant:"light",color:e.primaryColor}).color,"& svg":{color:e.fn.variant({variant:"light",color:e.primaryColor}).color}}}}));function Sn(e){let{classes:o}=ul(),t=So(),r=Hi(e.pathname,e.searchParams,e.menus),[a,n]=(0,ge.useState)(!1);function f(s,i){s.stopPropagation(),s.preventDefault(),t(i),window.innerWidth<768&&e.closeNavbar()}function l(s){s&&t(`/${s}`)}return ge.default.createElement(ge.default.Fragment,null,ge.default.createElement(ze.Navbar,{width:{sm:250},p:"xs"},ge.default.createElement(ze.ScrollArea,null,ge.default.createElement(ze.Navbar.Section,{mb:"sm"},ge.default.createElement(sr,{key:window.location.pathname,name:"resourceType",placeholder:"Resource Type",property:{binding:{valueSet:"https://medplum.com/fhir/ValueSet/resource-types"}},onChange:s=>l(s),creatable:!1,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})),ge.default.createElement(ze.Navbar.Section,{grow:!0},e.menus?.map(s=>ge.default.createElement(ge.default.Fragment,{key:`menu-${s.title}`},ge.default.createElement(ze.Text,{className:o.menuTitle},s.title),s.links?.map(i=>ge.default.createElement(Ri,{key:i.href,to:i.href,active:i.href===r?.href,onClick:u=>f(u,i.href)},ge.default.createElement(Ni,{to:i.href,icon:i.icon}),ge.default.createElement("span",null,i.label))))),e.displayAddBookmark&&ge.default.createElement(ze.Button,{variant:"subtle",size:"xs",mt:"xl",leftIcon:ge.default.createElement(ln,{size:"0.75rem"}),onClick:()=>n(!0)},"Add Bookmark")))),e.pathname&&e.searchParams&&ge.default.createElement(il,{pathname:e.pathname,searchParams:e.searchParams,visible:a,onOk:()=>n(!1),onCancel:()=>n(!1)}))}function Ri(e){let{classes:o,cx:t}=ul();return ge.default.createElement(Pe,{onClick:e.onClick,to:e.to,className:t(o.link,{[o.linkActive]:e.active})},e.children)}function Ni(e){return e.icon?e.icon:ge.default.createElement(ze.Space,{w:30})}function Hi(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=Vi(e,o,f.href);l>a&&(a=l,r=f)}return r}function Vi(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 qi(e){let o=(0,_r.useMantineTheme)(),[t,r]=(0,oo.useState)(localStorage.navbarOpen==="true"),a=b(),n=Yt();function f(i){localStorage.navbarOpen=i.toString(),r(i)}function l(){f(!1)}function s(){f(!t)}return a.isLoading()?oo.default.createElement(Gr,null):oo.default.createElement(_r.AppShell,{styles:{main:{background:o.colorScheme==="dark"?o.colors.dark[8]:o.colors.gray[0]}},padding:0,fixed:!0,header:n&&oo.default.createElement(hn,{pathname:e.pathname,searchParams:e.searchParams,logo:e.logo,version:e.version,navbarToggle:s}),navbar:n&&t?oo.default.createElement(Sn,{pathname:e.pathname,searchParams:e.searchParams,menus:e.menus,closeNavbar:l,displayAddBookmark:e.displayAddBookmark}):void 0},oo.default.createElement(at,{key:`${e.pathname}?${e.searchParams?.toString()}`},oo.default.createElement(oo.Suspense,{fallback:oo.default.createElement(Gr,null)},e.children)))}var Zr=m(require("react"));var dl=require("@mantine/core"),ko=m(require("react"));function lo(e){let o=e.value,{contentType:t,url:r,title:a}=o??{};return r?ko.default.createElement("div",{"data-testid":"attachment-display"},t?.startsWith("image/")&&ko.default.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:r,alt:o?.title}),t?.startsWith("video/")&&ko.default.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},ko.default.createElement("source",{type:t,src:r})),t==="application/pdf"&&!a?.endsWith(".pdf")&&ko.default.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},ko.default.createElement("iframe",{width:"100%",height:"400",src:r+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),ko.default.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},ko.default.createElement(dl.Anchor,{href:o?.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},o?.title||"Download"))):null}function Pn(e){return Zr.default.createElement("div",null,e.values?.map((o,t)=>Zr.default.createElement("div",{key:"attatchment-"+t},Zr.default.createElement(lo,{value:o,maxWidth:e.maxWidth}))))}var bn=require("@mantine/core");var ce=m(require("react"));var Dt=m(require("react"));function st(e){let o=b(),t=(0,Dt.useRef)(null);function r(f){W(f),t.current?.click()}function a(f){W(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 Dt.default.createElement(Dt.default.Fragment,null,Dt.default.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:t,onChange:f=>a(f)}),e.children({onClick:r}))}function Dn(e){let[o,t]=(0,ce.useState)(e.defaultValue??[]),r=(0,ce.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return ce.default.createElement("table",{style:{width:"100%"}},ce.default.createElement("colgroup",null,ce.default.createElement("col",{width:"97%"}),ce.default.createElement("col",{width:"3%"})),ce.default.createElement("tbody",null,o.map((n,f)=>ce.default.createElement("tr",{key:`${f}-${o.length}`},ce.default.createElement("td",null,ce.default.createElement(lo,{value:n,maxWidth:200})),ce.default.createElement("td",null,ce.default.createElement(bn.ActionIcon,{title:"Remove",size:"sm",onClick:l=>{W(l);let s=o.slice();s.splice(f,1),a(s)}},ce.default.createElement(Uo,null))))),ce.default.createElement("tr",null,ce.default.createElement("td",null),ce.default.createElement("td",null,ce.default.createElement(st,{onUpload:n=>{a([...r.current,n])}},n=>ce.default.createElement(bn.ActionIcon,{...n,title:"Add",size:"sm",color:"green"},ce.default.createElement(tr,{size:16})))))))}var Tn=require("@mantine/core"),Bo=m(require("react"));function ir(e){let[o,t]=(0,Bo.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return o?Bo.default.createElement(Bo.default.Fragment,null,Bo.default.createElement(lo,{value:o,maxWidth:200}),Bo.default.createElement(Tn.Button,{onClick:a=>{W(a),r(void 0)}},"Remove")):Bo.default.createElement(st,{onUpload:r},a=>Bo.default.createElement(Tn.Button,{...a},"Upload..."))}var ta=require("@medplum/core"),At=m(require("react"));var Yr=["meta","implicitRules","language","text","contained","extension","modifierExtension"];var cl=require("@mantine/core"),Tt=m(require("react")),Ui=(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 kn(e){let{children:o,compact:t}=e,{classes:r,cx:a}=Ui();return Tt.default.createElement("dl",{className:a(r.root,{[r.compact]:t})},o)}function Bn(e){return Tt.default.createElement(Tt.default.Fragment,null,Tt.default.createElement("dt",null,e.term),Tt.default.createElement("dd",null,e.children))}var L=require("@medplum/core"),H=m(require("react"));var ml=require("@medplum/core"),An=m(require("react"));function it(e){return An.default.createElement(An.default.Fragment,null,(0,ml.formatCodeableConcept)(e.value))}var pl=require("@medplum/core"),Fn=m(require("react"));function Mn(e){return Fn.default.createElement(Fn.default.Fragment,null,(0,pl.formatCoding)(e.value))}var ea=m(require("react"));var wn=m(require("react"));function ur(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("]")),wn.default.createElement(wn.default.Fragment,null,t.join("").trim())}function On(e){let o=e.value;return o?ea.default.createElement(ea.default.Fragment,null,o.name,o.name&&": ",o.telecom?.map(t=>ea.default.createElement(ur,{key:`telecom-${o.name}-${t.value}`,value:t}))):null}var xl=m(require("react"));function En(e){return xl.default.createElement("div",null,e.value?.system,": ",e.value?.value)}var Il=require("@medplum/core"),Ln=m(require("react"));function Rn(e){return Ln.default.createElement(Ln.default.Fragment,null,(0,Il.formatMoney)(e.value))}var gl=require("@medplum/core"),Nn=m(require("react"));function kt(e){return Nn.default.createElement(Nn.default.Fragment,null,(0,gl.formatQuantity)(e.value))}var hl=require("@medplum/core"),Hn=m(require("react"));function dr(e){return Hn.default.createElement(Hn.default.Fragment,null,(0,hl.formatRange)(e.value))}var cr=m(require("react"));function Cl(e){let o=e.value;return o?cr.default.createElement(cr.default.Fragment,null,cr.default.createElement(kt,{value:o.numerator}),"\xA0/\xA0",cr.default.createElement(kt,{value:o.denominator})):null}var yl=require("@medplum/core"),oa=m(require("react"));function Go(e){if(!e.value)return null;let o=e.value.display||e.value.reference||(0,yl.stringify)(e.value);return e.link!==!1&&e.value.reference?oa.default.createElement(Pe,{to:e.value},o):oa.default.createElement(oa.default.Fragment,null,o)}var mr=m(require("react"));function Vn(e){let o=e.property,t=e.values??[],r=o.type?.[0]?.code;return mr.default.createElement(mr.default.Fragment,null,t.map((a,n)=>mr.default.createElement("div",{key:`${n}-${t.length}`},mr.default.createElement(ke,{arrayElement:!0,property:o,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))))}var zo=require("@mantine/core");function ke(e){let{property:o,propertyType:t,value:r}=e;if(o?.path?.endsWith(".id"))return H.default.createElement(zo.Box,{component:"div",sx:{display:"flex",gap:3,alignItems:"center"}},r,H.default.createElement(zo.CopyButton,{value:r,timeout:2e3},({copied:n,copy:f})=>H.default.createElement(zo.Tooltip,{label:n?"Copied":"Copy",withArrow:!0,position:"right"},H.default.createElement(zo.ActionIcon,{color:n?"teal":"gray",onClick:f},n?H.default.createElement(or,{size:"1rem"}):H.default.createElement(Ka,{size:"1rem"})))));if(o?.max==="*"&&!e.arrayElement)return t===L.PropertyType.Attachment?H.default.createElement(Pn,{values:r,maxWidth:e.maxWidth}):H.default.createElement(Vn,{property:o,values:r,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(t){case L.PropertyType.boolean:return H.default.createElement(H.default.Fragment,null,r===void 0?"":(!!r).toString());case L.PropertyType.SystemString:case L.PropertyType.string:return H.default.createElement("div",{style:{whiteSpace:"pre-wrap"}},r);case L.PropertyType.code:case L.PropertyType.date:case L.PropertyType.integer:case L.PropertyType.positiveInt:case L.PropertyType.unsignedInt:case L.PropertyType.uri:case L.PropertyType.url:return H.default.createElement(H.default.Fragment,null,r);case L.PropertyType.canonical:return H.default.createElement(Go,{value:{reference:r},link:e.link});case L.PropertyType.dateTime:case L.PropertyType.instant:return H.default.createElement(H.default.Fragment,null,(0,L.formatDateTime)(r));case L.PropertyType.markdown:return H.default.createElement("pre",null,r);case L.PropertyType.Address:return H.default.createElement(Ra,{value:r});case L.PropertyType.Annotation:return H.default.createElement(H.default.Fragment,null,r?.text);case L.PropertyType.Attachment:return H.default.createElement(lo,{value:r,maxWidth:e.maxWidth});case L.PropertyType.CodeableConcept:return H.default.createElement(it,{value:r});case L.PropertyType.Coding:return H.default.createElement(Mn,{value:r});case L.PropertyType.ContactDetail:return H.default.createElement(On,{value:r});case L.PropertyType.ContactPoint:return H.default.createElement(ur,{value:r});case L.PropertyType.HumanName:return H.default.createElement(fr,{value:r});case L.PropertyType.Identifier:return H.default.createElement(En,{value:r});case L.PropertyType.Money:return H.default.createElement(Rn,{value:r});case L.PropertyType.Period:return H.default.createElement(H.default.Fragment,null,(0,L.formatPeriod)(r));case L.PropertyType.Quantity:case L.PropertyType.Duration:return H.default.createElement(kt,{value:r});case L.PropertyType.Range:return H.default.createElement(dr,{value:r});case L.PropertyType.Ratio:return H.default.createElement(Cl,{value:r});case L.PropertyType.Reference:return H.default.createElement(Go,{value:r,link:e.link});case L.PropertyType.Timing:return H.default.createElement(H.default.Fragment,null,(0,L.formatTiming)(r));case L.PropertyType.Dosage:case L.PropertyType.UsageContext:return H.default.createElement(Bt,{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(Bt,{value:{type:(0,L.getElementDefinitionTypeName)(o),value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}function We(e,o){let t=(0,L.getTypedPropertyValue)(e,o);return t?Array.isArray(t)?[t.map(r=>r.value),t[0].type]:[t.value,t.type]:[void 0,"undefined"]}function Bt(e){let o=e.value,t=o.value;if(!t)return null;let r=o.type,a=ta.globalSchema.types[r];return a?typeof t=="object"&&"name"in t&&Object.keys(t).length===1&&typeof t.name=="string"?At.default.createElement("div",null,t.name):At.default.createElement(kn,{compact:e.compact},Object.entries(a.properties).map(n=>{let f=n[0];if(Yr.includes(f))return null;let l=n[1];l.path||(l.path=r+"."+f);let[s,i]=We(o,f);return e.ignoreMissingValues&&(!s||Array.isArray(s)&&s.length===0)?null:At.default.createElement(Bn,{key:f,term:(0,ta.getPropertyDisplayName)(f)},At.default.createElement(ke,{property:l,propertyType:i,value:s,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))})):At.default.createElement("div",null,r,"\xA0not implemented")}var Ul=require("@mantine/core"),Sr=require("@medplum/core"),Mo=m(require("react"));var ra=require("@mantine/core"),pr=m(require("react"));function xr(e){return pr.default.createElement(ra.Group,{noWrap:!0},pr.default.createElement("div",null,e.children),pr.default.createElement("div",null,pr.default.createElement(ra.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk},(()=>null)())))}var Sl=require("@mantine/core"),Pl=m(require("react"));function Be(e,o){return e?.issue?.filter(t=>vl(t.expression?.[0],o))?.map(t=>t.details?.text)?.join(`
|
|
65
|
+
`)}function Ir(e,o){return e?.issue?.filter(t=>vl(t.expression?.[0],o))}function vl(e,o){if(e===o)return!0;if(!e||!o)return!1;let t=e.indexOf(".");if(t>=0&&e.substring(t+1)===o)return!0;let r=o.indexOf(".");return r>=0&&o.substring(r+1)===e}function Xe(e){return Pl.default.createElement(Sl.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk,error:Be(e.outcome,e.htmlFor)},e.children)}var po=require("@mantine/core"),aa=require("@medplum/core"),Ae=m(require("react"));function Gi(e){let o=b(),t=te(e.defaultValue),[r,a]=(0,Ae.useState)(),[n,f]=(0,Ae.useState)();return(0,Ae.useEffect)(()=>{t&&(f((0,aa.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(po.Stack,{mb:"xl"},Ae.default.createElement(Xe,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},Ae.default.createElement(po.TextInput,{name:"resourceType",defaultValue:n.resourceType,disabled:!0})),Ae.default.createElement(Xe,{title:"ID",htmlFor:"id",outcome:e.outcome},Ae.default.createElement(po.TextInput,{name:"id",defaultValue:n.id,disabled:!0}))),Ae.default.createElement(Mt,{typeName:n.resourceType,defaultValue:n,outcome:e.outcome,onChange:f}),Ae.default.createElement(po.Group,{position:"right",mt:"xl"},Ae.default.createElement(po.Button,{type:"submit"},"OK"),e.onDelete&&Ae.default.createElement(po.Button,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(n)}},"Delete")))}function Ft(e,o,t,r,a){let n=r.type;if(n.length>1)for(let f of n){let l=o.replace("[x]",(0,aa.capitalize)(f.code));l in e&&delete e[l]}return e[t]=a,e}var ro=require("@mantine/core"),R=require("@medplum/core"),G=m(require("react"));var na=m(require("react"));function qn(e){let[o,t]=(0,na.useState)(e.defaultValue);function r(a){let n=Wi(a);t(n),e.onChange&&e.onChange(n)}return na.default.createElement(bt,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:o&&zi(o),maxSelectedValues:1,onChange:r})}function zi(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function Wi(e){if(e.length!==0)return{coding:e.map(o=>({system:o.system,code:o.code,display:o.display}))}}var fa=m(require("react"));function Un(e){let[o,t]=(0,fa.useState)(e.defaultValue);function r(a){let n=a[0],f=n&&Qi(n);t(f),e.onChange&&e.onChange(f)}return fa.default.createElement(bt,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:o&&Xi(o),maxSelectedValues:1,onChange:r})}function Xi(e){return{system:e.system,code:e.code,display:e.display}}function Qi(e){return{system:e.system,code:e.code,display:e.display}}var la=require("@mantine/core"),Wo=m(require("react"));var ut=require("@mantine/core"),Ao=m(require("react"));function gr(e){let[o,t]=(0,Ao.useState)(e.defaultValue),r=(0,Ao.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 Ao.default.createElement(ut.Group,{spacing:"xs",grow:!0,noWrap:!0},Ao.default.createElement(ut.NativeSelect,{"data-testid":"system",defaultValue:o?.system,onChange:s=>n(s.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),Ao.default.createElement(ut.NativeSelect,{"data-testid":"use",defaultValue:o?.use,onChange:s=>f(s.currentTarget.value),data:["","home","work","temp","old","mobile"]}),Ao.default.createElement(ut.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:s=>l(s.currentTarget.value)}))}function Gn(e){let[o,t]=(0,Wo.useState)(e.defaultValue),r=(0,Wo.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 Wo.default.createElement(la.Group,{spacing:"xs",grow:!0,noWrap:!0},Wo.default.createElement(la.TextInput,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:o?.name,onChange:l=>n(l.currentTarget.value)}),Wo.default.createElement(gr,{name:e.name+"-telecom",defaultValue:o?.telecom?.[0],onChange:f}))}var bl=require("@mantine/core"),zn=require("@medplum/core"),Dl=m(require("react"));function to(e){return Dl.default.createElement(bl.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:Ji(),defaultValue:Tl(e.defaultValue),autoFocus:e.autoFocus,error:Be(e.outcome,e.name),onChange:o=>{if(e.onChange){let t=o.currentTarget.value;e.onChange(kl(t))}}})}function Tl(e){if(!e)return"";let o=new Date(e);return(0,zn.isValidDate)(o)?o.toLocaleDateString("sv")+"T"+o.toLocaleTimeString("sv"):""}function kl(e){if(!e)return"";let o=new Date(e);return(0,zn.isValidDate)(o)?o.toISOString():""}function Ji(){return"datetime-local"}var Bl=require("@mantine/core"),Al=require("@medplum/core"),Fl=m(require("react"));function Ml(e){return Fl.default.createElement(Bl.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:(0,Al.stringify)(e.defaultValue),deserialize:JSON.parse,onChange:o=>{e.onChange&&e.onChange(JSON.parse(o))}})}var Fo=require("@mantine/core"),so=m(require("react"));function Wn(e){let[o,t]=(0,so.useState)(e.defaultValue),r=(0,so.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 so.default.createElement(Fo.Group,{spacing:"xs",grow:!0,noWrap:!0},so.default.createElement(Fo.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"]}),so.default.createElement(Fo.TextInput,{placeholder:"Prefix",name:e.name+"-prefix",defaultValue:o?.prefix?.join(" "),onChange:u=>f(u.currentTarget.value)}),so.default.createElement(Fo.TextInput,{placeholder:"Given",name:e.name+"-given",defaultValue:o?.given?.join(" "),onChange:u=>l(u.currentTarget.value)}),so.default.createElement(Fo.TextInput,{name:e.name+"-family",placeholder:"Family",defaultValue:o?.family,onChange:u=>s(u.currentTarget.value)}),so.default.createElement(Fo.TextInput,{placeholder:"Suffix",name:e.name+"-suffix",defaultValue:o?.suffix?.join(" "),onChange:u=>i(u.currentTarget.value)}))}var hr=require("@mantine/core"),wt=m(require("react"));function Xn(e){let[o,t]=(0,wt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return wt.default.createElement(hr.Group,{spacing:"xs",grow:!0,noWrap:!0},wt.default.createElement(hr.TextInput,{placeholder:"System",defaultValue:o?.system,onChange:a=>r({...o,system:a.currentTarget.value})}),wt.default.createElement(hr.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:a=>r({...o,value:a.currentTarget.value})}))}var sa=require("@mantine/core");var xo=m(require("react")),$i=["USD","EUR","CAD","GBP","AUD"];function Qn(e){let{onChange:o}=e,[t,r]=(0,xo.useState)(e.defaultValue),a=(0,xo.useCallback)(s=>{r(s),o&&o(s)},[o]),n=(0,xo.useCallback)(s=>{a({...t,currency:s.currentTarget.value})},[t,a]),f=(0,xo.useCallback)(s=>{a({...t,value:s.currentTarget.valueAsNumber})},[t,a]),l=xo.default.createElement(sa.NativeSelect,{defaultValue:t?.currency,data:$i,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:n});return xo.default.createElement(sa.TextInput,{type:"number",label:e.label,placeholder:e.placeholder??"Value",defaultValue:t?.value?.toString()??"USD",icon:xo.default.createElement(ja,{size:14}),rightSection:l,rightSectionWidth:92,onChange:f})}var wl=require("@mantine/core"),Ot=m(require("react"));function Ol(e){let[o,t]=(0,Ot.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Ot.default.createElement(wl.Group,{spacing:"xs",grow:!0,noWrap:!0},Ot.default.createElement(to,{name:e.name+".start",placeholder:"Start",defaultValue:o?.start,onChange:a=>r({...o,start:a})}),Ot.default.createElement(to,{name:e.name+".end",placeholder:"End",defaultValue:o?.end,onChange:a=>r({...o,end:a})}))}var ct=require("@mantine/core"),dt=m(require("react"));function _e(e){let[o,t]=(0,dt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return dt.default.createElement(ct.Group,{spacing:"xs",grow:!0,noWrap:!0},dt.default.createElement(ct.NativeSelect,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:o?.comparator,data:["","<","<=",">=",">"],onChange:a=>r({...o,comparator:a.currentTarget.value})}),dt.default.createElement(ct.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:Ki(a.currentTarget.value)})}}),dt.default.createElement(ct.TextInput,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:o?.unit,onChange:a=>r({...o,unit:a.currentTarget.value})}))}function Ki(e){if(e)return parseFloat(e)}var El=require("@mantine/core"),Et=m(require("react"));function Lt(e){let[o,t]=(0,Et.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Et.default.createElement(El.Group,{spacing:"xs",grow:!0,noWrap:!0},Et.default.createElement(_e,{name:e.name+"-low",defaultValue:o?.low,onChange:a=>r({...o,low:a})}),Et.default.createElement(_e,{name:e.name+"-high",defaultValue:o?.high,onChange:a=>r({...o,high:a})}))}var Ll=require("@mantine/core"),Rt=m(require("react"));function Rl(e){let[o,t]=(0,Rt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Rt.default.createElement(Ll.Group,{spacing:"xs",grow:!0,noWrap:!0},Rt.default.createElement(_e,{name:e.name+"-numerator",defaultValue:o?.numerator,onChange:a=>r({...o,numerator:a})}),Rt.default.createElement(_e,{name:e.name+"-denominator",defaultValue:o?.denominator,onChange:a=>r({...o,denominator:a})}))}var Nt=require("@mantine/core"),Nl=require("@medplum/core"),io=m(require("react"));var Cr=require("@mantine/core"),yr=require("@medplum/core"),Ne=m(require("react"));var ji={Observation:"code",User:"email:contains"},_i=["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 Zi(e){return{value:(0,yr.getReferenceString)(e),label:(0,yr.getDisplayString)(e),resource:e}}function vr(e){let o=b(),t=e.resourceType,[r,a]=(0,Ne.useState)(),n=te(e.defaultValue,a),f=e.onChange,l=(0,Ne.useCallback)(async(i,u)=>{let p=eu(t),c=new URLSearchParams({[p]:i,_count:"10"});return await o.searchResources(t,c,{signal:u})},[o,t]),s=(0,Ne.useCallback)(i=>{f&&f(i[0])},[f]);return e.defaultValue&&!r&&!n?null:Ne.default.createElement(ft,{name:e.name,itemComponent:Yi,defaultValue:n,placeholder:e.placeholder,maxSelectedValues:1,toKey:yr.getReferenceString,toOption:Zi,loadOptions:l,onChange:s,clearable:!0})}var Yi=(0,Ne.forwardRef)(({label:e,resource:o,...t},r)=>Ne.default.createElement("div",{ref:r,...t},Ne.default.createElement(Cr.Group,{noWrap:!0},Ne.default.createElement(Oe,{value:o}),Ne.default.createElement("div",null,Ne.default.createElement(Cr.Text,null,e),Ne.default.createElement(Cr.Text,{size:"xs",color:"dimmed"},o.birthDate)))));function eu(e){return ji[e]??(_i.includes(e)?"name":"_id")}function mt(e){let o=ou(e.targetTypes),t=tu(e.defaultValue,o),[r,a]=(0,io.useState)(e.defaultValue),[n,f]=(0,io.useState)(t),l=(0,io.useRef)();l.current=r;let s=(0,io.useRef)();s.current=n;function i(u){a(u),e.onChange&&e.onChange(u)}return io.default.createElement(Nt.Group,{spacing:"xs",grow:!0,noWrap:!0},o?io.default.createElement(Nt.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}):io.default.createElement(Nt.TextInput,{"data-autofocus":e.autoFocus,"data-testid":"reference-input-resource-type-input",defaultValue:n,autoFocus:e.autoFocus,onChange:u=>f(u.currentTarget.value)}),io.default.createElement(vr,{resourceType:n,name:e.name+"-id",placeholder:e.placeholder,defaultValue:r,onChange:u=>{i(u?(0,Nl.createReference)(u):void 0)}}))}function ou(e){if(!(!e||e.length===0||e.length===1&&e[0]==="Resource"))return e}function tu(e,o){let t=e?.reference?.split("/")[0];if(t)return t;if(o&&o.length>0)return o[0]}var Jn=require("@mantine/core");var he=m(require("react"));function $n(e){let[o,t]=(0,he.useState)(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),r=(0,he.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return he.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},he.default.createElement("colgroup",null,he.default.createElement("col",{width:"97%"}),he.default.createElement("col",{width:"3%"})),he.default.createElement("tbody",null,o.map((n,f)=>he.default.createElement("tr",{key:`${f}-${o.length}`},he.default.createElement("td",null,he.default.createElement(Io,{arrayElement:!0,property:e.property,name:e.name+"."+f,defaultValue:n,onChange:l=>{let s=[...r.current];s[f]=l,a(s)}})),he.default.createElement("td",{style:{textAlign:"right"}},he.default.createElement(Jn.ActionIcon,{title:"Remove",size:"sm",onClick:l=>{W(l);let s=[...r.current];s.splice(f,1),a(s)}},he.default.createElement(Uo,null))))),he.default.createElement("tr",null,he.default.createElement("td",null),he.default.createElement("td",{style:{textAlign:"right"}},he.default.createElement(Jn.ActionIcon,{title:"Add",size:"sm",color:"green",onClick:n=>{W(n);let f=[...r.current];f.push(void 0),a(f)}},he.default.createElement(yt,null))))))}var Ce=require("@mantine/core"),Vl=require("@medplum/core"),_=m(require("react"));var ru=["sun","mon","tue","wed","thu","fri","sat"];function Kn(e){let[o,t]=(0,_.useState)(e.defaultValue),[r,a]=(0,_.useState)(!1),n=(0,_.useRef)();return n.current=o,_.default.createElement(_.default.Fragment,null,_.default.createElement(Ce.Group,{spacing:"xs",grow:!0,noWrap:!0},_.default.createElement("span",null,(0,Vl.formatTiming)(n.current)||"No repeat"),_.default.createElement(Ce.Button,{onClick:()=>a(!0)},"Edit")),_.default.createElement(au,{visible:r,defaultValue:n.current,onOk:f=>{e.onChange&&e.onChange(f),t(f),a(!1)},onCancel:()=>a(!1)}))}var Hl={repeat:{period:1,periodUnit:"d"}};function au(e){let[o,t]=(0,_.useState)(e.defaultValue||Hl),r=(0,_.useRef)();r.current=o;function a(i){t({...r.current,event:[i]})}function n(i){t({...r.current,repeat:i})}function f(i){n({...r.current?.repeat,period:i})}function l(i){n({...r.current?.repeat,periodUnit:i})}function s(i){n({...r.current?.repeat,dayOfWeek:i})}return _.default.createElement(Ce.Modal,{title:"Timing",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>e.onCancel()},_.default.createElement(Ce.Stack,null,_.default.createElement(Xe,{title:"Starts on",htmlFor:"timing-dialog-start"},_.default.createElement(to,{name:"timing-dialog-start",onChange:i=>a(i)})),_.default.createElement(Ce.Switch,{label:"Repeat",checked:!!o.repeat,onChange:i=>n(i.currentTarget.checked?Hl.repeat:void 0)}),o.repeat&&_.default.createElement(_.default.Fragment,null,_.default.createElement(Xe,{title:"Repeat every",htmlFor:"timing-dialog-period"},_.default.createElement(Ce.Group,{spacing:"xs",grow:!0,noWrap:!0},_.default.createElement(Ce.TextInput,{type:"number",step:1,id:"timing-dialog-period",name:"timing-dialog-period",defaultValue:o.repeat.period||1,onChange:i=>f(parseInt(i.currentTarget.value,10)||1)}),_.default.createElement(Ce.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"&&_.default.createElement(Xe,{title:"Repeat on"},_.default.createElement(Ce.Chip.Group,{multiple:!0,onChange:s},_.default.createElement(Ce.Group,{position:"apart",mt:"md",spacing:"xs"},ru.map(i=>_.default.createElement(Ce.Chip,{key:i,value:i,size:"xs",radius:"xl"},i.charAt(0).toUpperCase())))))),_.default.createElement(Ce.Group,{position:"right"},_.default.createElement(Ce.Button,{onClick:()=>e.onOk(o)},"OK"))))}function Io(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===R.PropertyType.Attachment?G.default.createElement(Dn,{name:r,defaultValue:a,onChange:e.onChange}):G.default.createElement($n,{property:o,name:r,defaultValue:a,onChange:e.onChange});let n=o.type;return n.length>1?G.default.createElement(ql,{elementDefinitionTypes:n,...e}):G.default.createElement(jn,{elementDefinitionType:n[0],...e})}function ql(e){let o=e.elementDefinitionTypes,t;e.defaultPropertyType&&(t=o.find(n=>n.code===e.defaultPropertyType)),t||(t=o[0]);let[r,a]=(0,G.useState)(t);return G.default.createElement(ro.Group,{spacing:"xs",grow:!0,noWrap:!0},G.default.createElement(ro.NativeSelect,{style:{width:"200px"},defaultValue:r.code,onChange:n=>{a(o.find(f=>f.code===n.currentTarget.value))},data:o.map(n=>({value:n.code,label:n.code}))}),G.default.createElement(jn,{...e,elementDefinitionType:r,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",(0,R.capitalize)(r.code)))}}))}function jn(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 R.PropertyType.SystemString:case R.PropertyType.canonical:case R.PropertyType.string:case R.PropertyType.time:case R.PropertyType.uri:case R.PropertyType.url:return G.default.createElement(ro.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 R.PropertyType.date:return G.default.createElement(ro.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 R.PropertyType.dateTime:case R.PropertyType.instant:return G.default.createElement(to,{name:r,defaultValue:a,onChange:e.onChange,outcome:e.outcome});case R.PropertyType.decimal:case R.PropertyType.integer:case R.PropertyType.positiveInt:case R.PropertyType.unsignedInt:return G.default.createElement(ro.TextInput,{type:"number",step:t===R.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 R.PropertyType.code:return G.default.createElement(sr,{property:o,name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.boolean:return G.default.createElement(ro.Checkbox,{id:r,name:r,"data-testid":r,defaultChecked:!!a,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.checked)}});case R.PropertyType.markdown:return G.default.createElement(ro.Textarea,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)}});case R.PropertyType.Address:return G.default.createElement(Na,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Annotation:return G.default.createElement(Ha,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Attachment:return G.default.createElement(ir,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.CodeableConcept:return G.default.createElement(qn,{property:o,name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Coding:return G.default.createElement(Un,{property:o,name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.ContactDetail:return G.default.createElement(Gn,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.ContactPoint:return G.default.createElement(gr,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Extension:return G.default.createElement(Ml,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.HumanName:return G.default.createElement(Wn,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Identifier:return G.default.createElement(Xn,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Money:return G.default.createElement(Qn,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Period:return G.default.createElement(Ol,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Duration:case R.PropertyType.Quantity:return G.default.createElement(_e,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Range:return G.default.createElement(Lt,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Ratio:return G.default.createElement(Rl,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Reference:return G.default.createElement(mt,{name:r,defaultValue:a,targetTypes:nu(o),onChange:e.onChange});case R.PropertyType.Timing:return G.default.createElement(Kn,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Dosage:case R.PropertyType.UsageContext:return G.default.createElement(Mt,{typeName:t,defaultValue:a,onChange:e.onChange,outcome:e.outcome});default:return G.default.createElement(Mt,{typeName:(0,R.getElementDefinitionTypeName)(o),defaultValue:a,onChange:e.onChange,outcome:e.outcome})}}function nu(e){return e?.type?.[0]?.targetProfile?.map(o=>o.split("/").pop())}function Mt(e){let[o,t]=(0,Mo.useState)(e.defaultValue??{});function r(l){t(l),e.onChange&&e.onChange(l)}let a=e.typeName,n=Sr.globalSchema.types[a];if(!n)return Mo.default.createElement("div",null,a,"\xA0not implemented");let f={type:a,value:o};return Mo.default.createElement(Ul.Stack,null,Object.entries(n.properties).map(l=>{let s=l[0];if(s==="id"||Yr.includes(s))return null;let i=l[1];if(!i.type)return null;let[u,p]=We(f,s),c=i.min!==void 0&&i.min>0;return i.type.length===1&&i.type[0].code==="boolean"?Mo.default.createElement(xr,{key:s,title:(0,Sr.getPropertyDisplayName)(s),description:i.definition,htmlFor:s},Mo.default.createElement(Io,{property:i,name:s,defaultValue:u,defaultPropertyType:p,outcome:e.outcome,onChange:(v,T)=>{r(Ft(o,s,T??s,l[1],v))}})):Mo.default.createElement(Xe,{key:s,title:(0,Sr.getPropertyDisplayName)(s),description:i.definition,withAsterisk:c,htmlFor:s,outcome:e.outcome},Mo.default.createElement(Io,{property:i,name:s,defaultValue:u,defaultPropertyType:p,onChange:(v,T)=>{r(Ft(o,s,T??s,l[1],v))}}))}))}var wo=require("@mantine/core"),se=m(require("react")),fu=(0,wo.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 Gl(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function _n(e){let{classes:o}=fu(),{onChangeMonth:t,onClick:r}=e,[a,n]=(0,se.useState)(ia);function f(s){n(i=>{let u=new Date(i.getTime());return u.setMonth(i.getMonth()+s),t(u),u})}let l=(0,se.useMemo)(()=>lu(a,e.slots),[a,e.slots]);return se.default.createElement("div",null,se.default.createElement(wo.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},se.default.createElement("p",{style:{flex:1}},Gl(a)),se.default.createElement(wo.Group,{position:"right",spacing:"xs"},se.default.createElement(wo.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>f(-1)},"<"),se.default.createElement(wo.Button,{variant:"outline","aria-label":"Next month",onClick:()=>f(1)},">"))),se.default.createElement("table",{className:o.table},se.default.createElement("thead",null,se.default.createElement("tr",null,se.default.createElement("th",null,"SUN"),se.default.createElement("th",null,"MON"),se.default.createElement("th",null,"TUE"),se.default.createElement("th",null,"WED"),se.default.createElement("th",null,"THU"),se.default.createElement("th",null,"FRI"),se.default.createElement("th",null,"SAT"))),se.default.createElement("tbody",null,l.map((s,i)=>se.default.createElement("tr",{key:"week-"+i},s.map((u,p)=>se.default.createElement("td",{key:"day-"+p},u&&se.default.createElement(wo.Button,{disabled:!u.available,onClick:()=>r(u.date)},u.date.getDate()))))))))}function ia(){let e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}function lu(e,o){let t=new Date(e.getFullYear(),e.getMonth()),r=[],a=[];for(let n=0;n<t.getDay();n++)a.push(void 0);for(;t.getMonth()===e.getMonth();)a.push({date:new Date(t.getTime()),available:su(t,o)}),t.getDay()===6&&(r.push(a),a=[]),t.setDate(t.getDate()+1);if(t.getDay()!==0){for(let n=t.getDay();n<7;n++)a.push(void 0);r.push(a)}return r}function su(e,o){for(let t of o){let r=new Date(t.start);if(r.getFullYear()===e.getFullYear()&&r.getMonth()===e.getMonth()&&r.getDate()===e.getDate())return!0}return!1}var ua=require("@mantine/core"),zl=m(require("react")),iu=(0,ua.createStyles)(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function Oo(e){let{children:o,...t}=e,{classes:r}=iu();return zl.default.createElement(ua.Container,{className:r.root,...t},o)}var rs=m(require("react"));var ie=require("@mantine/core"),Gt=require("@mantine/notifications"),Qo=require("@medplum/core");var y=m(require("react"));var oe=require("@mantine/core"),ao=require("@medplum/core"),g=m(require("react"));var Ht=require("@mantine/core"),Zn=m(require("react")),uu=(0,Ht.createStyles)(e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));function Yn({value:e}){let{classes:o}=uu();return e?Zn.default.createElement(Ht.Stack,{justify:"flex-start",spacing:"xs"},e.map(t=>t.text&&Zn.default.createElement(Ht.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 Xl=require("@mantine/core"),da=m(require("react"));var Wl=require("@mantine/core"),Vt=require("@medplum/core"),Pr=m(require("react"));function uo(e){let{value:o,link:t,...r}=e,[a,n]=(0,Pr.useState)(),f=te(o,n),l;if(a&&!(0,Vt.isOk)(a))l=`[${(0,Vt.normalizeErrorString)(a)}]`;else if(f)l=(0,Vt.getDisplayString)(f);else return null;return t?Pr.default.createElement(Pe,{to:o,...r},l):Pr.default.createElement(Wl.Text,{component:"span",...r},l)}function Eo(e){return da.default.createElement(Xl.Group,{spacing:"xs"},da.default.createElement(Oe,{size:24,radius:12,value:e.value,link:e.link}),da.default.createElement(uo,{value:e.value,link:e.link}))}var Ql=require("@mantine/core"),Jl=m(require("react")),du={draft:"blue",active:"blue","on-hold":"yellow",revoked:"red",completed:"green","entered-in-error":"red",unknown:"gray",retired:"gray",registered:"blue",preliminary:"blue",final:"green",amended:"yellow",corrected:"yellow",cancelled:"red",requested:"blue",received:"blue",accepted:"blue",rejected:"red",ready:"blue","in-progress":"blue",failed:"red",proposed:"blue",pending:"blue",booked:"blue",arrived:"blue",fulfilled:"green",noshow:"red","checked-in":"blue",waitlist:"gray",routine:"gray",urgent:"red",asap:"red",stat:"red"};function br(e){return Jl.default.createElement(Ql.Badge,{color:du[e.status]},e.status)}var $l=(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}}));ca.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};function ca(e){let o=b(),t=te(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(oe.Stack,null,g.default.createElement(oe.Title,null,"Diagnostic Report"),g.default.createElement(cu,{value:t}),!e.hideSpecimenInfo&&mu(r),t.result&&g.default.createElement(Kl,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&g.default.createElement(Yn,{value:n}))}function cu({value:e}){return g.default.createElement(oe.Group,{mt:"md",spacing:30},e.subject&&g.default.createElement("div",null,g.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),g.default.createElement(oe.Text,null,g.default.createElement(Eo,{value:e.subject,link:!0}))),e.resultsInterpreter?.map(o=>g.default.createElement("div",{key:o.reference},g.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),g.default.createElement(oe.Text,null,g.default.createElement(Eo,{value:o,link:!0})))),e.performer?.map(o=>g.default.createElement("div",{key:o.reference},g.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Performer"),g.default.createElement(oe.Text,null,g.default.createElement(Eo,{value:o,link:!0})))),e.issued&&g.default.createElement("div",null,g.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),g.default.createElement(oe.Text,null,(0,ao.formatDateTime)(e.issued))),e.status&&g.default.createElement("div",null,g.default.createElement(oe.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),g.default.createElement(oe.Text,null,(0,ao.capitalize)(e.status))))}function mu(e){return g.default.createElement(oe.Stack,{spacing:"xs"},g.default.createElement(oe.Title,{order:2,size:"h6"},"Specimens"),g.default.createElement(oe.List,{type:"ordered"},e?.map(o=>g.default.createElement(oe.List.Item,{ml:"sm",key:`specimen-${o.id}`},g.default.createElement(oe.Group,{spacing:20},g.default.createElement(oe.Group,{spacing:5},g.default.createElement(oe.Text,{fw:500},"Collected:")," ",(0,ao.formatDateTime)(o.collection?.collectedDateTime)),g.default.createElement(oe.Group,{spacing:5},g.default.createElement(oe.Text,{fw:500},"Received:")," ",(0,ao.formatDateTime)(o.receivedTime)))))))}function Kl(e){let{classes:o}=$l();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,e.value?.map(t=>g.default.createElement(pu,{key:`obs-${(0,ao.isReference)(t)?t.reference:t.id}`,hideObservationNotes:e.hideObservationNotes,value:t}))))}function pu(e){let{classes:o,cx:t}=$l(),r=te(e.value);if(!r)return null;let a=!e.hideObservationNotes&&r.note,n=gu(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(Pe,{to:r},g.default.createElement(it,{value:r.code}))),g.default.createElement("td",null,g.default.createElement(xu,{value:r})),g.default.createElement("td",null,g.default.createElement(Iu,{value:r.referenceRange})),g.default.createElement("td",null,r.interpretation&&r.interpretation.length>0&&g.default.createElement(it,{value:r.interpretation[0]})),g.default.createElement("td",null,r.category&&r.category.length>0&&g.default.createElement("ul",null,r.category.map(f=>g.default.createElement("li",{key:`category-${(0,ao.formatCodeableConcept)(f)}`},g.default.createElement(it,{value:f}))))),g.default.createElement("td",null,r.performer?.map(f=>g.default.createElement(Go,{key:f.reference,value:f}))),g.default.createElement("td",null,r.status&&g.default.createElement(br,{status:r.status}))),a&&g.default.createElement("tr",null,g.default.createElement("td",{colSpan:6},g.default.createElement(Yn,{value:r.note}))))}function xu(e){let o=e.value;return g.default.createElement(g.default.Fragment,null,(0,ao.formatObservationValue)(o))}function Iu(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(dr,{value:o}):null}function gu(e){let o=e.interpretation?.[0]?.coding?.[0]?.code;return o==="AA"||o==="LL"||o==="HH"||o==="A"}var qt=require("@mantine/core"),jl=m(require("react")),hu=(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%"}}})),Cu={shadow:"xs",radius:"md",withBorder:!0};function pt(e){let{className:o,children:t,width:r,fill:a,unstyled:n,...f}=(0,qt.useComponentDefaultProps)("Panel",Cu,e),{classes:l,cx:s}=hu({width:r,fill:a},{name:"Panel",unstyled:n});return jl.default.createElement(qt.Paper,{className:s(l.paper,o),...f},t)}var Zl=require("@mantine/core"),Xo=require("@medplum/core"),me=m(require("react"));var yu=(0,Zl.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 Yl(e){let{classes:o}=yu(),t=b(),[r,a]=(0,me.useState)();if((0,me.useEffect)(()=>{t.requestSchema(e.original.resourceType).then(a).catch(console.log)},[t,e.original.resourceType]),!r)return null;let n=r.types[e.original.resourceType];return n?me.default.createElement("table",{className:o.root},me.default.createElement("colgroup",null,me.default.createElement("col",{style:{width:"30%"}}),me.default.createElement("col",{style:{width:"35%"}}),me.default.createElement("col",{style:{width:"35%"}})),me.default.createElement("thead",null,me.default.createElement("tr",null,me.default.createElement("th",null,"Property"),me.default.createElement("th",null,"Before"),me.default.createElement("th",null,"After"))),me.default.createElement("tbody",null,Object.entries(n.properties).map(f=>{let l=f[0];if(l==="id"||l==="meta")return null;let s=f[1],[i,u]=We((0,Xo.toTypedValue)(e.original),l),[p,c]=We((0,Xo.toTypedValue)(e.revised),l);return _l(i)&&_l(p)||(0,Xo.stringify)(i)===(0,Xo.stringify)(p)?null:me.default.createElement("tr",{key:l},me.default.createElement("td",null,(0,Xo.getPropertyDisplayName)(l)),me.default.createElement("td",{className:o.removed},me.default.createElement(ke,{property:s,propertyType:u,value:i,ignoreMissingValues:!0})),me.default.createElement("td",{className:o.added},me.default.createElement(ke,{property:s,propertyType:c,value:p,ignoreMissingValues:!0})))}))):null}function _l(e){return!e||Array.isArray(e)&&e.length===0||typeof e=="object"&&Object.keys(e).length===0}var Ut=m(require("react"));function ma(e){let o=b(),t=te(e.value),[r,a]=(0,Ut.useState)();return(0,Ut.useEffect)(()=>{t&&o.requestSchema(t.resourceType).then(a).catch(console.log)},[o,t]),!r||!t?null:Ut.default.createElement(Bt,{value:{type:t.resourceType,value:e.forceUseInput?e.value:t},ignoreMissingValues:e.ignoreMissingValues})}var co=require("@mantine/core"),pa=require("@medplum/core");var ve=m(require("react"));function ef(e){return ve.default.createElement(Oo,null,e.children)}function Lo(e){let{resource:o,profile:t,padding:r,popupMenuItems:a,...n}=e,f=t??o.meta?.author,l=e.dateTime??o.meta?.lastUpdated;return ve.default.createElement(pt,{"data-testid":"timeline-item",fill:!0,...n},ve.default.createElement(co.Group,{position:"apart",spacing:8,mx:"xs",my:"sm"},ve.default.createElement(Oe,{value:f,link:!0,size:"md"}),ve.default.createElement("div",{style:{flex:1}},ve.default.createElement(co.Text,{size:"sm"},ve.default.createElement(uo,{color:"dark",weight:500,value:f,link:!0})),ve.default.createElement(co.Text,{size:"xs"},ve.default.createElement(Pe,{color:"dimmed",to:e.resource},(0,pa.formatDateTime)(l)),ve.default.createElement(co.Text,{component:"span",color:"dimmed",mx:8},"\xB7"),ve.default.createElement(Pe,{color:"dimmed",to:e.resource},e.resource.resourceType))),a&&ve.default.createElement(co.Menu,{position:"bottom-end",shadow:"md",width:200},ve.default.createElement(co.Menu.Target,null,ve.default.createElement(co.ActionIcon,{radius:"xl","aria-label":`Actions for ${(0,pa.getReferenceString)(e.resource)}`},ve.default.createElement(_a,null))),a)),ve.default.createElement(at,null,r&&ve.default.createElement("div",{style:{padding:"0 16px 16px 16px"}},e.children),!r&&ve.default.createElement(ve.default.Fragment,null,e.children)))}function of(e,o){e.sort((t,r)=>{let a=es(t,o),n=es(r,o);return a>n?1:a<n?-1:os(t,o)-os(r,o)})}function es(e,o){if(!ts(e,o)){let t=e.priority;if(typeof t=="string")return{stat:4,asap:3,urgent:2}[t]??0}return 0}function os(e,o){if(!ts(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 ts(e,o){return!!o&&e.resourceType===o.resourceType&&e.id===o.id}var vu=(0,ie.createStyles)(e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}}));function Ro(e){let o=b(),t=So(),r=o.getProfile(),a=(0,y.useRef)(null),n=te(e.value),[f,l]=(0,y.useState)(),[s,i]=(0,y.useState)([]),u=e.loadTimelineResources,p=(0,y.useRef)(s);p.current=s;let c=(0,y.useCallback)(S=>{of(S,n),S.reverse(),i(S)},[n]),v=(0,y.useCallback)(S=>{let U=[];for(let no of S){if(no.status!=="fulfilled")continue;let Re=no.value;if(Re.type==="history"&&l(Re),Re.entry)for(let tt of Re.entry)U.push(tt.resource)}c(U)},[c]),T=(0,y.useCallback)(S=>c([...p.current,S]),[c]),F=(0,y.useCallback)(()=>{let S,U;"resourceType"in e.value?(S=e.value.resourceType,U=e.value.id):[S,U]=e.value.reference?.split("/"),u(o,S,U).then(v).catch(console.log)},[o,e.value,u,v]);(0,y.useEffect)(()=>F(),[F]);function h(S){!n||!e.createCommunication||o.createResource(e.createCommunication(n,r,S)).then(U=>T(U)).catch(console.log)}function k(S){!n||!e.createMedia||o.createResource(e.createMedia(n,r,S)).then(U=>T(U)).then(()=>(0,Gt.updateNotification)({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:y.default.createElement(or,{size:16}),autoClose:2e3})).catch(U=>(0,Gt.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,Qo.normalizeErrorString)(U),icon:y.default.createElement(Ya,{size:16}),autoClose:2e3}))}function d(S,U){return o.updateResource({...S,priority:U})}function N(S){d(S,"stat").then(F).catch(console.log)}function P(S){d(S,"routine").then(F).catch(console.log)}function V(S){t(`/${S.resourceType}/${S.id}`)}function Ee(S){t(`/${S.resourceType}/${S.id}/edit`)}function Le(S){t(`/${S.resourceType}/${S.id}/delete`)}function Me(S){t(`/${S.resourceType}/${S.id}/_history/${S.meta?.versionId}`)}function ye(){(0,Gt.showNotification)({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})}function jt(S){(0,Gt.updateNotification)({id:"upload-notification",loading:!0,title:"Uploading...",message:Bu(S),autoClose:!1,withCloseButton:!1})}return n?y.default.createElement(ef,null,e.createCommunication&&y.default.createElement(pt,null,y.default.createElement(le,{testid:"timeline-form",onSubmit:S=>{h(S.text);let U=a.current;U&&(U.value="",U.focus())}},y.default.createElement(ie.Group,{spacing:"xs",noWrap:!0,style:{width:"100%"}},y.default.createElement(Oe,{value:r}),y.default.createElement(ie.TextInput,{name:"text",ref:a,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),y.default.createElement(ie.ActionIcon,{type:"submit",radius:"xl",color:"blue",variant:"filled"},y.default.createElement(an,{size:16})),y.default.createElement(st,{onUpload:k,onUploadStart:ye,onUploadProgress:jt},S=>y.default.createElement(ie.ActionIcon,{...S,radius:"xl",color:"blue",variant:"filled"},y.default.createElement(tr,{size:16})))))),s.map(S=>{if(!S)return null;let U=`${S.resourceType}/${S.id}/${S.meta?.versionId}`;if(S.resourceType===n.resourceType&&S.id===n.id)return y.default.createElement(Su,{key:U,history:f,resource:S,onDetails:Me});switch(S.resourceType){case"AuditEvent":return y.default.createElement(Tu,{key:U,resource:S,onDetails:V});case"Communication":return y.default.createElement(bu,{key:U,resource:S,onPin:S.priority!=="stat"?N:void 0,onUnpin:S.priority==="stat"?P:void 0,onDetails:V,onEdit:Ee,onDelete:Le});case"DiagnosticReport":return y.default.createElement(ku,{key:U,resource:S,onDetails:V,onEdit:Ee,onDelete:Le});case"Media":return y.default.createElement(Du,{key:U,resource:S,onDetails:V,onEdit:Ee,onDelete:Le});default:return y.default.createElement(Lo,{key:U,resource:S,padding:!0},y.default.createElement(ma,{value:S,ignoreMissingValues:!0}))}})):y.default.createElement(ie.Center,{style:{width:"100%",height:"100%"}},y.default.createElement(ie.Loader,null))}function zt(e){return y.default.createElement(ie.Menu.Dropdown,null,y.default.createElement(ie.Menu.Label,null,"Resource"),e.onPin&&y.default.createElement(ie.Menu.Item,{icon:y.default.createElement(nn,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${(0,Qo.getReferenceString)(e.resource)}`},"Pin"),e.onUnpin&&y.default.createElement(ie.Menu.Item,{icon:y.default.createElement(fn,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${(0,Qo.getReferenceString)(e.resource)}`},"Unpin"),e.onDetails&&y.default.createElement(ie.Menu.Item,{icon:y.default.createElement(tn,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${(0,Qo.getReferenceString)(e.resource)}`},"Details"),e.onEdit&&y.default.createElement(ie.Menu.Item,{icon:y.default.createElement(Za,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${(0,Qo.getReferenceString)(e.resource)}`},"Edit"),e.onDelete&&y.default.createElement(y.default.Fragment,null,y.default.createElement(ie.Menu.Divider,null),y.default.createElement(ie.Menu.Label,null,"Danger zone"),y.default.createElement(ie.Menu.Item,{color:"red",icon:y.default.createElement(nr,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${(0,Qo.getReferenceString)(e.resource)}`},"Delete")))}function Su(e){let o=Pu(e.history,e.resource);return o?y.default.createElement(Lo,{resource:e.resource,padding:!0,popupMenuItems:y.default.createElement(zt,{...e})},y.default.createElement(Yl,{original:o,revised:e.resource})):y.default.createElement(Lo,{resource:e.resource,padding:!0,popupMenuItems:y.default.createElement(zt,{...e})},y.default.createElement("h3",null,"Created"),y.default.createElement(ma,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0}))}function Pu(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 bu(e){let{classes:o}=vu(),r=!e.resource.priority||e.resource.priority==="routine"?void 0:o.pinnedComment;return y.default.createElement(Lo,{resource:e.resource,profile:e.resource.sender,dateTime:e.resource.sent,padding:!0,className:r,popupMenuItems:y.default.createElement(zt,{...e})},y.default.createElement("p",null,e.resource.payload?.[0]?.contentString))}function Du(e){let o=e.resource.content?.contentType,t=o&&!o.startsWith("image/")&&!o.startsWith("video/")&&o!=="application/pdf";return y.default.createElement(Lo,{resource:e.resource,padding:!!t,popupMenuItems:y.default.createElement(zt,{...e})},y.default.createElement(lo,{value:e.resource.content}))}function Tu(e){return y.default.createElement(Lo,{resource:e.resource,padding:!0,popupMenuItems:y.default.createElement(zt,{...e})},y.default.createElement(ie.ScrollArea,null,y.default.createElement("pre",null,e.resource.outcomeDesc)))}function ku(e){return y.default.createElement(Lo,{resource:e.resource,padding:!0,popupMenuItems:y.default.createElement(zt,{...e})},y.default.createElement(ca,{value:e.resource}))}function Bu(e){if(e.lengthComputable){let o=100*e.loaded/e.total;return`Uploaded: ${tf(e.loaded)} / ${tf(e.total)} ${o.toFixed(2)}%`}return`Uploaded: ${tf(e.loaded)}`}function tf(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 Au(e){return rs.default.createElement(Ro,{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 rf=m(require("react"));function Dr(e){let{children:o,...t}=e;return rf.default.createElement(Oo,null,rf.default.createElement(pt,{...t},o))}var Tr=require("@medplum/core"),as=m(require("react"));function Fu(e){return as.default.createElement(Ro,{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,Tr.createReference)(o),subject:o.subject,sender:(0,Tr.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",encounter:(0,Tr.createReference)(o),subject:o.subject,operator:(0,Tr.createReference)(t),issued:new Date().toISOString(),content:r})})}var $t=require("@mantine/core"),gs=require("@medplum/core"),Z=m(require("react"));var ns=require("@medplum/core"),fs=m(require("react"));function ls(e){let o;try{o=(0,ns.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 fs.default.createElement(ke,{value:o[0]||"",propertyType:e.propertyType})}var z=require("@mantine/core"),Zo=require("@medplum/core");var C=m(require("react"));var Jo=require("@mantine/core"),xt=m(require("react"));function is(e){return xt.default.createElement(Jo.Modal,{title:"Export",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},xt.default.createElement(Jo.Box,{display:"flex",sx:{justifyContent:"space-between"}},e.exportCsv&&xt.default.createElement(ss,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&xt.default.createElement(ss,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})),xt.default.createElement(Jo.Text,{sx:{marginTop:"10px",marginLeft:"2px"}},"Limited to 1000 records"))}function ss(e){return xt.default.createElement(Jo.Button,{onClick:()=>{e.exportLogic(),e.onCancel()}},`Export as ${e.text}`)}var $o=require("@mantine/core"),ha=require("@medplum/core"),Q=m(require("react"));var M=require("@medplum/core"),kr=m(require("react"));var Mu={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]},wu={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 Wt(e,o){return{...e,filters:o,offset:0,name:void 0}}function Ou(e){return Wt(e,[])}function Br(e,o){return Wt(e,(e.filters??[]).filter(t=>t.code!==o))}function It(e,o,t,r,a){a&&(e=Br(e,o));let n=[];return e.filters&&n.push(...e.filters),n.push({code:o,operator:t,value:r??""}),Wt(e,n)}function Eu(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 af(e,o){if(!e.filters)return e;let t=[...e.filters];return t.splice(o,1),{...e,filters:t,name:void 0}}function nf(e,o){return sf(e,o,-1)}function ff(e,o){return sf(e,o,0)}function lf(e,o){return sf(e,o,1)}function sf(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),xa(e,o,r,a)}function uf(e,o){return mf(e,o,-1)}function df(e,o){return mf(e,o,0)}function cf(e,o){return mf(e,o,1)}function mf(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),xa(e,o,r,a)}function pf(e,o){let t=new Date;return t.setMonth(0),t.setDate(1),t.setHours(0,0,0,0),xa(e,o,t,new Date)}function xa(e,o,t,r){return e=Br(e,o),e=us(e,o,M.Operator.GREATER_THAN_OR_EQUALS,t),e=us(e,o,M.Operator.LESS_THAN_OR_EQUALS,r),e}function us(e,o,t,r){return It(e,o,t,r.toISOString())}function Ia(e,o,t=!0){return It(e,o,M.Operator.MISSING,t.toString())}function ds(e,o){return e.offset===o?e:{...e,offset:o,name:void 0}}function xf(e,o){let t=e.count??M.DEFAULT_SEARCH_COUNT,r=(o-1)*t;return ds(e,r)}function ga(e,o,t){return o===If(e)&&t!==void 0&&t===gf(e)?e:{...e,sortRules:[{code:o,descending:!!t}],name:void 0}}function Lu(e,o){let t=!1;return If(e)===o&&(t=!gf(e)),ga(e,o,t)}function If(e){let o=e.sortRules;if(!o||o.length===0)return;let t=o[0].code;return t.startsWith("-")?t.substr(1):t}function gf(e){let o=e.sortRules;return!o||o.length===0?!1:!!o[0].descending}function hf(e){return Mu[e.type]}function Xt(e){return wu[e]??""}function He(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 Cf(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?Ru(e,o.elementDefinition):o.searchParams&&o.searchParams.length===1&&o.name===o.searchParams[0].code?Nu(e,o.searchParams[0]):null}function Ru(e,o){let t=o.path?.split(".")?.pop()?.replaceAll("[x]","")??"",[r,a]=We({type:e.resourceType,value:e},t);return r?kr.default.createElement(ke,{property:o,propertyType:a,value:r,maxWidth:200,ignoreMissingValues:!0,link:!1}):null}function Nu(e,o){let t=(0,M.evalFhirPathTyped)(o.expression,[{type:e.resourceType,value:e}]);return!t||t.length===0?null:kr.default.createElement(kr.default.Fragment,null,t.map((r,a)=>kr.default.createElement(ke,{key:`${a}-${t.length}`,propertyType:r.type,value:r.value,maxWidth:200,ignoreMissingValues:!0,link:!1})))}function yf(e){let[o,t]=(0,Q.useState)({search:JSON.parse((0,ha.stringify)(e.search))}),r=(0,Q.useRef)(null),a=(0,Q.useRef)(null);(0,Q.useEffect)(()=>{t({search:e.search})},[e.search]);function n(d){d.key==="Enter"&&i()}function f(){i()}function l(d){d.key==="Enter"&&u()}function s(){u()}function i(){let d=o.search.fields??[],N=r.current?.value;if(N){let P=[...d,N];t({search:{...o.search,fields:P}})}}function u(){let d=o.search.fields??[],N=a.current?.value;if(N){let P=[...d];P.splice(P.indexOf(N),1),t({search:{...o.search,fields:P}})}}function p(){let d=o.search.fields??[],N=a.current?.value;if(!N)return;let P=[...d],V=P.indexOf(N);V<=0||(v(P,V,V-1),t({search:{...o.search,fields:P}}))}function c(){let d=o.search.fields??[],N=a.current?.value;if(!N)return;let P=[...d],V=P.indexOf(N);V>=P.length-1||(v(P,V,V+1),t({search:{...o.search,fields:P}}))}function v(d,N,P){let V=d[N];d[N]=d[P],d[P]=V}if(!e.visible)return null;let T=e.search.resourceType,F=ha.globalSchema.types[T],h=o.search.fields??[],k=Hu(F).filter(d=>!h.includes(d)).sort((d,N)=>d.localeCompare(N));return Q.default.createElement($o.Modal,{title:"Fields",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},Q.default.createElement("div",null,Q.default.createElement("table",{style:{margin:"auto"}},Q.default.createElement("thead",null,Q.default.createElement("tr",null,Q.default.createElement("th",{colSpan:2,align:"center"},"Available"),Q.default.createElement("th",{colSpan:2,align:"center"},"Selected"))),Q.default.createElement("tbody",null,Q.default.createElement("tr",null,Q.default.createElement("td",{colSpan:2,align:"center"},Q.default.createElement("select",{ref:r,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:d=>n(d),onDoubleClick:()=>f(),"data-testid":"available"},k.map(d=>Q.default.createElement("option",{key:d,value:d},He(d))))),Q.default.createElement("td",{colSpan:2,align:"center"},Q.default.createElement("select",{ref:a,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:d=>l(d),onDoubleClick:()=>s(),"data-testid":"selected"},h.map(d=>Q.default.createElement("option",{key:d,value:d},He(d))))))),Q.default.createElement("tfoot",null,Q.default.createElement("tr",null,Q.default.createElement("td",{align:"center"},Q.default.createElement($o.Button,{compact:!0,variant:"outline",onClick:i},"Add")),Q.default.createElement("td",{align:"center"},Q.default.createElement($o.Button,{compact:!0,variant:"outline",onClick:u},"Remove")),Q.default.createElement("td",{align:"center"},Q.default.createElement($o.Button,{compact:!0,variant:"outline",onClick:p},"Up")),Q.default.createElement("td",{align:"center"},Q.default.createElement($o.Button,{compact:!0,variant:"outline",onClick:c},"Down")))))),Q.default.createElement($o.Button,{onClick:()=>e.onOk(o.search)},"OK"))}function Hu(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(He(a));if(e.searchParams)for(let a of Object.keys(e.searchParams)){let n=He(a);!t.has(a)&&!r.has(n)&&(o.push(a),t.add(a),r.add(He(a)))}return o}var Ze=require("@mantine/core"),Ar=require("@medplum/core"),O=m(require("react"));var mo=require("@medplum/core"),Qt=m(require("react"));function Ca(e){let{resourceType:o,filter:t}=e,r=mo.globalSchema.types[o].searchParams?.[t.code];if(r){if(r.type==="reference"&&(t.operator===mo.Operator.EQUALS||t.operator===mo.Operator.NOT_EQUALS))return Qt.default.createElement(uo,{value:{reference:t.value}});let a=(0,mo.getSearchParameterDetails)(o,r);if(t.code==="_lastUpdated"||a.type===mo.SearchParameterType.DATETIME)return Qt.default.createElement(Qt.default.Fragment,null,(0,mo.formatDateTime)(t.value))}return Qt.default.createElement(Qt.default.Fragment,null,t.value)}var Jt=require("@mantine/core"),No=require("@medplum/core"),Ko=m(require("react"));function ya(e){let o=(0,No.getSearchParameterDetails)(e.resourceType,e.searchParam),t="filter-value";switch(o.type){case No.SearchParameterType.REFERENCE:return Ko.default.createElement(mt,{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 No.SearchParameterType.BOOLEAN:return Ko.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 No.SearchParameterType.DATE:return Ko.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 No.SearchParameterType.DATETIME:return Ko.default.createElement(to,{name:t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:e.onChange});case No.SearchParameterType.NUMBER:return Ko.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 No.SearchParameterType.QUANTITY:return Ko.default.createElement(_e,{name:t,defaultValue:Vu(e.defaultValue),autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(`${r.value}`):e.onChange("")}});default:return Ko.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 Vu(e){if(e){let[o,t,r]=e.split("|");if(o)return{value:parseFloat(o),system:t,unit:r}}}function vf(e){let[o,t]=(0,O.useState)(JSON.parse((0,Ar.stringify)(e.search))),[r,a]=(0,O.useState)(-1),n=(0,O.useRef)(o);n.current=o,(0,O.useEffect)(()=>{t(JSON.parse((0,Ar.stringify)(e.search)))},[e.search]);function f(u){t(It(n.current,u.code,u.operator,u.value))}if(!e.visible)return null;let l=e.search.resourceType,s=Ar.globalSchema.types[l].searchParams??{},i=o.filters||[];return O.default.createElement(Ze.Modal,{title:"Filters",closeButtonProps:{"aria-label":"Close"},size:900,opened:e.visible,onClose:e.onCancel},O.default.createElement("div",null,O.default.createElement("table",null,O.default.createElement("colgroup",null,O.default.createElement("col",{style:{width:200}}),O.default.createElement("col",{style:{width:200}}),O.default.createElement("col",{style:{width:380}}),O.default.createElement("col",{style:{width:120}})),O.default.createElement("thead",null,O.default.createElement("tr",null,O.default.createElement("th",null,"Field"),O.default.createElement("th",null,"Operation"),O.default.createElement("th",null,"Value"),O.default.createElement("th",null,"Actions"))),O.default.createElement("tbody",null,i.map((u,p)=>p===r?O.default.createElement(cs,{key:`filter-${u.code}-${u.operator}-${u.value}-input`,resourceType:l,searchParams:s,defaultValue:u,okText:"Save",onOk:c=>{let v=[...i];v[p]=c,t(Wt(n.current,v)),a(-1)},onCancel:()=>a(-1)}):O.default.createElement(qu,{key:`filter-${u.code}-${u.operator}-${u.value}-display`,resourceType:l,searchParams:s,filter:u,onEdit:()=>a(p),onDelete:()=>t(af(n.current,p))})),O.default.createElement(cs,{resourceType:l,searchParams:s,okText:"Add",onOk:f})))),O.default.createElement(Ze.Group,{position:"right",mt:"xl"},O.default.createElement(Ze.Button,{onClick:()=>e.onOk(n.current)},"OK")))}function qu(e){let{filter:o}=e;return O.default.createElement("tr",null,O.default.createElement("td",null,He(o.code)),O.default.createElement("td",null,Xt(o.operator)),O.default.createElement("td",null,O.default.createElement(Ca,{resourceType:e.resourceType,filter:o})),O.default.createElement("td",null,O.default.createElement(Ze.Button,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),O.default.createElement(Ze.Button,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function cs(e){let[o,t]=(0,O.useState)(e.defaultValue??{}),r=(0,O.useRef)(o);r.current=o;function a(i){t({...r.current,code:i})}function n(i){t({...r.current,operator:i})}function f(i){t({...r.current,value:i})}let l=e.searchParams[o.code],s=l&&hf(l);return O.default.createElement("tr",null,O.default.createElement("td",null,O.default.createElement(Ze.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:He(i)}))]})),O.default.createElement("td",null,s&&O.default.createElement(Ze.NativeSelect,{"data-testid":"filter-operation",defaultValue:o.operator,onChange:i=>n(i.currentTarget.value),data:["",...s.map(i=>({value:i,label:Xt(i)}))]})),O.default.createElement("td",null,l&&o.operator&&O.default.createElement(ya,{resourceType:e.resourceType,searchParam:l,defaultValue:o.value,onChange:f})),O.default.createElement("td",null,o.code&&o.operator&&o.value&&O.default.createElement(Ze.Button,{compact:!0,variant:"outline",onClick:()=>{e.onOk(r.current),t({})}},e.okText),e.onCancel&&O.default.createElement(Ze.Button,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}var jo=require("@mantine/core"),go=m(require("react"));function ms(e){let[o,t]=(0,go.useState)(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function r(){e.onOk({...e.filter,value:o})}return go.default.createElement(jo.Modal,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},go.default.createElement(le,{onSubmit:r},go.default.createElement(jo.Grid,null,go.default.createElement(jo.Grid.Col,{span:10},go.default.createElement(ya,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:o,autoFocus:!0,onChange:t})),go.default.createElement(jo.Grid.Col,{span:2},go.default.createElement(jo.Button,{onClick:r,fullWidth:!0},"OK")))))}var w=require("@mantine/core"),be=require("@medplum/core");var x=m(require("react"));function ps(e){if(!e.searchParams)return null;function o(n,f){a(ga(e.search,n.code,f))}function t(n){a(Br(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(Uu,{search:e.search,searchParam:e.searchParams[0],onSort:o,onPrompt:r,onChange:a,onClear:t}):x.default.createElement(w.Menu.Dropdown,null,e.searchParams.map(n=>x.default.createElement(w.Menu.Item,{key:n.code},He(n.code))))}function Uu(e){switch(e.searchParam.type){case"date":return x.default.createElement(Gu,{...e});case"number":case"quantity":return x.default.createElement(zu,{...e});case"reference":return x.default.createElement(Wu,{...e});case"string":case"token":case"uri":return x.default.createElement(Xu,{...e});default:return x.default.createElement(x.default.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function Gu(e){let{searchParam:o}=e,t=o.code;return x.default.createElement(w.Menu.Dropdown,null,x.default.createElement(w.Menu.Item,{icon:x.default.createElement(rr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Oldest to Newest"),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(ar,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Newest to Oldest"),x.default.createElement(w.Menu.Divider,null),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(St,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.EQUALS)},"Equals..."),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(vt,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.NOT_EQUALS)},"Does not equal..."),x.default.createElement(w.Menu.Divider,null),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Vr,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.ENDS_BEFORE)},"Before..."),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Hr,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.STARTS_AFTER)},"After..."),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(za,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.EQUALS)},"Between..."),x.default.createElement(w.Menu.Divider,null),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Po,{size:14}),onClick:()=>e.onChange(lf(e.search,t))},"Tomorrow"),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Po,{size:14}),onClick:()=>e.onChange(ff(e.search,t))},"Today"),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Po,{size:14}),onClick:()=>e.onChange(nf(e.search,t))},"Yesterday"),x.default.createElement(w.Menu.Divider,null),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Po,{size:14}),onClick:()=>e.onChange(cf(e.search,t))},"Next Month"),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Po,{size:14}),onClick:()=>e.onChange(df(e.search,t))},"This Month"),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Po,{size:14}),onClick:()=>e.onChange(uf(e.search,t))},"Last Month"),x.default.createElement(w.Menu.Divider,null),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Po,{size:14}),onClick:()=>e.onChange(pf(e.search,t))},"Year to date"),x.default.createElement(va,{...e}))}function zu(e){let{searchParam:o}=e;return x.default.createElement(w.Menu.Dropdown,null,x.default.createElement(w.Menu.Item,{icon:x.default.createElement(rr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Smallest to Largest"),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(ar,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Largest to Smallest"),x.default.createElement(w.Menu.Divider,null),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(St,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.EQUALS)},"Equals..."),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(vt,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.NOT_EQUALS)},"Does not equal..."),x.default.createElement(w.Menu.Divider,null),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Hr,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.GREATER_THAN)},"Greater than..."),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Pt,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Vr,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.LESS_THAN)},"Less than..."),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Pt,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),x.default.createElement(va,{...e}))}function Wu(e){let{searchParam:o}=e;return x.default.createElement(w.Menu.Dropdown,null,x.default.createElement(w.Menu.Item,{icon:x.default.createElement(St,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.EQUALS)},"Equals..."),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(vt,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.NOT)},"Does not equal..."),x.default.createElement(va,{...e}))}function Xu(e){let{searchParam:o}=e;return x.default.createElement(w.Menu.Dropdown,null,x.default.createElement(w.Menu.Item,{icon:x.default.createElement(rr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort A to Z"),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(ar,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Z to A"),x.default.createElement(w.Menu.Divider,null),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(St,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.EQUALS)},"Equals..."),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(vt,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.NOT)},"Does not equal..."),x.default.createElement(w.Menu.Divider,null),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Xa,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.CONTAINS)},"Contains..."),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Wa,{size:14}),onClick:()=>e.onPrompt(o,be.Operator.EQUALS)},"Does not contain..."),x.default.createElement(va,{...e}))}function va(e){let{searchParam:o}=e,t=o.code;return x.default.createElement(x.default.Fragment,null,x.default.createElement(w.Menu.Divider,null),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(Ua,{size:14}),onClick:()=>e.onChange(Ia(e.search,t))},"Missing"),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(qa,{size:14}),onClick:()=>e.onChange(Ia(e.search,t,!1))},"Not missing"),x.default.createElement(w.Menu.Divider,null),x.default.createElement(w.Menu.Item,{icon:x.default.createElement(pn,{size:14}),onClick:()=>e.onClear(o)},"Clear filters"))}var Sa=require("@medplum/core");function xs(e){let o=e.resourceType,t=[];for(let r of e.fields||["id","_lastUpdated"])t.push(Qu(o,r));return t}function Qu(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=Sa.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,Sa.getSearchParameterDetails)(e,a);return{name:o,elementDefinition:n.elementDefinitions?.[0],searchParams:[a]}}return{name:o}}var Pa=class extends Event{constructor(t){super("change");this.definition=t}},ba=class extends Event{constructor(t){super("load");this.response=t}},_o=class extends Event{constructor(t,r){super("click");this.resource=t,this.browserEvent=r}},Ju=(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 Is(e){let{classes:o}=Ju(),t=b(),[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}),p=(0,C.useRef)(i);p.current=i;let c=l.total??"accurate",v=(0,C.useCallback)(B=>{f(void 0),t.search(l.resourceType,(0,Zo.formatSearchQuery)({...l,total:c,fields:void 0}),B).then(ee=>{u({...p.current,searchResponse:ee}),s&&s(new ba(ee))}).catch(ee=>{u({...p.current,searchResponse:void 0}),f(ee)})},[t,l,c,s]),T=(0,C.useCallback)(()=>{u({...p.current,searchResponse:void 0}),v({cache:"reload"})},[v]);(0,C.useEffect)(()=>{v()},[v]);function F(B,ee){B.stopPropagation();let Te=B.target.checked,we={...p.current.selected};Te?we[ee]=!0:delete we[ee],u({...p.current,selected:we})}function h(B){B.stopPropagation();let Ie=B.target.checked,Te={},we=p.current.searchResponse;Ie&&we?.entry&&we.entry.forEach(_t=>{_t.resource?.id&&(Te[_t.resource.id]=!0)}),u({...p.current,selected:Te})}function k(){let B=p.current;if(!B.searchResponse?.entry||B.searchResponse.entry.length===0)return!1;for(let ee of B.searchResponse.entry)if(ee.resource?.id&&!B.selected[ee.resource.id])return!1;return!0}function d(B){e.onChange&&e.onChange(new Pa(B))}function N(B,ee){if(zr(B.target)||B.button===2)return;W(B);let Ie=B.button===1||B.ctrlKey||B.metaKey;!Ie&&e.onClick&&e.onClick(new _o(ee,B)),Ie&&e.onAuxClick&&e.onAuxClick(new _o(ee,B))}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&&Zo.globalSchema.types[e.search.resourceType]))return C.default.createElement(z.Center,{style:{width:"100%",height:"100%"}},C.default.createElement(z.Loader,null));let Ee=e.checkboxesEnabled,Le=xs(l),Me=l.resourceType,ye=i.searchResponse,S=ye?.entry?.map(B=>B.resource),U="subtle",no="gray",Re=16,tt=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:U,color:no,leftIcon:C.default.createElement($a,{size:Re}),onClick:()=>u({...p.current,fieldEditorVisible:!0})},"Fields"),C.default.createElement(z.Button,{compact:!0,variant:U,color:no,leftIcon:C.default.createElement(on,{size:Re}),onClick:()=>u({...p.current,filterEditorVisible:!0})},"Filters"),e.onNew&&C.default.createElement(z.Button,{compact:!0,variant:U,color:no,leftIcon:C.default.createElement(en,{size:Re}),onClick:e.onNew},"New..."),!tt&&P()&&C.default.createElement(z.Button,{compact:!0,variant:U,color:no,leftIcon:C.default.createElement(mn,{size:Re}),onClick:e.onExport?e.onExport:()=>u({...p.current,exportDialogVisible:!0})},"Export..."),!tt&&e.onDelete&&C.default.createElement(z.Button,{compact:!0,variant:U,color:no,leftIcon:C.default.createElement(nr,{size:Re}),onClick:()=>e.onDelete(Object.keys(i.selected))},"Delete..."),!tt&&e.onBulk&&C.default.createElement(z.Button,{compact:!0,variant:U,color:no,leftIcon:C.default.createElement(Ga,{size:Re}),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"},Zu(l,ye.total),"-",Yu(l,ye.total)," of"," ",`${c==="estimate"?"~":""}${ye.total?.toLocaleString()}`),C.default.createElement(z.ActionIcon,{title:"Refresh",onClick:T},C.default.createElement(sn,{size:"1.125rem"})))),C.default.createElement(z.Table,{className:o.table},C.default.createElement("thead",null,C.default.createElement("tr",null,Ee&&C.default.createElement("th",null,C.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:k(),onChange:B=>h(B)})),Le.map(B=>C.default.createElement("th",{key:B.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"},He(B.name)),C.default.createElement(z.Center,{className:o.icon},C.default.createElement(Va,{size:14,stroke:1.5}))))),C.default.createElement(ps,{search:e.search,searchParams:B.searchParams,onPrompt:(ee,Ie)=>{u({...p.current,filterDialogVisible:!0,filterDialogSearchParam:ee,filterDialogFilter:Ie})},onChange:ee=>{d(ee)}}))))),!e.hideFilters&&C.default.createElement("tr",null,Ee&&C.default.createElement("th",null),Le.map(B=>C.default.createElement("th",{key:B.name},B.searchParams&&C.default.createElement(Ku,{resourceType:Me,searchParams:B.searchParams,filters:e.search.filters}))))),C.default.createElement("tbody",null,S?.map(B=>B&&C.default.createElement("tr",{key:B.id,className:o.tr,"data-testid":"search-control-row",onClick:ee=>N(ee,B),onAuxClick:ee=>N(ee,B)},Ee&&C.default.createElement("td",null,C.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${B.id}`,checked:!!i.selected[B.id],onChange:ee=>F(ee,B.id)})),Le.map(ee=>C.default.createElement("td",{key:ee.name},Cf(B,ee))))))),S?.length===0&&C.default.createElement(Oo,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:ju(l),total:_u(l,ye.total),onChange:B=>d(xf(l,B)),getControlProps:B=>{switch(B){case"previous":return{"aria-label":"Previous page"};case"next":return{"aria-label":"Next page"};default:return{}}}})),n&&C.default.createElement("div",{"data-testid":"search-error"},C.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(n,void 0,2))),C.default.createElement(yf,{search:e.search,visible:p.current.fieldEditorVisible,onOk:B=>{d(B),u({...p.current,fieldEditorVisible:!1})},onCancel:()=>{u({...p.current,fieldEditorVisible:!1})}}),C.default.createElement(vf,{search:e.search,visible:p.current.filterEditorVisible,onOk:B=>{d(B),u({...p.current,filterEditorVisible:!1})},onCancel:()=>{u({...p.current,filterEditorVisible:!1})}}),C.default.createElement(is,{visible:p.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{u({...p.current,exportDialogVisible:!1})}}),C.default.createElement(ms,{key:i.filterDialogSearchParam?.code,visible:p.current.filterDialogVisible,title:i.filterDialogSearchParam?.code?He(i.filterDialogSearchParam.code):"",resourceType:Me,searchParam:i.filterDialogSearchParam,filter:i.filterDialogFilter,defaultValue:"",onOk:B=>{d(It(e.search,B.code,B.operator,B.value)),u({...p.current,filterDialogVisible:!1})},onCancel:()=>{u({...p.current,filterDialogVisible:!1})}}))}var $u=C.default.memo(Is);function Ku(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}`},Xt(t.operator),"\xA0",C.default.createElement(Ca,{resourceType:e.resourceType,filter:t}))))}function ju(e){return Math.floor((e.offset??0)/(e.count??Zo.DEFAULT_SEARCH_COUNT))+1}function _u(e,o){let t=e.count??Zo.DEFAULT_SEARCH_COUNT;return Math.ceil(o/t)}function Zu(e,o){return Math.min(o,(e.offset??0)+1)}function Yu(e,o){return Math.min(o,((e.offset??0)+1)*(e.count??Zo.DEFAULT_SEARCH_COUNT))}function hs(e){let o=b(),[t,r]=(0,Z.useState)(),[a,n]=(0,Z.useState)(),{query:f,fields:l}=e,[s,i]=(0,Z.useState)(),[u,p]=(0,Z.useState)({}),c=(0,Z.useRef)();c.current=s;let v=(0,Z.useRef)({});v.current=u,(0,Z.useEffect)(()=>{n(void 0),o.graphql(f).then(i).catch(P=>n((0,gs.normalizeOperationOutcome)(P)))},[o,f]);function T(P,V){P.stopPropagation();let Le=P.target.checked,Me={...v.current};Le?Me[V]=!0:delete Me[V],p(Me)}function F(P){P.stopPropagation();let Ee=P.target.checked,Le={},Me=c.current?.data.ResourceList;Ee&&Me&&Me.forEach(ye=>{ye.id&&(Le[ye.id]=!0)}),p(Le)}function h(){let P=c.current?.data.ResourceList;if(!P||P.length===0)return!1;for(let V of P)if(V.id&&!v.current[V.id])return!1;return!0}function k(P,V){zr(P.target)||(W(P),P.button!==1&&e.onClick&&e.onClick(new _o(V,P)),P.button===1&&e.onAuxClick&&e.onAuxClick(new _o(V,P)))}if((0,Z.useEffect)(()=>{o.requestSchema(e.resourceType).then(P=>{r({...P})}).catch(console.log)},[o,e.resourceType]),!t?.types[e.resourceType])return Z.default.createElement($t.Loader,null);let N=e.checkboxesEnabled;return Z.default.createElement("div",{onContextMenu:P=>W(P),"data-testid":"search-control"},Z.default.createElement($t.Table,null,Z.default.createElement("thead",null,Z.default.createElement("tr",null,N&&Z.default.createElement("th",null,Z.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:h(),onChange:P=>F(P)})),l.map(P=>Z.default.createElement("th",{key:P.name},P.name)))),Z.default.createElement("tbody",null,s?.data.ResourceList.map(P=>P&&Z.default.createElement("tr",{key:P.id,"data-testid":"search-control-row",onClick:V=>k(V,P),onAuxClick:V=>k(V,P)},N&&Z.default.createElement("td",null,Z.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${P.id}`,checked:!!u[P.id],onChange:V=>T(V,P.id)})),l.map(V=>Z.default.createElement("td",{key:V.name},Z.default.createElement(ls,{propertyType:V.propertyType,path:V.fhirPath,resource:P}))))))),s?.data.ResourceList.length===0&&Z.default.createElement("div",{"data-testid":"empty-search"},"No results"),a&&Z.default.createElement("div",{"data-testid":"search-error"},Z.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(a,void 0,2))),e.onBulk&&Z.default.createElement($t.Button,{onClick:()=>e.onBulk(Object.keys(v.current))},"Bulk..."))}var ed=Z.default.memo(hs);var Yo=m(require("react"));function Ho(e){return Yo.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},Yo.default.createElement("title",null,"Medplum Logo"),Yo.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"}),Yo.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"}),Yo.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"}),Yo.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"}),Yo.default.createElement("path",{fill:e.fill??"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}var Cs=require("@mantine/core");var Da=m(require("react"));function gt(e){let o=e.outcome?.issue||e.issues;return!o||o.length===0?null:Da.default.createElement(Cs.Alert,{icon:Da.default.createElement(rt,{size:16}),color:"red"},o.map(t=>Da.default.createElement("div",{"data-testid":"text-field-error",key:t.details?.text},t.details?.text)))}var Fr=require("@medplum/core"),Ta=m(require("react"));function od(e){let o=(0,Ta.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 Ta.default.createElement(Ro,{value:e.patient,loadTimelineResources:o,createCommunication:(t,r,a)=>({resourceType:"Communication",status:"completed",subject:(0,Fr.createReference)(t),sender:(0,Fr.createReference)(r),sent:new Date().toISOString(),payload:[{contentString:a}]}),createMedia:(t,r,a)=>({resourceType:"Media",status:"completed",subject:(0,Fr.createReference)(t),operator:(0,Fr.createReference)(r),issued:new Date().toISOString(),content:a})})}var Ve=require("@mantine/core"),ys=require("@medplum/core"),E=m(require("react"));var vs=(0,Ve.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 td(e){let o=b(),t=te(e.value),[r,a]=(0,E.useState)(void 0),[n,f]=(0,E.useState)(),[l,s]=(0,E.useState)(),[i,u]=(0,E.useState)();function p(){s(void 0)}function c(){f(void 0)}let v=(0,E.useRef)();if(v.current=i,(0,E.useEffect)(()=>{o.requestSchema("PlanDefinition").then(a).catch(console.log)},[o]),(0,E.useEffect)(()=>(u(sd(t??{resourceType:"PlanDefinition"})),document.addEventListener("mouseover",p),document.addEventListener("click",c),()=>{document.removeEventListener("mouseover",p),document.removeEventListener("click",c)}),[t]),!r||!i)return null;function T(F,h){u({...v.current,[F]:h})}return E.default.createElement("div",null,E.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(i)},E.default.createElement(Ve.TextInput,{label:"Plan Title",defaultValue:i.title,onChange:F=>T("title",F.currentTarget.value)}),E.default.createElement(Ss,{actions:i.action||[],selectedKey:n,setSelectedKey:f,hoverKey:l,setHoverKey:s,onChange:F=>T("action",F)}),E.default.createElement(Ve.Button,{type:"submit"},"Save")))}function Ss(e){let{classes:o}=vs(),t=(0,E.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 E.default.createElement("div",{className:o.section},e.actions.map(f=>E.default.createElement("div",{key:f.id},E.default.createElement(rd,{action:f,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:r,onRemove:()=>n(f)}))),E.default.createElement("div",{className:o.bottomActions},E.default.createElement(Ve.Anchor,{href:"#",onClick:f=>{W(f),a({id:bs()})}},"Add action")))}function rd(e){let{classes:o,cx:t}=vs(),{action:r}=e,a=ld(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){W(u),e.setHoverKey(e.action.id)}let i=t(o.section,{[o.editing]:n,[o.hovering]:f&&!n});return E.default.createElement("div",{"data-testid":r.id,className:i,onClick:l,onMouseOver:s},n?E.default.createElement(nd,{action:r,actionType:a,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):E.default.createElement(ad,{action:r,actionType:a}),E.default.createElement("div",{className:o.bottomActions},E.default.createElement(Ve.Anchor,{href:"#",onClick:u=>{u.preventDefault(),e.onRemove()}},"Remove")))}var Pf={path:"PlanDefinition.action.timing[x]",min:0,max:"1",type:[{code:"dateTime"},{code:"Period"},{code:"Range"},{code:"Timing"}]};function ad(e){let{action:o,actionType:t}=e,[r,a]=Ps(o);return E.default.createElement("div",null,E.default.createElement("div",null,o.title||"Untitled"," ",t&&`(${t})`),o.definitionCanonical&&E.default.createElement("div",null,E.default.createElement(Go,{value:{reference:o.definitionCanonical}})),r&&E.default.createElement("div",null,E.default.createElement(ke,{property:Pf,propertyType:a,value:r})))}function nd(e){let{action:o}=e,[t,r]=(0,E.useState)(e.actionType);function a(n,f){e.onChange({...o,[n]:f})}return E.default.createElement(Ve.Stack,{spacing:"xl"},E.default.createElement(Ve.TextInput,{name:`actionTitle-${o.id}`,label:"Title",defaultValue:o.title,onChange:n=>a("title",n.currentTarget.value)}),E.default.createElement(Ve.TextInput,{name:`actionDescription-${o.id}`,label:"Description",defaultValue:o.description,onChange:n=>a("description",n.currentTarget.value)}),E.default.createElement(Ve.NativeSelect,{label:"Type of Action",description:"The type of the action to be performed.",name:`actionType-${o.id}`,defaultValue:t,onChange:n=>r(n.currentTarget.value),data:["","appointment","lab","questionnaire","task"]}),o.action&&o.action.length>0&&E.default.createElement(Ss,{actions:o.action,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:n=>a("action",n)}),(()=>{switch(t){case"appointment":return E.default.createElement(ka,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:o,onChange:e.onChange});case"lab":return E.default.createElement(ka,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});case"questionnaire":return E.default.createElement(ka,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:o,onChange:e.onChange});case"task":return E.default.createElement(ka,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});default:return null}})(),E.default.createElement(Xe,{title:"Timing",description:"When the action should take place."},E.default.createElement(fd,{name:"timing-"+o.id,action:o,onChange:e.onChange})))}function ka(e){let{id:o,definitionCanonical:t}=e.action,r=t?.startsWith(e.resourceType+"/")?{reference:t}:void 0;return E.default.createElement(vr,{name:o,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:a=>{a?e.onChange({...e.action,definitionCanonical:(0,ys.getReferenceString)(a)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function fd(e){let o=e.action,t="timing",[r,a]=Ps(o);return E.default.createElement(Io,{property:Pf,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(n,f)=>{e.onChange(Ft(o,t,f??t,Pf,n))}})}function ld(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task"}function Ps(e){return We({type:"PlanDefinitionAction",value:e},"timing")}var Sf=1;function bs(e){if(e){if(e.startsWith("id-")){let o=parseInt(e.substring(3),10);isNaN(o)||(Sf=Math.max(Sf,o+1))}return e}return"id-"+Sf++}function sd(e){return{...e,action:Ds(e.action)}}function Ds(e){if(e)return e.map(o=>({...o,id:bs(o.id),action:Ds(o.action)}))}var ue=require("@mantine/core"),Ba=require("@medplum/core"),D=m(require("react"));var $=require("@mantine/core"),re=require("@medplum/core"),A=m(require("react"));var bf=(k=>(k.group="group",k.display="display",k.question="question",k.boolean="boolean",k.decimal="decimal",k.integer="integer",k.date="date",k.dateTime="dateTime",k.time="time",k.string="string",k.text="text",k.url="url",k.choice="choice",k.openChoice="open-choice",k.attachment="attachment",k.reference="reference",k.quantity="quantity",k))(bf||{});function Df(e){return e.type==="choice"||e.type==="open-choice"}function Tf(e){let o=b(),t=o.getProfile(),[r,a]=(0,A.useState)(),n=te(e.questionnaire),[f,l]=(0,A.useState)(),[s,i]=(0,A.useState)({}),[u,p]=(0,A.useState)(0),c=Id(n?.item??[]),v=()=>p(h=>h>=c?h:h+1),T=()=>p(h=>h<=0?h:h-1);(0,A.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>o.requestSchema("QuestionnaireResponse")).then(a).catch(console.log)},[o]),(0,A.useEffect)(()=>{l(n?cd(n):void 0)},[n]);function F(h){let k={resourceType:"QuestionnaireResponse",item:h};l(k),i((0,re.getQuestionnaireAnswers)(k))}return!r||!n?null:A.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&f&&e.onSubmit({...f,questionnaire:(0,re.getReferenceString)(n),subject:e.subject,source:(0,re.createReference)(t),authored:new Date().toISOString(),status:"completed"})}},n.title&&A.default.createElement($.Title,null,n.title),n.item&&A.default.createElement(Bs,{items:n.item,answers:s,onChange:F,activePage:u,renderPages:c>0}),A.default.createElement($.Group,{position:"right",mt:"xl"},A.default.createElement(dd,{activePage:u,numberOfPages:c,nextStep:v,prevStep:T,submitButtonText:e.submitButtonText})))}function Bs(e){let[o,t]=(0,A.useState)(kf(e.items));function r(n,f){let l=o.slice();l[n]=f,t(l),e.onChange(l)}let a=e.items.map((n,f)=>e.renderPages?A.default.createElement($.Stepper.Step,{label:n.text,key:n.linkId},A.default.createElement(Ts,{key:n.linkId,item:n,index:f,answers:e.answers,setResponseItem:r})):A.default.createElement(Ts,{key:n.linkId,item:n,index:f,answers:e.answers,setResponseItem:r}));return e.renderPages?A.default.createElement($.Stepper,{active:e.activePage??0,allowNextStepsSelect:!1},a):A.default.createElement($.Stack,null,a)}function Ts(e){if(!As(e.item,e.answers))return null;if(e.item.type==="display")return A.default.createElement("p",{key:e.item.linkId},e.item.text);if(e.item.type==="group")return A.default.createElement(Mr,{key:e.item.linkId,item:e.item,answers:e.answers,onChange:o=>e.setResponseItem(e.index,o)});if(e.item.type==="boolean"){let o=e.item.initial&&e.item.initial.length>0?e.item.initial[0]:void 0;return A.default.createElement(xr,{key:e.item.linkId,title:e.item.text,htmlFor:e.item.linkId},A.default.createElement($.Checkbox,{id:e.item.linkId,name:e.item.linkId,defaultChecked:o?.valueBoolean,onChange:t=>e.setResponseItem(e.index,{linkId:e.item.linkId,text:e.item.text,answer:[{valueBoolean:t.currentTarget.checked}]})}))}return A.default.createElement(Xe,{key:e.item.linkId,htmlFor:e.item.linkId,title:e.item.text??""},A.default.createElement(Mr,{item:e.item,answers:e.answers,onChange:o=>e.setResponseItem(e.index,o)}))}function Mr(e){let o=e.item,t=o.type;if(!t)return null;let r=o.linkId;if(!r)return null;let a=o.initial&&o.initial.length>0?o.initial[0]:void 0;function n(l){e.onChange({linkId:o.linkId,text:o.text,item:l})}function f(l){e.onChange({linkId:o.linkId,text:o.text,answer:[l]})}switch(t){case"group":return A.default.createElement("div",null,A.default.createElement("h3",null,o.text),o.item&&A.default.createElement(Bs,{items:o.item,answers:e.answers,onChange:n}));case"boolean":return A.default.createElement($.Checkbox,{id:r,name:r,defaultChecked:a?.valueBoolean,onChange:l=>f({valueBoolean:l.currentTarget.checked})});case"decimal":return A.default.createElement($.TextInput,{type:"number",step:"any",id:r,name:r,defaultValue:a?.valueDecimal,onChange:l=>f({valueDecimal:l.currentTarget.valueAsNumber})});case"integer":return A.default.createElement($.TextInput,{type:"number",step:1,id:r,name:r,defaultValue:a?.valueInteger,onChange:l=>f({valueInteger:l.currentTarget.valueAsNumber})});case"date":return A.default.createElement($.TextInput,{type:"date",id:r,name:r,defaultValue:a?.valueDate,onChange:l=>f({valueDate:l.currentTarget.value})});case"dateTime":return A.default.createElement(to,{name:r,defaultValue:a?.valueDateTime,onChange:l=>f({valueDateTime:l})});case"time":return A.default.createElement($.TextInput,{type:"time",id:r,name:r,defaultValue:a?.valueTime,onChange:l=>f({valueTime:l.currentTarget.value})});case"string":case"url":return A.default.createElement($.TextInput,{id:r,name:r,defaultValue:a?.valueString,onChange:l=>f({valueString:l.currentTarget.value})});case"text":return A.default.createElement($.Textarea,{id:r,name:r,defaultValue:a?.valueString,onChange:l=>f({valueString:l.currentTarget.value})});case"attachment":return A.default.createElement(ir,{name:r,defaultValue:a?.valueAttachment,onChange:l=>f({valueAttachment:l})});case"reference":return A.default.createElement(mt,{name:r,targetTypes:gd(o),defaultValue:a?.valueReference,onChange:l=>f({valueReference:l})});case"quantity":return A.default.createElement(_e,{name:r,defaultValue:a?.valueQuantity,onChange:l=>f({valueQuantity:l}),disableWheel:!0});case"choice":case"open-choice":return xd(o)?A.default.createElement(id,{name:r,item:o,initial:a,onChangeAnswer:f}):A.default.createElement(ud,{name:r,item:o,initial:a,onChangeAnswer:f});default:return null}}function id(e){let{name:o,item:t,initial:r}=e,a=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),n=[""];if(t.answerOption)for(let f of t.answerOption){let l=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:f},"value");n.push(ks(l))}return A.default.createElement($.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,re.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:s},"value"),u="value"+(0,re.capitalize)(i.type);e.onChangeAnswer({[u]:i.value})},defaultValue:ks(a),data:n})}function ks(e){if(e)return e.type==="CodeableConcept"?e.value.coding[0].display:e.type==="Coding"?e.value.display:e.value.toString()}function ud(e){let{name:o,item:t,initial:r,onChangeAnswer:a}=e,n=re.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],f=(0,re.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],p=`${o}-option-${i}`,c=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:u},"value");f&&(0,re.stringify)(c)===(0,re.stringify)(f)&&(s=p),l.push([p,c])}return A.default.createElement($.Radio.Group,{name:o,defaultValue:s,onChange:i=>{let u=l.find(p=>p[0]===i);if(u){let p=u[1],c="value"+(0,re.capitalize)(p.type);a({[c]:p.value})}}},l.map(([i,u])=>A.default.createElement($.Radio,{key:i,id:i,value:i,label:A.default.createElement(ke,{property:n,propertyType:u.type,value:u.value})})))}function dd(e){return e.activePage===0&&e.numberOfPages<=0?A.default.createElement($.Button,{type:"submit"},e.submitButtonText??"OK"):e.activePage>=e.numberOfPages?A.default.createElement(A.default.Fragment,null,A.default.createElement($.Button,{onClick:e.prevStep},"Back"),A.default.createElement($.Button,{onClick:e.nextStep,type:"submit"},e.submitButtonText??"OK")):e.activePage===0?A.default.createElement(A.default.Fragment,null,A.default.createElement($.Button,{onClick:e.nextStep},"Next")):A.default.createElement(A.default.Fragment,null,A.default.createElement($.Button,{onClick:e.prevStep},"Back"),A.default.createElement($.Button,{onClick:e.nextStep},"Next"))}function cd(e){return{resourceType:"QuestionnaireResponse",questionnaire:(0,re.getReferenceString)(e),item:kf(e.item)}}function kf(e){return e?.map(md)??[]}function md(e){return{linkId:e.linkId,text:e.text,item:kf(e.item),answer:e.initial?.map(pd)??[]}}function pd(e){return{...e}}function xd(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function As(e,o){if(!e.enableWhen)return!0;let t=e.enableBehavior??"any";for(let r of e.enableWhen){let a=(0,re.getTypedPropertyValue)({type:"QuestionnaireResponseItemAnswer",value:o[r.question]},"value[x]"),n=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemEnableWhen",value:r},"answer[x]"),f,{operator:l}=r;if(l==="exists")f=!!a===n.value;else if(a===void 0)f=!1;else{let s=l==="="||l==="!="?l?.replace("=","~"):l,[{value:i}]=(0,re.evalFhirPathTyped)(`%actualAnswer ${s} %expectedAnswer`,[a],{actualAnswer:a,expectedAnswer:n});f=i}if(t==="any"&&f)return!0;if(t==="all"&&!f)return!1}return t!=="any"}function Id(e){return e.filter(t=>(0,re.getExtension)(t,"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl")?.valueCodeableConcept?.coding?.[0]?.code==="page").length>0?e.length:0}function gd(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)}var hd=(0,ue.createStyles)(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},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 Cd(e){let o=b(),t=te(e.questionnaire),[r,a]=(0,D.useState)(),[n,f]=(0,D.useState)(),[l,s]=(0,D.useState)(),[i,u]=(0,D.useState)();function p(){u(void 0)}function c(){s(void 0)}return(0,D.useEffect)(()=>{o.requestSchema("Questionnaire").then(a).catch(console.log)},[o]),(0,D.useEffect)(()=>(f(Sd(t??{resourceType:"Questionnaire"})),document.addEventListener("mouseover",p),document.addEventListener("click",c),()=>{document.removeEventListener("mouseover",p),document.removeEventListener("click",c)}),[t]),!r||!n?null:D.default.createElement("div",null,D.default.createElement(le,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(n)},D.default.createElement(Fs,{item:n,selectedKey:l,setSelectedKey:s,hoverKey:i,setHoverKey:u,onChange:f}),D.default.createElement(ue.Button,{type:"submit"},"Save")))}function Fs(e){let{classes:o,cx:t}=hd(),r=e.item,a=e.item,n=(0,Ba.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,D.useRef)();u.current=e.item;function p(d){W(d),e.setSelectedKey(e.item.id)}function c(d){W(d),e.setHoverKey(e.item.id)}function v(d){let N=u.current;e.onChange({...N,item:N.item?.map(P=>P.id===d.id?d:P)})}function T(d){e.onChange({...e.item,item:[...e.item.item??[],d]})}function F(d){e.onChange({...e.item,item:e.item.item?.filter(N=>N!==d)})}function h(d,N){e.onChange({...u.current,[d]:N})}let k=t(o.section,{[o.editing]:s,[o.hovering]:i&&!s});return D.default.createElement("div",{"data-testid":a.linkId,className:k,onClick:p,onMouseOver:c},D.default.createElement("div",{className:o.questionBody},s?D.default.createElement(D.default.Fragment,null,n&&D.default.createElement(ue.TextInput,{size:"xl",defaultValue:r.title,onChange:d=>h("title",d.currentTarget.value)}),!n&&D.default.createElement(ue.Textarea,{autosize:!0,minRows:2,defaultValue:a.text,onChange:d=>h("text",d.currentTarget.value)}),a.type==="reference"&&D.default.createElement(vd,{item:a,onChange:d=>h("extension",d)}),Df(a)&&D.default.createElement(yd,{options:a.answerOption,onChange:d=>h("answerOption",d)})):D.default.createElement(D.default.Fragment,null,r.title&&D.default.createElement(ue.Title,null,r.title),a.text&&D.default.createElement("div",null,a.text),!f&&D.default.createElement(Mr,{item:a,answers:{},onChange:()=>{}}))),a.item?.map(d=>D.default.createElement("div",{key:d.id},D.default.createElement(Fs,{item:d,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:v,onRemove:()=>F(d)}))),!f&&D.default.createElement("div",{className:o.topActions},s?D.default.createElement(D.default.Fragment,null,D.default.createElement(ue.TextInput,{size:"xs",className:o.linkIdInput,defaultValue:a.linkId,onChange:d=>h("linkId",d.currentTarget.value)}),!f&&D.default.createElement(ue.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:a.type,onChange:d=>h("type",d.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"}]})):D.default.createElement("div",null,l)),D.default.createElement("div",{className:o.bottomActions},f&&D.default.createElement(D.default.Fragment,null,D.default.createElement(ue.Anchor,{href:"#",onClick:d=>{d.preventDefault(),T({id:et(),linkId:Ff("q"),type:"string",text:"Question"})}},"Add item"),D.default.createElement(ue.Anchor,{href:"#",onClick:d=>{d.preventDefault(),T({id:et(),linkId:Ff("g"),type:"group",text:"Group"})}},"Add group")),n&&D.default.createElement(ue.Anchor,{href:"#",onClick:d=>{d.preventDefault(),T(bd())}},"Add Page"),s&&!n&&D.default.createElement(ue.Anchor,{href:"#",onClick:d=>{d.preventDefault(),e.onRemove&&e.onRemove()}},"Remove")))}function yd(e){let o=Ba.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],t=e.options??[];return D.default.createElement("div",null,t.map(r=>{let[a,n]=We({type:"QuestionnaireItemAnswerOption",value:r},"value");return D.default.createElement("div",{key:r.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},D.default.createElement("div",null,D.default.createElement(Io,{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)}})),D.default.createElement("div",null,D.default.createElement(ue.Anchor,{href:"#",onClick:f=>{W(f),e.onChange(t.filter(l=>l.id!==r.id))}},"Remove")))}),D.default.createElement(ue.Anchor,{href:"#",onClick:r=>{W(r),e.onChange([...t,{id:et()}])}},"Add choice"))}function vd(e){let o=e.item.extension??[],t=o.filter(r=>r.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource")??[];return D.default.createElement(D.default.Fragment,null,t.map(r=>D.default.createElement("div",{key:r.id},D.default.createElement("div",{style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},D.default.createElement("div",null,D.default.createElement(ue.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)}}))),D.default.createElement("div",null,D.default.createElement(ue.Anchor,{href:"#",onClick:a=>{W(a),e.onChange(o.filter(n=>n.id!==r.id))}},"Remove")))),D.default.createElement(ue.Anchor,{href:"#",onClick:r=>{W(r),e.onChange([...o,{id:et(),url:"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource",valueCodeableConcept:{coding:[{system:"http://hl7.org/fhir/fhir-types",display:"",code:""}]}}])}},"Add Resource"))}var Bf=1,Af=1;function Ff(e){return e+Bf++}function et(){return"id-"+Af++}function Sd(e){return{...e,id:e.id||et(),item:Ms(e.item)}}function Ms(e){if(e)return e.forEach(o=>{o.id?.match(/^id-\d+$/)&&(Af=Math.max(Af,parseInt(o.id.substring(3),10)+1)),o.linkId?.match(/^q\d+$/)&&(Bf=Math.max(Bf,parseInt(o.linkId.substring(1),10)+1))}),e.map(o=>({...o,id:o.id||et(),item:Ms(o.item),answerOption:Pd(o.answerOption)}))}function Pd(e){if(e)return e.map(o=>({...o,id:o.id||et()}))}function bd(){return{id:et(),linkId:Ff("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 Y=require("@mantine/core"),wr=require("@medplum/core");var q=m(require("react"));var Dd=(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"}})),Td=["gender","age","gestationalAge","context","appliesTo","category"],kd={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function Bd(e){e=Object.assign(kd,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 T=Fd(o,l);r(Md(T.qualifiedInterval||[],n))},[o]),q.default.createElement(le,{testid:"reference-range-editor",onSubmit:s},q.default.createElement(Y.Stack,null,t.map(T=>q.default.createElement(ws,{unit:Od(o.quantitativeDetails?.unit),onChange:p,onAdd:c,onRemove:v,onRemoveGroup:u,key:`group-${T.id}`,intervalGroup:T}))),q.default.createElement(Y.ActionIcon,{title:"Add Group",size:"sm",onClick:T=>{W(T),i({id:`group-id-${a}`,filters:{},intervals:[]}),n(F=>F+1)}},q.default.createElement(yt,null)),q.default.createElement(Y.Group,{position:"right"},q.default.createElement(Y.Button,{type:"submit"},"Save")));function s(){let T=t.flatMap(F=>F.intervals).filter(F=>!Ed(F));e.onSubmit({...o,qualifiedInterval:T})}function i(T){r(F=>[...F,T])}function u(T){r(F=>F.filter(h=>h.id!==T.id))}function p(T,F){r(h=>{h=[...h];let k=h.find(N=>N.id===T),d=k?.intervals.findIndex(N=>N.id===F.id);return d!==void 0&&k?.intervals[d]&&(k.intervals[d]=F),h})}function c(T,F){F.id===void 0&&(F.id=`id-${f}`,l(h=>h+1)),r(h=>{h=[...h];let k=h.findIndex(d=>d.id===T);if(k!==-1){let d={...h[k]};F={...F,...d.filters},d.intervals=[...d.intervals,F],h[k]=d}return h})}function v(T,F){r(h=>{h=[...h];let k=h.find(d=>d.id===T);return k&&(k.intervals=k.intervals.filter(d=>d.id!==F.id)),h})}}function ws(e){let{intervalGroup:o,unit:t}=e,{classes:r}=Dd();return q.default.createElement(Oo,{"data-testid":o.id,className:r.section},q.default.createElement(Y.Stack,{spacing:"lg"},q.default.createElement(Y.Group,{position:"right"},q.default.createElement(Y.ActionIcon,{title:"Remove Group","data-testid":`remove-group-button-${o.id}`,key:`remove-group-button-${o.id}`,size:"sm",onClick:a=>{W(a),e.onRemoveGroup(o)}},q.default.createElement(Uo,null))),q.default.createElement(Ad,{intervalGroup:o,onChange:e.onChange}),q.default.createElement(Y.Divider,null),o.intervals.map(a=>q.default.createElement(Y.Stack,{key:`interval-${a.id}`,spacing:"xs"},q.default.createElement(Y.Group,null,q.default.createElement(Y.TextInput,{key:`condition-${a.id}`,"data-testid":`condition-${a.id}`,defaultValue:a.condition,label:"Condition: ",size:"sm",onChange:n=>{W(n),e.onChange(o.id,{...a,condition:n.currentTarget.value.trim()})}}),q.default.createElement(Y.ActionIcon,{title:"Remove Interval",size:"sm",key:`remove-interval-${a.id}`,"data-testid":`remove-interval-${a.id}`,onClick:n=>{W(n),e.onRemove(o.id,a)}},q.default.createElement(Uo,null))),q.default.createElement(Lt,{onChange:n=>{e.onChange(o.id,{...a,range:n})},key:`range-${a.id}`,name:`range-${a.id}`,defaultValue:a.range}))),q.default.createElement(Y.ActionIcon,{title:"Add Interval",size:"sm",onClick:a=>{W(a),e.onAdd(o.id,{range:{low:{unit:t},high:{unit:t}}})}},q.default.createElement(yt,null))))}function Ad(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(Y.Stack,{style:{maxWidth:"50%"}},q.default.createElement(Y.Group,null,q.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})}}})),q.default.createElement(Y.Group,{spacing:"xs"},q.default.createElement(Y.Text,{component:"label",htmlFor:`div-age-${o.id}`},"Age:"),q.default.createElement("div",{id:`div-age-${o.id}`},q.default.createElement(Lt,{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(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"}]}})}}}),q.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 Fd(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 Md(e,o){let t=1,r={};for(let a of e){let n=wd(a);n in r||(r[n]={id:`group-id-${t++}`,filters:Object.fromEntries(Td.map(f=>[f,a[f]])),intervals:[]}),r[n].intervals.push(a)}return o(t),Object.values(r)}function wd(e){return[`gender=${e.gender}`,`age=${(0,wr.formatRange)(e.age)}`,`gestationalAge=${(0,wr.formatRange)(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map(t=>t.text).join("+")}`,`category=${e.category}`].join(":")}function Od(e){return e&&((0,wr.getCodeBySystem)(e,"http://unitsofmeasure.org")||e.text)}function Ed(e){return e.range?.low?.value===void 0&&e.range?.high?.value===void 0}var ho=require("@mantine/core"),Aa=require("@medplum/core");var pe=m(require("react"));function Ld(e){let o=b(),t=te(e.value),[r,a]=(0,pe.useState)(!1),[n,f]=(0,pe.useState)();if((0,pe.useEffect)(()=>{t&&!r&&(o.executeBatch(l(t)).then(f).catch(console.log),a(!0))},[o,t,r]),!t||!n)return null;return pe.default.createElement(ho.Grid,null,t.action?.map((i,u)=>{let p=i.resource&&s(i.resource),c=p?.input?.[0]?.valueReference,v=p?.output?.[0]?.valueReference;return pe.default.createElement(pe.default.Fragment,{key:`action-${u}`},pe.default.createElement(ho.Grid.Col,{span:1,p:"md"},p?.status==="completed"?pe.default.createElement(Qa,null):pe.default.createElement(dn,{color:"gray"})),pe.default.createElement(ho.Grid.Col,{span:9,p:"xs"},pe.default.createElement(ho.Text,{weight:500},i.title),i.description&&pe.default.createElement("div",null,i.description),pe.default.createElement("div",null,"Last edited by\xA0",pe.default.createElement(uo,{value:p?.meta?.author}),"\xA0on\xA0",(0,Aa.formatDateTime)(p?.meta?.lastUpdated)),pe.default.createElement("div",null,"Status: ",pe.default.createElement(br,{status:p?.status||"unknown"}))),pe.default.createElement(ho.Grid.Col,{span:2,p:"md"},c&&!v&&pe.default.createElement(ho.Button,{onClick:()=>e.onStart(p,c)},"Start"),c&&v&&pe.default.createElement(ho.Button,{onClick:()=>e.onEdit(p,c,v)},"Edit")))}));function l(i){let u=[];if(i.action)for(let p of i.action)p.resource?.reference&&u.push({request:{method:"GET",url:p.resource.reference}});return{resourceType:"Bundle",type:"batch",entry:u}}function s(i){for(let u of n?.entry)if(u.resource&&i.reference===(0,Aa.getReferenceString)(u.resource))return u.resource}}var Ls=require("@mantine/core"),Se=m(require("react"));var Os=require("@medplum/core");function Fa(e,o){let t=Rd(e,o);return Nd(t,e,o)}function Rd(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,p=u+1,c=u-1,v=l[p],T=l[c],F,h=0;i===-s||i!==s&&T.i<v.i?(h=v.i,F=v):(h=T.i+1,F=T),l[c]=void 0;let k=h-i,d={i:h,j:k,prev:Hd(F),snake:!1};for(;h<t&&k<r&&e[h]===o[k];)h++,k++;if(h>d.i&&(d={i:h,j:k,prev:d,snake:!0}),l[u]=d,h>=t&&k>=r)return l[u]}l[f+s-1]=void 0}}function Nd(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)},p;i.lines.length===0&&u.lines.length>0?p="insert":i.lines.length>0&&u.lines.length===0?p="delete":p="change",r.push({original:i,revised:u,type:p}),a.snake&&(a=a.prev)}return r}function Hd(e){return e&&!e.snake&&e.prev?e.prev:e}function Es(e){let o=e.entry.filter(r=>!!r.resource).map(r=>({meta:r.resource?.meta,lines:(0,Os.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 Vd(t,o),qd(t),t}function Vd(e,o){for(let t=1;t<o.length;t++){let r=Fa(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 qd(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 Ud=(0,Ls.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 Gd(e){let{classes:o}=Ud(),t=b(),[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=Es(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(Eo,{value:l.meta.author,link:!0})),Se.default.createElement("td",{className:o.dateTime,rowSpan:l.span},Se.default.createElement(Pe,{to:zd(n,l.meta.versionId)},Rs(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 zd(e,o){return`/${e.resourceType}/${e.id}/_history/${o}`}function Rs(e){let o=Math.floor((Date.now()-Date.parse(e))/1e3),t=Math.floor(o/31536e3);if(t>0)return Kt(t,"year");let r=Math.floor(o/2592e3);if(r>0)return Kt(r,"month");let a=Math.floor(o/86400);if(a>0)return Kt(a,"day");let n=Math.floor(o/3600);if(n>0)return Kt(n,"hour");let f=Math.floor(o/60);return f>0?Kt(f,"minute"):Kt(o,"second")}function Kt(e,o){return`${e} ${e===1?o:o+"s"} ago`}var Ns=require("@mantine/core"),Mf=require("@medplum/core"),Vo=m(require("react"));var Wd=(0,Ns.createStyles)(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function Xd(e){let o=e.original,t=e.revised;e.ignoreMeta&&(o={...o,meta:void 0},t={...t,meta:void 0});let r=(0,Mf.stringify)(o,!0).match(/[^\r\n]+/g),a=(0,Mf.stringify)(t,!0).match(/[^\r\n]+/g),n=Fa(r,a);return Vo.default.createElement("pre",{style:{color:"gray"}},n.map((f,l)=>Vo.default.createElement(Qd,{key:"delta"+l,delta:f})))}function Qd(e){let{classes:o}=Wd();return Vo.default.createElement(Vo.default.Fragment,null,"...",Vo.default.createElement("br",null),e.delta.original.lines.length>0&&Vo.default.createElement("div",{className:o.removed},e.delta.original.lines.join(`
|
|
66
|
+
`)),e.delta.revised.lines.length>0&&Vo.default.createElement("div",{className:o.added},e.delta.revised.lines.join(`
|
|
67
|
+
`)),"...",Vo.default.createElement("br",null))}var Hs=require("@mantine/core"),Ma=require("@medplum/core"),xe=m(require("react"));function Jd(e){let o=b(),[t,r]=(0,xe.useState)(e.history);return(0,xe.useEffect)(()=>{!e.history&&e.resourceType&&e.id&&o.readHistory(e.resourceType,e.id).then(r).catch(console.log)},[o,e.history,e.resourceType,e.id]),t?xe.default.createElement(Hs.Table,{withBorder:!0,withColumnBorders:!0},xe.default.createElement("thead",null,xe.default.createElement("tr",null,xe.default.createElement("th",null,"Author"),xe.default.createElement("th",null,"Date"),xe.default.createElement("th",null,"Version"))),xe.default.createElement("tbody",null,t.entry?.map((a,n)=>xe.default.createElement($d,{key:"entry-"+n,entry:a})))):xe.default.createElement("div",null,"Loading...")}function $d(e){let{response:o,resource:t}=e.entry;return t?xe.default.createElement("tr",null,xe.default.createElement("td",null,xe.default.createElement(Eo,{value:t.meta?.author,link:!0})),xe.default.createElement("td",null,(0,Ma.formatDateTime)(t.meta?.lastUpdated)),xe.default.createElement("td",null,xe.default.createElement(Pe,{to:Kd(t)},t.meta?.versionId))):xe.default.createElement("tr",null,xe.default.createElement("td",{colSpan:3},(0,Ma.normalizeErrorString)(o?.outcome)))}function Kd(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}var ot=require("@mantine/core"),qs=require("@medplum/core"),K=m(require("react"));var jd=(0,ot.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 _d(e){let{classes:o}=jd(),t=b(),r=te(e.schedule),a=te(e.questionnaire),[n,f]=(0,K.useState)(),l=(0,K.useRef)();l.current=n;let[s,i]=(0,K.useState)(ia()),[u,p]=(0,K.useState)(),[c,v]=(0,K.useState)(),[T,F]=(0,K.useState)();if((0,K.useEffect)(()=>{r?(f([]),t.searchResources("Slot",new URLSearchParams([["_count",(30*24).toString()],["schedule",(0,qs.getReferenceString)(r)],["start","gt"+Zd(s)],["start","lt"+Yd(s)]])).then(f).catch(console.log)):f(void 0)},[t,r,s]),!r||!n||!a)return null;let h=r.actor?.[0];return K.default.createElement("div",{className:o.container,"data-testid":"scheduler"},K.default.createElement("div",{className:o.info},h&&K.default.createElement(Oe,{value:h,size:"xl"}),h&&K.default.createElement(ot.Text,{size:"xl",weight:500},K.default.createElement(uo,{value:h})),K.default.createElement("p",null,"1 hour"),u&&K.default.createElement("p",null,u.toLocaleDateString()),c&&K.default.createElement("p",null,Vs(new Date(c.start)))),K.default.createElement("div",{className:o.selection},!u&&K.default.createElement("div",null,K.default.createElement("h3",null,"Select date"),K.default.createElement(_n,{slots:n,onChangeMonth:i,onClick:p})),u&&!c&&K.default.createElement("div",null,K.default.createElement("h3",null,"Select time"),K.default.createElement(ot.Stack,null,n.map(k=>{let d=new Date(k.start);return d.getTime()>u.getTime()&&d.getTime()<u.getTime()+24*3600*1e3&&K.default.createElement("div",{key:k.id},K.default.createElement(ot.Button,{variant:"outline",style:{width:150},onClick:()=>v(k)},Vs(d)))}))),u&&c&&!T&&K.default.createElement(Tf,{questionnaire:a,submitButtonText:"Next",onSubmit:F}),u&&c&&T&&K.default.createElement("div",null,K.default.createElement("h3",null,"You're all set!"),K.default.createElement("p",null,"Check your email for a calendar invite."))))}function Zd(e){return Us(e.getTime())}function Yd(e){return Us(e.getTime()+31*24*60*60*1e3)}function Us(e){return new Date(Math.max(Date.now(),e)).toISOString()}function Vs(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}var Or=require("@medplum/core"),Gs=m(require("react"));function ec(e){return Gs.default.createElement(Ro,{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,Or.createReference)(o)],subject:o.subject,sender:(0,Or.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",basedOn:[(0,Or.createReference)(o)],subject:o.subject,operator:(0,Or.createReference)(t),issued:new Date().toISOString(),content:r})})}var Xs=require("@medplum/core"),yo=m(require("react"));var Fe=require("@mantine/core"),zs=require("@medplum/core"),Qe=m(require("react"));function wa(e){let o=b(),[t,r]=(0,Qe.useState)();return Qe.default.createElement(le,{style:{maxWidth:400},onSubmit:async a=>{try{e.handleAuthResponse(await o.startNewProject({login:e.login,projectName:a.projectName}))}catch(n){r((0,zs.normalizeOperationOutcome)(n))}}},Qe.default.createElement(Fe.Center,{sx:{flexDirection:"column"}},Qe.default.createElement(Ho,{size:32}),Qe.default.createElement(Fe.Title,null,"Create project")),Qe.default.createElement(Fe.Stack,{spacing:"xl"},Qe.default.createElement(Fe.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:Be(t,"firstName")}),Qe.default.createElement(Fe.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",Qe.default.createElement(Fe.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",Qe.default.createElement(Fe.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),".")),Qe.default.createElement(Fe.Group,{position:"right",mt:"xl",noWrap:!0},Qe.default.createElement(Fe.Button,{type:"submit"},"Create project")))}var ne=require("@mantine/core"),Ef=require("@medplum/core"),ae=m(require("react"));var Co=m(require("react"));function Er(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 Oa(e){let o=b(),{googleClientId:t,handleGoogleCredential:r}=e,a=(0,Co.useRef)(null),[n,f]=(0,Co.useState)(typeof google<"u"),[l,s]=(0,Co.useState)(!1),[i,u]=(0,Co.useState)(!1);return(0,Co.useEffect)(()=>{if(typeof google>"u"){Er("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?Co.default.createElement("div",{ref:a}):null}function Ea(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 wf(e){typeof grecaptcha>"u"&&Er("https://www.google.com/recaptcha/api.js?render="+e)}function Of(e){return new Promise((o,t)=>{grecaptcha.ready(async()=>{try{o(await grecaptcha.execute(e,{action:"submit"}))}catch(r){t(r)}})})}function Ws(e){let o=Ea(e.googleClientId),t=e.recaptchaSiteKey,r=b(),[a,n]=(0,ae.useState)(),f=Ir(a,void 0);return(0,ae.useEffect)(()=>{t&&wf(t)},[t]),ae.default.createElement(le,{style:{maxWidth:400},onSubmit:async l=>{try{let s="";t&&(s=await Of(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,Ef.normalizeOperationOutcome)(s))}}},ae.default.createElement(ne.Center,{sx:{flexDirection:"column"}},e.children),ae.default.createElement(gt,{issues:f}),o&&ae.default.createElement(ae.default.Fragment,null,ae.default.createElement(ne.Group,{position:"center",p:"xl",style:{height:70}},ae.default.createElement(Oa,{googleClientId:o,handleGoogleCredential:async l=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:l.clientId,googleCredential:l.credential,createUser:!0}))}catch(s){n((0,Ef.normalizeOperationOutcome)(s))}}})),ae.default.createElement(ne.Divider,{label:"or",labelPosition:"center",my:"lg"})),ae.default.createElement(ne.Stack,{spacing:"xl"},ae.default.createElement(ne.TextInput,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:Be(a,"firstName")}),ae.default.createElement(ne.TextInput,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:Be(a,"lastName")}),ae.default.createElement(ne.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:Be(a,"email")}),ae.default.createElement(ne.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,error:Be(a,"password")}),ae.default.createElement(ne.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",ae.default.createElement(ne.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",ae.default.createElement(ne.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),"."),ae.default.createElement(ne.Text,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",ae.default.createElement(ne.Anchor,{href:"https://policies.google.com/privacy"},"Privacy\xA0Policy")," and ",ae.default.createElement(ne.Anchor,{href:"https://policies.google.com/terms"},"Terms\xA0of\xA0Service")," apply.")),ae.default.createElement(ne.Group,{position:"apart",mt:"xl",noWrap:!0},ae.default.createElement(ne.Checkbox,{name:"remember",label:"Remember me",size:"xs"}),ae.default.createElement(ne.Button,{type:"submit"},"Create account")))}function oc(e){let{type:o,projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,onSuccess:f}=e,l=b(),[s,i]=(0,yo.useState)(void 0),[u,p]=(0,yo.useState)();(0,yo.useEffect)(()=>{o==="patient"&&s&&l.startNewPatient({login:s,projectId:t}).then(v=>l.processCode(v.code)).then(()=>f()).catch(v=>p((0,Xs.normalizeOperationOutcome)(v)))},[l,o,t,s,f]);function c(v){v.code?l.processCode(v.code).then(()=>f()).catch(console.log):v.login&&i(v.login)}return yo.default.createElement(Dr,{width:450},u&&yo.default.createElement("pre",null,JSON.stringify(u,null,2)),!s&&yo.default.createElement(Ws,{projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,handleAuthResponse:c},e.children),s&&o==="project"&&yo.default.createElement(wa,{login:s,handleAuthResponse:c}))}var Lf=require("@mantine/notifications"),Rf=require("@medplum/core"),De=m(require("react"));var de=require("@mantine/core"),Qs=require("@medplum/core"),j=m(require("react"));function Js(e){let[o,t]=(0,j.useState)();return o?j.default.createElement(rc,{email:o,...e}):j.default.createElement(tc,{setEmail:t,...e})}function tc(e){let{setEmail:o,onRegister:t,handleAuthResponse:r,children:a,disableEmailAuth:n,...f}=e,l=b(),s=!e.disableGoogleAuth&&Ea(e.googleClientId),i=(0,j.useCallback)(async c=>{if(!c.authorizeUrl)return!1;let v=JSON.stringify({...await l.ensureCodeChallenge(f),domain:c.domain}),T=new URL(c.authorizeUrl);return T.searchParams.set("state",v),window.location.assign(T.toString()),!0},[l,f]),u=(0,j.useCallback)(async c=>{let v=await l.post("auth/method",{email:c.email});await i(v)||o(c.email)},[l,i,o]),p=(0,j.useCallback)(async c=>{let v=await l.startGoogleLogin({...f,googleCredential:c.credential});await i(v)||r(v)},[l,f,i,r]);return j.default.createElement(le,{style:{maxWidth:400},onSubmit:u},j.default.createElement(de.Center,{sx:{flexDirection:"column"}},a),s&&j.default.createElement(j.default.Fragment,null,j.default.createElement(de.Group,{position:"center",p:"xl",style:{height:70}},j.default.createElement(Oa,{googleClientId:s,handleGoogleCredential:p})),!n&&j.default.createElement(de.Divider,{label:"or",labelPosition:"center",my:"lg"})),!n&&j.default.createElement(de.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),j.default.createElement(de.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},j.default.createElement("div",null,t&&j.default.createElement(de.Anchor,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs"},"Register")),!n&&j.default.createElement(de.Button,{type:"submit"},"Next")))}function rc(e){let{onForgotPassword:o,handleAuthResponse:t,children:r,...a}=e,n=b(),[f,l]=(0,j.useState)(),s=Ir(f,void 0),i=(0,j.useCallback)(u=>{n.startLogin({...a,password:u.password,remember:u.remember==="on"}).then(t).catch(p=>l((0,Qs.normalizeOperationOutcome)(p)))},[n,a,t]);return j.default.createElement(le,{style:{maxWidth:400},onSubmit:i},j.default.createElement(de.Center,{sx:{flexDirection:"column"}},r),j.default.createElement(gt,{issues:s}),j.default.createElement(de.Stack,{spacing:"xl"},j.default.createElement(de.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:Be(f,"password")})),j.default.createElement(de.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},o&&j.default.createElement(de.Anchor,{component:"button",type:"button",color:"dimmed",onClick:o,size:"xs"},"Forgot password"),j.default.createElement(de.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),j.default.createElement(de.Button,{type:"submit"},"Sign in")))}var qe=require("@mantine/core"),$s=require("@medplum/core"),Je=m(require("react"));function Ks(e){let o=b(),[t,r]=(0,Je.useState)();return Je.default.createElement(qe.Stack,null,Je.default.createElement(qe.Center,{sx:{flexDirection:"column"}},Je.default.createElement(Ho,{size:32}),Je.default.createElement(qe.Title,{order:3},"Choose profile")),Je.default.createElement(gt,{outcome:t}),e.memberships.map(a=>Je.default.createElement(qe.UnstyledButton,{key:a.id,onClick:()=>{o.post("auth/profile",{login:e.login,profile:a.id}).then(e.handleAuthResponse).catch(n=>r((0,$s.normalizeOperationOutcome)(n)))}},Je.default.createElement(qe.Group,null,Je.default.createElement(qe.Avatar,{radius:"xl"}),Je.default.createElement("div",{style:{flex:1}},Je.default.createElement(qe.Text,{size:"sm",weight:500},a.profile?.display),Je.default.createElement(qe.Text,{color:"dimmed",size:"xs"},a.project?.display))))))}var Ye=require("@mantine/core"),vo=m(require("react"));function js(e){let o=b();return vo.default.createElement(le,{style:{maxWidth:400},onSubmit:t=>{o.post("auth/scope",{login:e.login,scope:Object.keys(t).join(" ")}).then(e.handleAuthResponse).catch(console.log)}},vo.default.createElement(Ye.Stack,null,vo.default.createElement(Ye.Center,{sx:{flexDirection:"column"}},vo.default.createElement(Ho,{size:32}),vo.default.createElement(Ye.Title,null,"Choose scope")),vo.default.createElement(Ye.Stack,null,(e.scope??"openid").split(" ").map(t=>vo.default.createElement(Ye.Checkbox,{key:t,id:t,name:t,label:t,defaultChecked:!0}))),vo.default.createElement(Ye.Group,{position:"right",mt:"xl"},vo.default.createElement(Ye.Button,{type:"submit"},"Set scope"))))}var Ue=require("@mantine/core"),_s=require("@medplum/core");var $e=m(require("react"));function Zs(e){let o=b(),[t,r]=(0,$e.useState)(void 0);return $e.default.createElement(le,{style:{maxWidth:400},onSubmit:a=>{r(void 0),o.post("auth/mfa/verify",{login:e.login,token:a.token}).then(e.handleAuthResponse).catch(n=>r((0,_s.normalizeErrorString)(n)))}},$e.default.createElement(Ue.Stack,null,$e.default.createElement(Ue.Center,{sx:{flexDirection:"column"}},$e.default.createElement(Ho,{size:32}),$e.default.createElement(Ue.Title,null,"Enter MFA code")),t&&$e.default.createElement(Ue.Alert,{icon:$e.default.createElement(rt,{size:16}),title:"Error",color:"red"},t),$e.default.createElement(Ue.Stack,null,$e.default.createElement(Ue.TextInput,{name:"token",label:"MFA code",required:!0})),$e.default.createElement(Ue.Group,{position:"right",mt:"xl"},$e.default.createElement(Ue.Button,{type:"submit"},"Submit code"))))}function ac(e){let{login:o,chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:n,onCode:f,...l}=e,s=b(),[i,u]=(0,De.useState)(void 0),[p,c]=(0,De.useState)(!1),[v,T]=(0,De.useState)(void 0),F=(0,De.useCallback)(d=>{f?f(d):s.processCode(d).then(()=>{r&&r()}).catch(N=>(0,Lf.showNotification)({color:"red",message:(0,Rf.normalizeErrorString)(N)}))},[s,f,r]),h=(0,De.useCallback)(d=>{c(!!d.mfaRequired),d.login&&u(d.login),d.memberships&&T(d.memberships),d.code&&(t?T(void 0):F(d.code))},[t,F]),k=(0,De.useCallback)(d=>{F(d.code)},[F]);return(0,De.useEffect)(()=>{o&&!i&&s.get("auth/login/"+o).then(h).catch(d=>(0,Lf.showNotification)({color:"red",message:(0,Rf.normalizeErrorString)(d)}))},[s,o,i,h]),De.default.createElement(Dr,{width:450},(()=>i?p?De.default.createElement(Zs,{login:i,handleAuthResponse:h}):v?De.default.createElement(Ks,{login:i,memberships:v,handleAuthResponse:h}):e.projectId==="new"?De.default.createElement(wa,{login:i,handleAuthResponse:h}):e.chooseScopes?De.default.createElement(js,{login:i,scope:e.scope,handleAuthResponse:k}):De.default.createElement("div",null,"Success"):De.default.createElement(Js,{onForgotPassword:a,onRegister:n,handleAuthResponse:h,disableGoogleAuth:e.disableGoogleAuth,disableEmailAuth:e.disableEmailAuth,...l},e.children))())}
|
|
68
68
|
//# sourceMappingURL=index.cjs.map
|