@medplum/react 2.1.12 → 2.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +4 -4
- package/dist/cjs/index.cjs.map +3 -3
- package/dist/esm/index.mjs +4 -4
- package/dist/esm/index.mjs.map +3 -3
- package/package.json +15 -15
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var Ki=Object.create;var Yr=Object.defineProperty;var ji=Object.getOwnPropertyDescriptor;var _i=Object.getOwnPropertyNames;var Zi=Object.getPrototypeOf,Yi=Object.prototype.hasOwnProperty;var eu=(e,o)=>{for(var t in o)Yr(e,t,{get:o[t],enumerable:!0})},yl=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of _i(o))!Yi.call(e,a)&&a!==t&&Yr(e,a,{get:()=>o[a],enumerable:!(r=ji(o,a))||r.enumerable});return e};var m=(e,o,t)=>(t=e!=null?Ki(Zi(e)):{},yl(o||!e||!e.__esModule?Yr(t,"default",{value:e,enumerable:!0}):t,e)),ou=e=>yl(Yr({},"__esModule",{value:!0}),e);var mm={};eu(mm,{AddressDisplay:()=>un,AddressInput:()=>dn,AnnotationInput:()=>cn,AppShell:()=>Ru,AsyncAutocomplete:()=>It,AttachmentArrayDisplay:()=>_n,AttachmentArrayInput:()=>Yn,AttachmentButton:()=>ht,AttachmentDisplay:()=>io,AttachmentInput:()=>vr,BackboneElementDisplay:()=>Ut,BackboneElementInput:()=>Kt,CalendarInput:()=>kf,CheckboxFormSection:()=>Tr,CodeInput:()=>yr,CodeableConceptDisplay:()=>Ct,CodeableConceptInput:()=>xf,CodingDisplay:()=>nf,CodingInput:()=>Ar,ContactDetailDisplay:()=>lf,ContactDetailInput:()=>If,ContactPointDisplay:()=>Sr,ContactPointInput:()=>Mr,Container:()=>Uo,DateTimeInput:()=>no,DefaultResourceTimeline:()=>Dd,DescriptionList:()=>of,DescriptionListEntry:()=>tf,DiagnosticReportDisplay:()=>wa,Document:()=>Hr,ElementDefinitionInputSelector:()=>bs,ElementDefinitionTypeInput:()=>Tf,EncounterTimeline:()=>Td,ErrorBoundary:()=>xt,FhirPathTable:()=>oi,Form:()=>se,FormSection:()=>We,Header:()=>Xn,HumanNameDisplay:()=>hr,HumanNameInput:()=>yf,IdentifierDisplay:()=>sf,IdentifierInput:()=>vf,Loading:()=>sa,Logo:()=>$o,MeasureReportDisplay:()=>ec,MedplumLink:()=>ke,MedplumProvider:()=>tu,MemoizedFhirPathTable:()=>jd,MemoizedSearchControl:()=>zd,MoneyDisplay:()=>df,MoneyInput:()=>Sf,Navbar:()=>jn,ObservationTable:()=>ws,OperationOutcomeAlert:()=>At,Panel:()=>Dt,PatientTimeline:()=>oc,PlanDefinitionBuilder:()=>tc,QuantityDisplay:()=>No,QuantityInput:()=>_e,QuestionnaireBuilder:()=>Sc,QuestionnaireForm:()=>cl,QuestionnaireItemType:()=>Wr,RangeDisplay:()=>br,RangeInput:()=>Jt,ReferenceDisplay:()=>Yo,ReferenceInput:()=>Pt,ReferenceRangeEditor:()=>Rc,ReferenceRangeGroupEditor:()=>Ti,RegisterForm:()=>im,RequestGroupDisplay:()=>Qc,ResourceArrayDisplay:()=>pf,ResourceArrayInput:()=>Pf,ResourceAvatar:()=>Re,ResourceBadge:()=>Qo,ResourceBlame:()=>jc,ResourceDiff:()=>Zc,ResourceForm:()=>em,ResourceHistoryTable:()=>om,ResourceInput:()=>Er,ResourceName:()=>co,ResourcePropertyDisplay:()=>Fe,ResourcePropertyInput:()=>Co,ResourceTable:()=>Oa,ResourceTimeline:()=>Xo,Scheduler:()=>nm,SearchChangeEvent:()=>Ga,SearchClickEvent:()=>lt,SearchControl:()=>Ys,SearchFieldEditor:()=>Kf,SearchFilterEditor:()=>jf,SearchLoadEvent:()=>Ua,ServiceRequestTimeline:()=>sm,SignInForm:()=>cm,StatusBadge:()=>Nr,Timeline:()=>Mf,TimelineItem:()=>zo,TimingInput:()=>Df,addDateFilterBetween:()=>La,addField:()=>Md,addFilter:()=>Bt,addLastMonthFilter:()=>Vf,addMissingFilter:()=>Ra,addNextMonthFilter:()=>Gf,addThisMonthFilter:()=>qf,addTodayFilter:()=>Rf,addTomorrowFilter:()=>Nf,addYearToDateFilter:()=>Qf,addYesterdayFilter:()=>Lf,buildFieldNameString:()=>Ze,buildInitialResponse:()=>al,buildInitialResponseItem:()=>Ja,clearFilters:()=>Ad,clearFiltersOnField:()=>Gr,convertIsoToLocal:()=>hf,convertLocalToIso:()=>Cf,createScriptTag:()=>_r,deleteFilter:()=>Ef,formatReferenceString:()=>nl,getErrorsForInput:()=>we,getFieldDefinitions:()=>_f,getIssuesForExpression:()=>kr,getNewMultiSelectValues:()=>rl,getNumberOfPages:()=>fl,getOpString:()=>tr,getQuestionnaireItemReferenceTargetTypes:()=>Xr,getRecaptcha:()=>xl,getSearchOperators:()=>Jf,getSortField:()=>Wf,initRecaptcha:()=>pl,isChoiceQuestion:()=>ol,isQuestionEnabled:()=>tl,isSortDescending:()=>Xf,parseForm:()=>Jn,reactContext:()=>an,renderValue:()=>$f,setFilters:()=>or,setOffset:()=>Ks,setPage:()=>zf,setQuestionnaireItemReferenceTargetTypes:()=>Jr,setSort:()=>Na,sortByDateAndPriority:()=>Ff,toggleSort:()=>Fd,useMedplum:()=>T,useMedplumContext:()=>Ft,useMedplumNavigate:()=>Mo,useMedplumProfile:()=>dr,useResource:()=>Z,useSearch:()=>au,useSearchOne:()=>nn,useSearchResources:()=>fn});module.exports=ou(mm);var jo=m(require("react"),1),ea=require("react"),Fo=require("@medplum/core"),mt=require("react"),oa=require("@medplum/core"),ct=require("react"),an=(0,ea.createContext)(void 0);function Ft(){return(0,ea.useContext)(an)}function T(){return Ft().medplum}function Mo(){return Ft().navigate}function dr(){return Ft().profile}function tu(e){let o=e.medplum,t=e.navigate??ru,[r,a]=(0,jo.useState)({profile:o.getProfile(),loading:!1});(0,jo.useEffect)(()=>{function f(){a({...r,profile:o.getProfile()})}return o.addEventListener("change",f),()=>o.removeEventListener("change",f)},[o,r]);let n=(0,jo.useMemo)(()=>({...r,medplum:o,navigate:t}),[r,o,t]);return jo.default.createElement(an.Provider,{value:n},e.children)}function ru(e){window.location.assign(e)}function Z(e,o){let t=T(),[r,a]=(0,mt.useState)(vl(t,e)),n=(0,mt.useCallback)(f=>{(0,Fo.deepEquals)(f,r)||a(f)},[r,a]);return(0,mt.useEffect)(()=>{n(vl(t,e))},[t,e,n]),(0,mt.useEffect)(()=>{let f=!0;return(0,Fo.isReference)(e)&&t.readReference(e).then(s=>{f&&n(s)}).catch(s=>{f&&(n(void 0),o&&o((0,Fo.normalizeOperationOutcome)(s)))}),()=>f=!1},[t,r,e,n,o]),r}function vl(e,o){if(o){if((0,Fo.isResource)(o))return o;if((0,Fo.isReference)(o))return e.getCachedReference(o)}}function au(e,o){return ln("search",e,o)}function nn(e,o){return ln("searchOne",e,o)}function fn(e,o){return ln("searchResources",e,o)}function ln(e,o,t){let r=T(),[a,n]=(0,ct.useState)(),[f,s]=(0,ct.useState)(!1),[l,i]=(0,ct.useState)(),[u,c]=(0,ct.useState)();return(0,ct.useEffect)(()=>{let d=r.fhirSearchUrl(o,t).toString();d!==a&&(n(d),r[e](o,t).then(g=>{s(!1),i(g),c(oa.allOk)}).catch(g=>{s(!1),i(void 0),c((0,oa.normalizeOperationOutcome)(g))}))},[r,e,o,t,a,i]),[l,f,u]}var Sl=require("@medplum/core"),sn=m(require("react"),1);function un(e){let o=e.value;return o?sn.default.createElement(sn.default.Fragment,null,(0,Sl.formatAddress)(o)):null}var so=require("@mantine/core"),Ke=m(require("react"),1);function bl(e,o){return e.line&&e.line.length>o?e.line[o]:""}function Pl(e,o,t){let r=e.line||[];for(;r.length<=o;)r.push("");return r[o]=t,{...e,line:r}}function dn(e){let[o,t]=(0,Ke.useState)(e.defaultValue||{}),r=(0,Ke.useRef)();r.current=o;function a(d){t(d),e.onChange&&e.onChange(d)}function n(d){a({...r.current,use:d})}function f(d){a({...r.current,type:d})}function s(d){a(Pl(r.current||{},0,d))}function l(d){a(Pl(r.current||{},1,d))}function i(d){a({...r.current,city:d})}function u(d){a({...r.current,state:d})}function c(d){a({...r.current,postalCode:d})}return Ke.default.createElement(so.Group,{spacing:"xs",grow:!0,noWrap:!0},Ke.default.createElement(so.NativeSelect,{"data-testid":"address-use",defaultValue:o.use,onChange:d=>n(d.currentTarget.value),data:["","home","work","temp","old","billing"]}),Ke.default.createElement(so.NativeSelect,{"data-testid":"address-type",defaultValue:o.type,onChange:d=>f(d.currentTarget.value),data:["","postal","physical","both"]}),Ke.default.createElement(so.TextInput,{placeholder:"Line 1",defaultValue:bl(o,0),onChange:d=>s(d.currentTarget.value)}),Ke.default.createElement(so.TextInput,{placeholder:"Line 2",defaultValue:bl(o,1),onChange:d=>l(d.currentTarget.value)}),Ke.default.createElement(so.TextInput,{placeholder:"City",defaultValue:o.city,onChange:d=>i(d.currentTarget.value)}),Ke.default.createElement(so.TextInput,{placeholder:"State",defaultValue:o.state,onChange:d=>u(d.currentTarget.value)}),Ke.default.createElement(so.TextInput,{placeholder:"Postal Code",defaultValue:o.postalCode,onChange:d=>c(d.currentTarget.value)}))}var Dl=require("@mantine/core"),Tl=require("@medplum/core");var wt=m(require("react"),1);function cn(e){let o=dr(),[t,r]=(0,wt.useState)(e.defaultValue||{}),a=(0,wt.useRef)();a.current=t;function n(f){let s=f?{text:f,authorReference:o&&(0,Tl.createReference)(o),time:new Date().toISOString()}:{};r(s),e.onChange&&e.onChange(s)}return wt.default.createElement(Dl.TextInput,{name:e.name,placeholder:"Annotation text",defaultValue:t.text,onChange:f=>n(f.currentTarget.value)})}var ga=require("@mantine/core"),Xl=require("@mantine/notifications");var ze=m(require("react"),1);var wl=require("@mantine/core"),Ol=require("@medplum/core");var cr=require("react"),_o=m(require("prop-types"));var kl={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 nu=Object.defineProperty,fu=Object.defineProperties,lu=Object.getOwnPropertyDescriptors,ta=Object.getOwnPropertySymbols,Ml=Object.prototype.hasOwnProperty,Fl=Object.prototype.propertyIsEnumerable,Bl=(e,o,t)=>o in e?nu(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,Al=(e,o)=>{for(var t in o||(o={}))Ml.call(o,t)&&Bl(e,t,o[t]);if(ta)for(var t of ta(o))Fl.call(o,t)&&Bl(e,t,o[t]);return e},su=(e,o)=>fu(e,lu(o)),iu=(e,o)=>{var t={};for(var r in e)Ml.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&ta)for(var r of ta(e))o.indexOf(r)<0&&Fl.call(e,r)&&(t[r]=e[r]);return t},x=(e,o,t)=>{let r=(0,cr.forwardRef)((a,n)=>{var f=a,{color:s="currentColor",size:l=24,stroke:i=2,children:u}=f,c=iu(f,["color","size","stroke","children"]);return(0,cr.createElement)("svg",Al(su(Al({ref:n},kl),{width:l,height:l,stroke:s,strokeWidth:i,className:`tabler-icon tabler-icon-${e}`}),c),[...t.map(([d,g])=>(0,cr.createElement)(d,g)),...u||[]])});return r.propTypes={color:_o.default.string,size:_o.default.oneOfType([_o.default.string,_o.default.number]),stroke:_o.default.oneOfType([_o.default.string,_o.default.number])},r.displayName=`${o}`,r};var mn=x("adjustments-horizontal","IconAdjustmentsHorizontal",[["path",{d:"M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M4 6l8 0",key:"svg-1"}],["path",{d:"M16 6l4 0",key:"svg-2"}],["path",{d:"M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M4 12l2 0",key:"svg-4"}],["path",{d:"M10 12l10 0",key:"svg-5"}],["path",{d:"M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-6"}],["path",{d:"M4 18l11 0",key:"svg-7"}],["path",{d:"M19 18l1 0",key:"svg-8"}]]);var pt=x("alert-circle","IconAlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);var pn=x("arrow-down","IconArrowDown",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M18 13l-6 6",key:"svg-1"}],["path",{d:"M6 13l6 6",key:"svg-2"}]]);var xn=x("arrow-up","IconArrowUp",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M18 11l-6 -6",key:"svg-1"}],["path",{d:"M6 11l6 -6",key:"svg-2"}]]);var In=x("bleach-off","IconBleachOff",[["path",{d:"M5 19h14m1.986 -1.977a2 2 0 0 0 -.146 -.773l-7.1 -12.25a2 2 0 0 0 -3.5 0l-.815 1.405m-1.488 2.568l-4.797 8.277a2 2 0 0 0 1.75 2.75",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]);var gn=x("bleach","IconBleach",[["path",{d:"M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75",key:"svg-0"}]]);var hn=x("box-multiple","IconBoxMultiple",[["path",{d:"M7 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M17 17v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h2",key:"svg-1"}]]);var Cn=x("brackets-contain","IconBracketsContain",[["path",{d:"M7 4h-4v16h4",key:"svg-0"}],["path",{d:"M17 4h4v16h-4",key:"svg-1"}],["path",{d:"M8 16h.01",key:"svg-2"}],["path",{d:"M12 16h.01",key:"svg-3"}],["path",{d:"M16 16h.01",key:"svg-4"}]]);var yn=x("bucket-off","IconBucketOff",[["path",{d:"M5.029 5.036c-.655 .58 -1.029 1.25 -1.029 1.964c0 2.033 3.033 3.712 6.96 3.967m3.788 -.21c3.064 -.559 5.252 -2.029 5.252 -3.757c0 -2.21 -3.582 -4 -8 -4c-1.605 0 -3.1 .236 -4.352 .643",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.1 -.3 .252 -.812 .457 -1.535m.862 -3.146c.262 -.975 .735 -2.76 1.418 -5.354a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]]);var vn=x("bucket","IconBucket",[["path",{d:"M12 7m-8 0a8 4 0 1 0 16 0a8 4 0 1 0 -16 0",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.333 -1 1.246 -4.345 2.737 -10.035a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}]]);var wo=x("calendar","IconCalendar",[["path",{d:"M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z",key:"svg-0"}],["path",{d:"M16 3v4",key:"svg-1"}],["path",{d:"M8 3v4",key:"svg-2"}],["path",{d:"M4 11h16",key:"svg-3"}],["path",{d:"M11 15h1",key:"svg-4"}],["path",{d:"M12 15v3",key:"svg-5"}]]);var mr=x("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]);var Sn=x("checkbox","IconCheckbox",[["path",{d:"M9 11l3 3l8 -8",key:"svg-0"}],["path",{d:"M20 12v6a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h9",key:"svg-1"}]]);var bn=x("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]);var Zo=x("circle-minus","IconCircleMinus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}]]);var Ot=x("circle-plus","IconCirclePlus",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M9 12h6",key:"svg-1"}],["path",{d:"M12 9v6",key:"svg-2"}]]);var pr=x("cloud-upload","IconCloudUpload",[["path",{d:"M7 18a4.6 4.4 0 0 1 0 -9a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-1",key:"svg-0"}],["path",{d:"M9 15l3 -3l3 3",key:"svg-1"}],["path",{d:"M12 12l0 9",key:"svg-2"}]]);var Pn=x("columns","IconColumns",[["path",{d:"M4 6l5.5 0",key:"svg-0"}],["path",{d:"M4 10l5.5 0",key:"svg-1"}],["path",{d:"M4 14l5.5 0",key:"svg-2"}],["path",{d:"M4 18l5.5 0",key:"svg-3"}],["path",{d:"M14.5 6l5.5 0",key:"svg-4"}],["path",{d:"M14.5 10l5.5 0",key:"svg-5"}],["path",{d:"M14.5 14l5.5 0",key:"svg-6"}],["path",{d:"M14.5 18l5.5 0",key:"svg-7"}]]);var Dn=x("copy","IconCopy",[["path",{d:"M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2",key:"svg-1"}]]);var Tn=x("currency-dollar","IconCurrencyDollar",[["path",{d:"M16.7 8a3 3 0 0 0 -2.7 -2h-4a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6h-4a3 3 0 0 1 -2.7 -2",key:"svg-0"}],["path",{d:"M12 3v3m0 12v3",key:"svg-1"}]]);var kn=x("dots","IconDots",[["path",{d:"M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var Bn=x("edit","IconEdit",[["path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1",key:"svg-0"}],["path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]]);var Et=x("equal-not","IconEqualNot",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}],["path",{d:"M5 19l14 -14",key:"svg-2"}]]);var Lt=x("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);var ra=x("file-alert","IconFileAlert",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 17l.01 0",key:"svg-2"}],["path",{d:"M12 11l0 3",key:"svg-3"}]]);var An=x("file-plus","IconFilePlus",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 11l0 6",key:"svg-2"}],["path",{d:"M9 14l6 0",key:"svg-3"}]]);var Mn=x("filter","IconFilter",[["path",{d:"M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z",key:"svg-0"}]]);var Fn=x("list-details","IconListDetails",[["path",{d:"M13 5h8",key:"svg-0"}],["path",{d:"M13 9h5",key:"svg-1"}],["path",{d:"M13 15h8",key:"svg-2"}],["path",{d:"M13 19h5",key:"svg-3"}],["path",{d:"M3 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-4"}],["path",{d:"M3 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-5"}]]);var wn=x("logout","IconLogout",[["path",{d:"M14 8v-2a2 2 0 0 0 -2 -2h-7a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M9 12h12l-3 -3",key:"svg-1"}],["path",{d:"M18 15l3 -3",key:"svg-2"}]]);var aa=x("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]);var na=x("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]);var On=x("message","IconMessage",[["path",{d:"M8 9h8",key:"svg-0"}],["path",{d:"M8 13h6",key:"svg-1"}],["path",{d:"M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z",key:"svg-2"}]]);var En=x("pin","IconPin",[["path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4",key:"svg-0"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-1"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-2"}]]);var Ln=x("pinned-off","IconPinnedOff",[["path",{d:"M3 3l18 18",key:"svg-0"}],["path",{d:"M15 4.5l-3.249 3.249m-2.57 1.433l-2.181 .818l-1.5 1.5l7 7l1.5 -1.5l.82 -2.186m1.43 -2.563l3.25 -3.251",key:"svg-1"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-2"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-3"}]]);var Rn=x("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);var Nn=x("refresh","IconRefresh",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]]);var Hn=x("search","IconSearch",[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]);var Rt=x("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]);var xr=x("sort-ascending","IconSortAscending",[["path",{d:"M4 6l7 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l9 0",key:"svg-2"}],["path",{d:"M15 9l3 -3l3 3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]);var Ir=x("sort-descending","IconSortDescending",[["path",{d:"M4 6l9 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l7 0",key:"svg-2"}],["path",{d:"M15 15l3 3l3 -3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]);var Vn=x("square","IconSquare",[["path",{d:"M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z",key:"svg-0"}]]);var qn=x("switch-horizontal","IconSwitchHorizontal",[["path",{d:"M16 3l4 4l-4 4",key:"svg-0"}],["path",{d:"M10 7l10 0",key:"svg-1"}],["path",{d:"M8 13l-4 4l4 4",key:"svg-2"}],["path",{d:"M4 17l9 0",key:"svg-3"}]]);var Gn=x("table-export","IconTableExport",[["path",{d:"M12.5 21h-7.5a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5",key:"svg-0"}],["path",{d:"M3 10h18",key:"svg-1"}],["path",{d:"M10 3v18",key:"svg-2"}],["path",{d:"M16 19h6",key:"svg-3"}],["path",{d:"M19 16l3 3l-3 3",key:"svg-4"}]]);var gr=x("trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]);var Un=x("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);var fa=m(require("react"),1),xt=class extends fa.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?fa.default.createElement(wl.Alert,{icon:fa.default.createElement(pt,{size:16}),title:"Something went wrong",color:"red"},(0,Ol.normalizeErrorString)(this.state.error)):this.props.children}};var la=require("@mantine/core"),Qn=m(require("react"),1);function sa(){return Qn.default.createElement(la.Center,{style:{width:"100%",height:"100vh"}},Qn.default.createElement(la.Loader,null))}var X=require("@mantine/core"),Cr=require("@medplum/core");var Q=m(require("react"),1);var El=require("@medplum/core"),zn=m(require("react"),1);function hr(e){let o=e.value;return o?zn.default.createElement(zn.default.Fragment,null,(0,El.formatHumanName)(o,e.options)):null}var Wn=require("@mantine/core"),ca=require("@medplum/core");var da=m(require("react"),1);var Rl=require("@mantine/core"),ua=require("@medplum/core");var Nl=m(require("react"),1);function q(e){e.preventDefault(),e.stopPropagation()}function ia(e){if(Ll(e))return!0;if(e instanceof HTMLTableCellElement){let o=e.children;if(o.length===1&&Ll(o[0]))return!0}return!1}function Ll(e){return e instanceof HTMLInputElement&&e.type==="checkbox"}function ke(e){let o=Mo(),{to:t,suffix:r,label:a,onClick:n,children:f,...s}=e,l=uu(t);return r&&(l+="/"+r),Nl.default.createElement(Rl.Anchor,{href:l,"aria-label":a,onClick:i=>{q(i),n?n(i):t&&o(l)},...s},f)}function uu(e){if(e){if(typeof e=="string")return du(e);if((0,ua.isResource)(e))return cu(e);if((0,ua.isReference)(e))return mu(e)}return"#"}function du(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e}function cu(e){return`/${e.resourceType}/${e.id}`}function mu(e){return`/${e.reference}`}function Re(e){let o=Z(e.value),t=o?(0,ca.getDisplayString)(o):e.alt??"",r=(o&&(0,ca.getImageSrc)(o))??e.src,a=e.radius??"xl",n={...e};return delete n.value,delete n.link,e.link?da.default.createElement(ke,{to:o},da.default.createElement(Wn.Avatar,{src:r,alt:t,radius:a,...n})):da.default.createElement(Wn.Avatar,{src:r,alt:t,radius:a,...n})}var gt=require("@mantine/core"),Oo=require("@medplum/core");var Ue=m(require("react"),1);var ma=require("@mantine/core"),Hl=require("@mantine/notifications"),Vl=require("@medplum/core"),le=m(require("react"),1);function It(e){let{defaultValue:o,toKey:t,toOption:r,loadOptions:a,onChange:n,onCreate:f,creatable:s,...l}=e,i=pu(o),u=(0,le.useRef)(null),[c,d]=(0,le.useState)(),[g,P]=(0,le.useState)(),[v,k]=(0,le.useState)(),[M,A]=(0,le.useState)(),[w,oe]=(0,le.useState)(i.map(r)),[D,V]=(0,le.useState)([]),ge=(0,le.useRef)();ge.current=c;let De=(0,le.useRef)();De.current=g;let Bo=(0,le.useRef)();Bo.current=v;let dt=(0,le.useRef)();dt.current=M;let Le=(0,le.useRef)();Le.current=D;let S=(0,le.useCallback)(()=>{P(void 0);let Te=u.current?.value.trim()||"";if(Te===ge.current)return;d(Te);let be=new AbortController;k(be),a(Te,be.signal).then(ro=>{be.signal.aborted||(V(ro.map(r)),k(void 0),dt.current&&(ro.length>0&&n(ro.slice(0,1)),A(!1)))}).catch(ro=>{be.signal.aborted||ro.message.includes("aborted")||(0,Hl.showNotification)({color:"red",message:(0,Vl.normalizeErrorString)(ro)})})},[a,n,r]),W=(0,le.useCallback)(()=>{Bo.current&&(Bo.current.abort(),k(void 0)),De.current!==void 0&&window.clearTimeout(De.current);let Te=window.setTimeout(()=>S(),100);P(Te)},[S]),go=(0,le.useCallback)(Te=>{let be=[],ro=[];for(let Cl of Te){let Zr=Le.current?.find($i=>$i.value===Cl),ur=Zr?.resource;!ur&&s!==!1&&f&&(ur=f(Cl),Zr=r(ur)),ur&&be.push(ur),Zr&&ro.push(Zr)}n(be),oe(ro)},[s,n,f,r]),b=(0,le.useCallback)(Te=>{Te.key==="Enter"&&(!De.current&&!Bo.current?(q(Te),Le.current&&Le.current.length>0&&(V(Le.current.slice(0,1)),go([Le.current[0].value]))):A(!0))},[go]),$=(0,le.useCallback)(Te=>{let be=r(f(Te));return V([...Le.current,be]),be},[f,V,r]),Ao=(0,le.useCallback)((Te,be)=>!be,[]);return(0,le.useEffect)(()=>()=>{Bo.current&&Bo.current.abort()},[]),le.default.createElement(ma.MultiSelect,{...l,ref:u,defaultValue:i.map(t),searchable:!0,onKeyDown:b,onSearchChange:W,data:[...w,...D],onFocus:S,onChange:go,onCreate:$,rightSectionWidth:40,rightSection:v?le.default.createElement(ma.Loader,{size:16}):null,filter:Ao,creatable:!0,withinPortal:!0})}function pu(e){return e?Array.isArray(e)?e:[e]:[]}var xu=(0,gt.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 Iu(e){return e.id}function gu(e){return{value:e.id,label:(0,Oo.getDisplayString)(e),resource:e}}function Ul(e){let{classes:o}=xu(),t=Mo(),r=T(),a=(0,Ue.useCallback)(async(f,s)=>{let l=Cu(f),i={signal:s},u=await r.graphql(l,void 0,void 0,i);return yu(u,f)},[r]),n=(0,Ue.useCallback)(f=>{f.length>0&&t(`/${(0,Oo.getReferenceString)(f[0])}`)},[t]);return Ue.default.createElement(It,{key:`${e.pathname}?${e.searchParams}`,size:"sm",radius:"md",className:o.searchInput,icon:Ue.default.createElement(Hn,{size:16}),placeholder:"Search",itemComponent:hu,toKey:Iu,toOption:gu,onChange:n,loadOptions:a,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var hu=(0,Ue.forwardRef)(({resource:e,...o},t)=>{let r;return e.resourceType==="Patient"?r=e.birthDate:e.resourceType==="ServiceRequest"&&(r=e.subject?.display),Ue.default.createElement("div",{ref:t,...o},Ue.default.createElement(gt.Group,{noWrap:!0},Ue.default.createElement(Re,{value:e}),Ue.default.createElement("div",null,Ue.default.createElement(gt.Text,null,(0,Oo.getDisplayString)(e)),Ue.default.createElement(gt.Text,{size:"xs",color:"dimmed"},r))))});function Cu(e){let o=JSON.stringify(e);return(0,Oo.isUUID)(e)?`{
|
|
1
|
+
"use strict";var ji=Object.create;var ea=Object.defineProperty;var _i=Object.getOwnPropertyDescriptor;var Zi=Object.getOwnPropertyNames;var Yi=Object.getPrototypeOf,eu=Object.prototype.hasOwnProperty;var ou=(e,o)=>{for(var t in o)ea(e,t,{get:o[t],enumerable:!0})},vl=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of Zi(o))!eu.call(e,a)&&a!==t&&ea(e,a,{get:()=>o[a],enumerable:!(r=_i(o,a))||r.enumerable});return e};var m=(e,o,t)=>(t=e!=null?ji(Yi(e)):{},vl(o||!e||!e.__esModule?ea(t,"default",{value:e,enumerable:!0}):t,e)),tu=e=>vl(ea({},"__esModule",{value:!0}),e);var pm={};ou(pm,{AddressDisplay:()=>cn,AddressInput:()=>mn,AnnotationInput:()=>pn,AppShell:()=>Nu,AsyncAutocomplete:()=>gt,AttachmentArrayDisplay:()=>Yn,AttachmentArrayInput:()=>of,AttachmentButton:()=>Ct,AttachmentDisplay:()=>io,AttachmentInput:()=>Sr,BackboneElementDisplay:()=>Qt,BackboneElementInput:()=>jt,CalendarInput:()=>Bf,CheckboxFormSection:()=>kr,CodeInput:()=>vr,CodeableConceptDisplay:()=>yt,CodeableConceptInput:()=>gf,CodingDisplay:()=>lf,CodingInput:()=>Mr,ContactDetailDisplay:()=>uf,ContactDetailInput:()=>hf,ContactPointDisplay:()=>br,ContactPointInput:()=>Fr,Container:()=>Uo,DateTimeInput:()=>no,DefaultResourceTimeline:()=>Td,DescriptionList:()=>rf,DescriptionListEntry:()=>af,DiagnosticReportDisplay:()=>Ea,Document:()=>Vr,ElementDefinitionInputSelector:()=>Ps,ElementDefinitionTypeInput:()=>kf,EncounterTimeline:()=>kd,ErrorBoundary:()=>It,FhirPathTable:()=>ti,Form:()=>se,FormSection:()=>We,Header:()=>$n,HumanNameDisplay:()=>Cr,HumanNameInput:()=>Sf,IdentifierDisplay:()=>df,IdentifierInput:()=>bf,Loading:()=>ia,Logo:()=>$o,MeasureReportDisplay:()=>oc,MedplumLink:()=>Te,MedplumProvider:()=>ru,MemoizedFhirPathTable:()=>_d,MemoizedSearchControl:()=>Wd,MoneyDisplay:()=>mf,MoneyInput:()=>Pf,Navbar:()=>Zn,ObservationTable:()=>Os,OperationOutcomeAlert:()=>Mt,Panel:()=>Tt,PatientTimeline:()=>tc,PlanDefinitionBuilder:()=>rc,QuantityDisplay:()=>No,QuantityInput:()=>_e,QuestionnaireBuilder:()=>bc,QuestionnaireForm:()=>ml,QuestionnaireItemType:()=>Xr,RangeDisplay:()=>Pr,RangeInput:()=>$t,ReferenceDisplay:()=>Yo,ReferenceInput:()=>Dt,ReferenceRangeEditor:()=>Nc,ReferenceRangeGroupEditor:()=>ki,RegisterForm:()=>um,RequestGroupDisplay:()=>zc,ResourceArrayDisplay:()=>If,ResourceArrayInput:()=>Df,ResourceAvatar:()=>Le,ResourceBadge:()=>Qo,ResourceBlame:()=>_c,ResourceDiff:()=>Yc,ResourceForm:()=>om,ResourceHistoryTable:()=>tm,ResourceInput:()=>Lr,ResourceName:()=>co,ResourcePropertyDisplay:()=>Me,ResourcePropertyInput:()=>Co,ResourceTable:()=>La,ResourceTimeline:()=>Xo,Scheduler:()=>fm,SearchChangeEvent:()=>Qa,SearchClickEvent:()=>st,SearchControl:()=>ei,SearchFieldEditor:()=>jf,SearchFilterEditor:()=>_f,SearchLoadEvent:()=>za,ServiceRequestTimeline:()=>im,SignInForm:()=>mm,StatusBadge:()=>Hr,Timeline:()=>Ff,TimelineItem:()=>zo,TimingInput:()=>Tf,addDateFilterBetween:()=>Na,addField:()=>Fd,addFilter:()=>At,addLastMonthFilter:()=>qf,addMissingFilter:()=>Ha,addNextMonthFilter:()=>Uf,addThisMonthFilter:()=>Gf,addTodayFilter:()=>Nf,addTomorrowFilter:()=>Hf,addYearToDateFilter:()=>zf,addYesterdayFilter:()=>Rf,buildFieldNameString:()=>Ze,buildInitialResponse:()=>nl,buildInitialResponseItem:()=>Ka,clearFilters:()=>Md,clearFiltersOnField:()=>Ur,convertIsoToLocal:()=>yf,convertLocalToIso:()=>vf,createScriptTag:()=>Zr,deleteFilter:()=>Lf,formatReferenceString:()=>fl,getErrorsForInput:()=>Fe,getFieldDefinitions:()=>Zf,getIssuesForExpression:()=>Br,getNewMultiSelectValues:()=>al,getNumberOfPages:()=>ll,getOpString:()=>rr,getQuestionnaireItemReferenceTargetTypes:()=>Jr,getRecaptcha:()=>Il,getSearchOperators:()=>$f,getSortField:()=>Xf,initRecaptcha:()=>xl,isChoiceQuestion:()=>tl,isQuestionEnabled:()=>rl,isSortDescending:()=>Jf,parseForm:()=>Kn,reactContext:()=>fn,renderValue:()=>Kf,setFilters:()=>tr,setOffset:()=>js,setPage:()=>Wf,setQuestionnaireItemReferenceTargetTypes:()=>$r,setSort:()=>Va,sortByDateAndPriority:()=>wf,toggleSort:()=>wd,useMedplum:()=>T,useMedplumContext:()=>wt,useMedplumNavigate:()=>Mo,useMedplumProfile:()=>cr,useResource:()=>Z,useSearch:()=>nu,useSearchOne:()=>ln,useSearchResources:()=>sn});module.exports=tu(pm);var jo=m(require("react"),1),oa=require("react"),Fo=require("@medplum/core"),pt=require("react"),ta=require("@medplum/core"),mt=require("react"),fn=(0,oa.createContext)(void 0);function wt(){return(0,oa.useContext)(fn)}function T(){return wt().medplum}function Mo(){return wt().navigate}function cr(){return wt().profile}function ru(e){let o=e.medplum,t=e.navigate??au,[r,a]=(0,jo.useState)({profile:o.getProfile(),loading:!1});(0,jo.useEffect)(()=>{function f(){a({...r,profile:o.getProfile()})}return o.addEventListener("change",f),()=>o.removeEventListener("change",f)},[o,r]);let n=(0,jo.useMemo)(()=>({...r,medplum:o,navigate:t}),[r,o,t]);return jo.default.createElement(fn.Provider,{value:n},e.children)}function au(e){window.location.assign(e)}function Z(e,o){let t=T(),[r,a]=(0,pt.useState)(Sl(t,e)),n=(0,pt.useCallback)(f=>{(0,Fo.deepEquals)(f,r)||a(f)},[r,a]);return(0,pt.useEffect)(()=>{n(Sl(t,e))},[t,e,n]),(0,pt.useEffect)(()=>{let f=!0;return(0,Fo.isReference)(e)&&t.readReference(e).then(s=>{f&&n(s)}).catch(s=>{f&&(n(void 0),o&&o((0,Fo.normalizeOperationOutcome)(s)))}),()=>f=!1},[t,r,e,n,o]),r}function Sl(e,o){if(o){if((0,Fo.isResource)(o))return o;if((0,Fo.isReference)(o))return e.getCachedReference(o)}}function nu(e,o){return un("search",e,o)}function ln(e,o){return un("searchOne",e,o)}function sn(e,o){return un("searchResources",e,o)}function un(e,o,t){let r=T(),[a,n]=(0,mt.useState)(),[f,s]=(0,mt.useState)(!1),[l,i]=(0,mt.useState)(),[u,c]=(0,mt.useState)();return(0,mt.useEffect)(()=>{let d=r.fhirSearchUrl(o,t).toString();d!==a&&(n(d),r[e](o,t).then(g=>{s(!1),i(g),c(ta.allOk)}).catch(g=>{s(!1),i(void 0),c((0,ta.normalizeOperationOutcome)(g))}))},[r,e,o,t,a,i]),[l,f,u]}var bl=require("@medplum/core"),dn=m(require("react"),1);function cn(e){let o=e.value;return o?dn.default.createElement(dn.default.Fragment,null,(0,bl.formatAddress)(o)):null}var so=require("@mantine/core"),Ke=m(require("react"),1);function Pl(e,o){return e.line&&e.line.length>o?e.line[o]:""}function Dl(e,o,t){let r=e.line||[];for(;r.length<=o;)r.push("");return r[o]=t,{...e,line:r}}function mn(e){let[o,t]=(0,Ke.useState)(e.defaultValue||{}),r=(0,Ke.useRef)();r.current=o;function a(d){t(d),e.onChange&&e.onChange(d)}function n(d){a({...r.current,use:d})}function f(d){a({...r.current,type:d})}function s(d){a(Dl(r.current||{},0,d))}function l(d){a(Dl(r.current||{},1,d))}function i(d){a({...r.current,city:d})}function u(d){a({...r.current,state:d})}function c(d){a({...r.current,postalCode:d})}return Ke.default.createElement(so.Group,{spacing:"xs",grow:!0,noWrap:!0},Ke.default.createElement(so.NativeSelect,{"data-testid":"address-use",defaultValue:o.use,onChange:d=>n(d.currentTarget.value),data:["","home","work","temp","old","billing"]}),Ke.default.createElement(so.NativeSelect,{"data-testid":"address-type",defaultValue:o.type,onChange:d=>f(d.currentTarget.value),data:["","postal","physical","both"]}),Ke.default.createElement(so.TextInput,{placeholder:"Line 1",defaultValue:Pl(o,0),onChange:d=>s(d.currentTarget.value)}),Ke.default.createElement(so.TextInput,{placeholder:"Line 2",defaultValue:Pl(o,1),onChange:d=>l(d.currentTarget.value)}),Ke.default.createElement(so.TextInput,{placeholder:"City",defaultValue:o.city,onChange:d=>i(d.currentTarget.value)}),Ke.default.createElement(so.TextInput,{placeholder:"State",defaultValue:o.state,onChange:d=>u(d.currentTarget.value)}),Ke.default.createElement(so.TextInput,{placeholder:"Postal Code",defaultValue:o.postalCode,onChange:d=>c(d.currentTarget.value)}))}var Tl=require("@mantine/core"),kl=require("@medplum/core");var Ot=m(require("react"),1);function pn(e){let o=cr(),[t,r]=(0,Ot.useState)(e.defaultValue||{}),a=(0,Ot.useRef)();a.current=t;function n(f){let s=f?{text:f,authorReference:o&&(0,kl.createReference)(o),time:new Date().toISOString()}:{};r(s),e.onChange&&e.onChange(s)}return Ot.default.createElement(Tl.TextInput,{name:e.name,placeholder:"Annotation text",defaultValue:t.text,onChange:f=>n(f.currentTarget.value)})}var ha=require("@mantine/core"),Jl=require("@mantine/notifications");var ze=m(require("react"),1);var Ol=require("@mantine/core"),El=require("@medplum/core");var mr=require("react"),_o=m(require("prop-types"));var Bl={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 fu=Object.defineProperty,lu=Object.defineProperties,su=Object.getOwnPropertyDescriptors,ra=Object.getOwnPropertySymbols,Fl=Object.prototype.hasOwnProperty,wl=Object.prototype.propertyIsEnumerable,Al=(e,o,t)=>o in e?fu(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,Ml=(e,o)=>{for(var t in o||(o={}))Fl.call(o,t)&&Al(e,t,o[t]);if(ra)for(var t of ra(o))wl.call(o,t)&&Al(e,t,o[t]);return e},iu=(e,o)=>lu(e,su(o)),uu=(e,o)=>{var t={};for(var r in e)Fl.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&ra)for(var r of ra(e))o.indexOf(r)<0&&wl.call(e,r)&&(t[r]=e[r]);return t},x=(e,o,t)=>{let r=(0,mr.forwardRef)((a,n)=>{var f=a,{color:s="currentColor",size:l=24,stroke:i=2,children:u}=f,c=uu(f,["color","size","stroke","children"]);return(0,mr.createElement)("svg",Ml(iu(Ml({ref:n},Bl),{width:l,height:l,stroke:s,strokeWidth:i,className:`tabler-icon tabler-icon-${e}`}),c),[...t.map(([d,g])=>(0,mr.createElement)(d,g)),...u||[]])});return r.propTypes={color:_o.default.string,size:_o.default.oneOfType([_o.default.string,_o.default.number]),stroke:_o.default.oneOfType([_o.default.string,_o.default.number])},r.displayName=`${o}`,r};var xn=x("adjustments-horizontal","IconAdjustmentsHorizontal",[["path",{d:"M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M4 6l8 0",key:"svg-1"}],["path",{d:"M16 6l4 0",key:"svg-2"}],["path",{d:"M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M4 12l2 0",key:"svg-4"}],["path",{d:"M10 12l10 0",key:"svg-5"}],["path",{d:"M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-6"}],["path",{d:"M4 18l11 0",key:"svg-7"}],["path",{d:"M19 18l1 0",key:"svg-8"}]]);var xt=x("alert-circle","IconAlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);var In=x("arrow-down","IconArrowDown",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M18 13l-6 6",key:"svg-1"}],["path",{d:"M6 13l6 6",key:"svg-2"}]]);var gn=x("arrow-up","IconArrowUp",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M18 11l-6 -6",key:"svg-1"}],["path",{d:"M6 11l6 -6",key:"svg-2"}]]);var hn=x("bleach-off","IconBleachOff",[["path",{d:"M5 19h14m1.986 -1.977a2 2 0 0 0 -.146 -.773l-7.1 -12.25a2 2 0 0 0 -3.5 0l-.815 1.405m-1.488 2.568l-4.797 8.277a2 2 0 0 0 1.75 2.75",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]);var Cn=x("bleach","IconBleach",[["path",{d:"M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75",key:"svg-0"}]]);var yn=x("box-multiple","IconBoxMultiple",[["path",{d:"M7 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M17 17v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h2",key:"svg-1"}]]);var vn=x("brackets-contain","IconBracketsContain",[["path",{d:"M7 4h-4v16h4",key:"svg-0"}],["path",{d:"M17 4h4v16h-4",key:"svg-1"}],["path",{d:"M8 16h.01",key:"svg-2"}],["path",{d:"M12 16h.01",key:"svg-3"}],["path",{d:"M16 16h.01",key:"svg-4"}]]);var Sn=x("bucket-off","IconBucketOff",[["path",{d:"M5.029 5.036c-.655 .58 -1.029 1.25 -1.029 1.964c0 2.033 3.033 3.712 6.96 3.967m3.788 -.21c3.064 -.559 5.252 -2.029 5.252 -3.757c0 -2.21 -3.582 -4 -8 -4c-1.605 0 -3.1 .236 -4.352 .643",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.1 -.3 .252 -.812 .457 -1.535m.862 -3.146c.262 -.975 .735 -2.76 1.418 -5.354a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]]);var bn=x("bucket","IconBucket",[["path",{d:"M12 7m-8 0a8 4 0 1 0 16 0a8 4 0 1 0 -16 0",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.333 -1 1.246 -4.345 2.737 -10.035a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}]]);var wo=x("calendar","IconCalendar",[["path",{d:"M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z",key:"svg-0"}],["path",{d:"M16 3v4",key:"svg-1"}],["path",{d:"M8 3v4",key:"svg-2"}],["path",{d:"M4 11h16",key:"svg-3"}],["path",{d:"M11 15h1",key:"svg-4"}],["path",{d:"M12 15v3",key:"svg-5"}]]);var pr=x("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]);var Pn=x("checkbox","IconCheckbox",[["path",{d:"M9 11l3 3l8 -8",key:"svg-0"}],["path",{d:"M20 12v6a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h9",key:"svg-1"}]]);var Dn=x("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]);var Zo=x("circle-minus","IconCircleMinus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}]]);var Et=x("circle-plus","IconCirclePlus",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M9 12h6",key:"svg-1"}],["path",{d:"M12 9v6",key:"svg-2"}]]);var xr=x("cloud-upload","IconCloudUpload",[["path",{d:"M7 18a4.6 4.4 0 0 1 0 -9a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-1",key:"svg-0"}],["path",{d:"M9 15l3 -3l3 3",key:"svg-1"}],["path",{d:"M12 12l0 9",key:"svg-2"}]]);var Tn=x("columns","IconColumns",[["path",{d:"M4 6l5.5 0",key:"svg-0"}],["path",{d:"M4 10l5.5 0",key:"svg-1"}],["path",{d:"M4 14l5.5 0",key:"svg-2"}],["path",{d:"M4 18l5.5 0",key:"svg-3"}],["path",{d:"M14.5 6l5.5 0",key:"svg-4"}],["path",{d:"M14.5 10l5.5 0",key:"svg-5"}],["path",{d:"M14.5 14l5.5 0",key:"svg-6"}],["path",{d:"M14.5 18l5.5 0",key:"svg-7"}]]);var kn=x("copy","IconCopy",[["path",{d:"M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2",key:"svg-1"}]]);var Bn=x("currency-dollar","IconCurrencyDollar",[["path",{d:"M16.7 8a3 3 0 0 0 -2.7 -2h-4a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6h-4a3 3 0 0 1 -2.7 -2",key:"svg-0"}],["path",{d:"M12 3v3m0 12v3",key:"svg-1"}]]);var An=x("dots","IconDots",[["path",{d:"M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var Mn=x("edit","IconEdit",[["path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1",key:"svg-0"}],["path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]]);var Lt=x("equal-not","IconEqualNot",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}],["path",{d:"M5 19l14 -14",key:"svg-2"}]]);var Rt=x("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);var aa=x("file-alert","IconFileAlert",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 17l.01 0",key:"svg-2"}],["path",{d:"M12 11l0 3",key:"svg-3"}]]);var Fn=x("file-plus","IconFilePlus",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 11l0 6",key:"svg-2"}],["path",{d:"M9 14l6 0",key:"svg-3"}]]);var wn=x("filter","IconFilter",[["path",{d:"M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z",key:"svg-0"}]]);var On=x("list-details","IconListDetails",[["path",{d:"M13 5h8",key:"svg-0"}],["path",{d:"M13 9h5",key:"svg-1"}],["path",{d:"M13 15h8",key:"svg-2"}],["path",{d:"M13 19h5",key:"svg-3"}],["path",{d:"M3 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-4"}],["path",{d:"M3 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-5"}]]);var En=x("logout","IconLogout",[["path",{d:"M14 8v-2a2 2 0 0 0 -2 -2h-7a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M9 12h12l-3 -3",key:"svg-1"}],["path",{d:"M18 15l3 -3",key:"svg-2"}]]);var na=x("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]);var fa=x("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]);var Ln=x("message","IconMessage",[["path",{d:"M8 9h8",key:"svg-0"}],["path",{d:"M8 13h6",key:"svg-1"}],["path",{d:"M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z",key:"svg-2"}]]);var Rn=x("pin","IconPin",[["path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4",key:"svg-0"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-1"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-2"}]]);var Nn=x("pinned-off","IconPinnedOff",[["path",{d:"M3 3l18 18",key:"svg-0"}],["path",{d:"M15 4.5l-3.249 3.249m-2.57 1.433l-2.181 .818l-1.5 1.5l7 7l1.5 -1.5l.82 -2.186m1.43 -2.563l3.25 -3.251",key:"svg-1"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-2"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-3"}]]);var Hn=x("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);var Vn=x("refresh","IconRefresh",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]]);var qn=x("search","IconSearch",[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]);var Nt=x("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]);var Ir=x("sort-ascending","IconSortAscending",[["path",{d:"M4 6l7 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l9 0",key:"svg-2"}],["path",{d:"M15 9l3 -3l3 3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]);var gr=x("sort-descending","IconSortDescending",[["path",{d:"M4 6l9 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l7 0",key:"svg-2"}],["path",{d:"M15 15l3 3l3 -3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]);var Gn=x("square","IconSquare",[["path",{d:"M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z",key:"svg-0"}]]);var Un=x("switch-horizontal","IconSwitchHorizontal",[["path",{d:"M16 3l4 4l-4 4",key:"svg-0"}],["path",{d:"M10 7l10 0",key:"svg-1"}],["path",{d:"M8 13l-4 4l4 4",key:"svg-2"}],["path",{d:"M4 17l9 0",key:"svg-3"}]]);var Qn=x("table-export","IconTableExport",[["path",{d:"M12.5 21h-7.5a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5",key:"svg-0"}],["path",{d:"M3 10h18",key:"svg-1"}],["path",{d:"M10 3v18",key:"svg-2"}],["path",{d:"M16 19h6",key:"svg-3"}],["path",{d:"M19 16l3 3l-3 3",key:"svg-4"}]]);var hr=x("trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]);var zn=x("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);var la=m(require("react"),1),It=class extends la.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?la.default.createElement(Ol.Alert,{icon:la.default.createElement(xt,{size:16}),title:"Something went wrong",color:"red"},(0,El.normalizeErrorString)(this.state.error)):this.props.children}};var sa=require("@mantine/core"),Wn=m(require("react"),1);function ia(){return Wn.default.createElement(sa.Center,{style:{width:"100%",height:"100vh"}},Wn.default.createElement(sa.Loader,null))}var X=require("@mantine/core"),yr=require("@medplum/core");var Q=m(require("react"),1);var Ll=require("@medplum/core"),Xn=m(require("react"),1);function Cr(e){let o=e.value;return o?Xn.default.createElement(Xn.default.Fragment,null,(0,Ll.formatHumanName)(o,e.options)):null}var Jn=require("@mantine/core"),ma=require("@medplum/core");var ca=m(require("react"),1);var Nl=require("@mantine/core"),da=require("@medplum/core");var Hl=m(require("react"),1);function q(e){e.preventDefault(),e.stopPropagation()}function ua(e){if(Rl(e))return!0;if(e instanceof HTMLTableCellElement){let o=e.children;if(o.length===1&&Rl(o[0]))return!0}return!1}function Rl(e){return e instanceof HTMLInputElement&&e.type==="checkbox"}function Te(e){let o=Mo(),{to:t,suffix:r,label:a,onClick:n,children:f,...s}=e,l=du(t);return r&&(l+="/"+r),Hl.default.createElement(Nl.Anchor,{href:l,"aria-label":a,onClick:i=>{q(i),n?n(i):t&&o(l)},...s},f)}function du(e){if(e){if(typeof e=="string")return cu(e);if((0,da.isResource)(e))return mu(e);if((0,da.isReference)(e))return pu(e)}return"#"}function cu(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e}function mu(e){return`/${e.resourceType}/${e.id}`}function pu(e){return`/${e.reference}`}function Le(e){let o=Z(e.value),t=o?(0,ma.getDisplayString)(o):e.alt??"",r=(o&&(0,ma.getImageSrc)(o))??e.src,a=e.radius??"xl",n={...e};return delete n.value,delete n.link,e.link?ca.default.createElement(Te,{to:o},ca.default.createElement(Jn.Avatar,{src:r,alt:t,radius:a,...n})):ca.default.createElement(Jn.Avatar,{src:r,alt:t,radius:a,...n})}var ht=require("@mantine/core"),Oo=require("@medplum/core");var Ue=m(require("react"),1);var pa=require("@mantine/core"),Vl=require("@mantine/notifications"),ql=require("@medplum/core"),le=m(require("react"),1);function gt(e){let{defaultValue:o,toKey:t,toOption:r,loadOptions:a,onChange:n,onCreate:f,creatable:s,...l}=e,i=xu(o),u=(0,le.useRef)(null),[c,d]=(0,le.useState)(),[g,P]=(0,le.useState)(),[v,k]=(0,le.useState)(),[M,A]=(0,le.useState)(),[w,oe]=(0,le.useState)(i.map(r)),[D,V]=(0,le.useState)([]),ge=(0,le.useRef)();ge.current=c;let Pe=(0,le.useRef)();Pe.current=g;let Bo=(0,le.useRef)();Bo.current=v;let ct=(0,le.useRef)();ct.current=M;let Ee=(0,le.useRef)();Ee.current=D;let S=(0,le.useCallback)(()=>{P(void 0);let De=u.current?.value.trim()||"";if(De===ge.current)return;d(De);let Se=new AbortController;k(Se),a(De,Se.signal).then(ro=>{Se.signal.aborted||(V(ro.map(r)),k(void 0),ct.current&&(ro.length>0&&n(ro.slice(0,1)),A(!1)))}).catch(ro=>{Se.signal.aborted||ro.message.includes("aborted")||(0,Vl.showNotification)({color:"red",message:(0,ql.normalizeErrorString)(ro)})})},[a,n,r]),W=(0,le.useCallback)(()=>{Bo.current&&(Bo.current.abort(),k(void 0)),Pe.current!==void 0&&window.clearTimeout(Pe.current);let De=window.setTimeout(()=>S(),100);P(De)},[S]),go=(0,le.useCallback)(De=>{let Se=[],ro=[];for(let yl of De){let Yr=Ee.current?.find(Ki=>Ki.value===yl),dr=Yr?.resource;!dr&&s!==!1&&f&&(dr=f(yl),Yr=r(dr)),dr&&Se.push(dr),Yr&&ro.push(Yr)}n(Se),oe(ro)},[s,n,f,r]),b=(0,le.useCallback)(De=>{De.key==="Enter"&&(!Pe.current&&!Bo.current?(q(De),Ee.current&&Ee.current.length>0&&(V(Ee.current.slice(0,1)),go([Ee.current[0].value]))):A(!0))},[go]),$=(0,le.useCallback)(De=>{let Se=r(f(De));return V([...Ee.current,Se]),Se},[f,V,r]),Ao=(0,le.useCallback)((De,Se)=>!Se,[]);return(0,le.useEffect)(()=>()=>{Bo.current&&Bo.current.abort()},[]),le.default.createElement(pa.MultiSelect,{...l,ref:u,defaultValue:i.map(t),searchable:!0,onKeyDown:b,onSearchChange:W,data:[...w,...D],onFocus:S,onChange:go,onCreate:$,rightSectionWidth:40,rightSection:v?le.default.createElement(pa.Loader,{size:16}):null,filter:Ao,creatable:!0,withinPortal:!0})}function xu(e){return e?Array.isArray(e)?e:[e]:[]}var Iu=(0,ht.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 gu(e){return e.id}function hu(e){return{value:e.id,label:(0,Oo.getDisplayString)(e),resource:e}}function Ql(e){let{classes:o}=Iu(),t=Mo(),r=T(),a=(0,Ue.useCallback)(async(f,s)=>{let l=yu(f),i={signal:s},u=await r.graphql(l,void 0,void 0,i);return vu(u,f)},[r]),n=(0,Ue.useCallback)(f=>{f.length>0&&t(`/${(0,Oo.getReferenceString)(f[0])}`)},[t]);return Ue.default.createElement(gt,{key:`${e.pathname}?${e.searchParams}`,size:"sm",radius:"md",className:o.searchInput,icon:Ue.default.createElement(qn,{size:16}),placeholder:"Search",itemComponent:Cu,toKey:gu,toOption:hu,onChange:n,loadOptions:a,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var Cu=(0,Ue.forwardRef)(({resource:e,...o},t)=>{let r;return e.resourceType==="Patient"?r=e.birthDate:e.resourceType==="ServiceRequest"&&(r=e.subject?.display),Ue.default.createElement("div",{ref:t,...o},Ue.default.createElement(ht.Group,{noWrap:!0},Ue.default.createElement(Le,{value:e}),Ue.default.createElement("div",null,Ue.default.createElement(ht.Text,null,(0,Oo.getDisplayString)(e)),Ue.default.createElement(ht.Text,{size:"xs",color:"dimmed"},r))))});function yu(e){let o=JSON.stringify(e);return(0,Oo.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 yu(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),Su(vu(t),o).slice(0,5)}function vu(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 Su(e,o){return e.sort((t,r)=>ql(r,o)-ql(t,o))}function ql(e,o){let t=0;if(e.identifier)for(let r of e.identifier)t=Math.max(t,Gl(r.value,o));if(e.resourceType==="Patient"&&e.name)for(let r of e.name)t=Math.max(t,Gl((0,Oo.formatHumanName)(r),o));return t}function Gl(e,o){if(!e)return 0;let t=e.toLowerCase().indexOf(o.toLowerCase());return t<0?0:100-t}var bu=(0,X.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 Xn(e){let o=Ft(),{medplum:t,profile:r,navigate:a}=o,n=t.getLogins(),{classes:f,cx:s}=bu(),[l,i]=(0,Q.useState)(!1);return Q.default.createElement(X.Header,{height:60,p:8,style:{zIndex:101}},Q.default.createElement(X.Group,{position:"apart"},Q.default.createElement(X.Group,{spacing:"xs"},Q.default.createElement(X.UnstyledButton,{className:f.logoButton,onClick:e.navbarToggle},e.logo),!e.headerSearchDisabled&&Q.default.createElement(Ul,{pathname:e.pathname,searchParams:e.searchParams})),Q.default.createElement(X.Menu,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:l,onClose:()=>i(!1)},Q.default.createElement(X.Menu.Target,null,Q.default.createElement(X.UnstyledButton,{className:s(f.user,{[f.userActive]:l}),onClick:()=>i(u=>!u)},Q.default.createElement(X.Group,{spacing:7},Q.default.createElement(Re,{value:r,radius:"xl",size:24}),Q.default.createElement(X.Text,{size:"sm",className:f.userName},(0,Cr.formatHumanName)(r?.name?.[0])),Q.default.createElement(bn,{size:12,stroke:1.5})))),Q.default.createElement(X.Menu.Dropdown,null,Q.default.createElement(X.Stack,{align:"center",p:"xl"},Q.default.createElement(Re,{size:"xl",radius:100,value:o.profile}),Q.default.createElement(hr,{value:o.profile?.name?.[0]}),Q.default.createElement(X.Text,{color:"dimmed",size:"xs"},t.getActiveLogin()?.project.display)),n.length>1&&Q.default.createElement(X.Menu.Divider,null),n.map(u=>u.profile.reference!==(0,Cr.getReferenceString)(o.profile)&&Q.default.createElement(X.Menu.Item,{key:u.profile.reference,onClick:()=>{t.setActiveLogin(u).then(()=>window.location.reload()).catch(console.log)}},Q.default.createElement(X.Group,null,Q.default.createElement(X.Avatar,{radius:"xl"}),Q.default.createElement("div",{style:{flex:1}},Q.default.createElement(X.Text,{size:"sm",weight:500},u.profile.display),Q.default.createElement(X.Text,{color:"dimmed",size:"xs"},u.project.display))))),Q.default.createElement(X.Menu.Divider,null),Q.default.createElement(X.Menu.Item,{icon:Q.default.createElement(qn,{size:14,stroke:1.5}),onClick:()=>a("/signin")},"Add another account"),Q.default.createElement(X.Menu.Item,{icon:Q.default.createElement(Rt,{size:14,stroke:1.5}),onClick:()=>a(`/${(0,Cr.getReferenceString)(r)}`)},"Account settings"),Q.default.createElement(X.Menu.Item,{icon:Q.default.createElement(wn,{size:14,stroke:1.5}),onClick:async()=>{await t.signOut(),a("/signin")}},"Sign out"),Q.default.createElement(X.Text,{size:"xs",color:"dimmed",align:"center"},e.version)))))}var Qe=require("@mantine/core");var he=m(require("react"),1);var ao=require("@mantine/core"),$n=require("@mantine/notifications"),pa=require("@medplum/core");var Eo=m(require("react"),1);var Ql=m(require("react"),1);function Jn(e){let o={};for(let t of Array.from(e.elements))t instanceof HTMLInputElement?Pu(o,t):t instanceof HTMLTextAreaElement?o[t.name]=t.value:t instanceof HTMLSelectElement&&Du(o,t);return o}function Pu(e,o){o.disabled||(o.type==="checkbox"||o.type==="radio")&&!o.checked||(e[o.name]=o.value)}function Du(e,o){e[o.name]=o.value}function se(e){return Ql.default.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:o=>{o.preventDefault();let t=Jn(o.target);e.onSubmit&&e.onSubmit(t)}},e.children)}function zl(e){let o=T(),t=o.getUserConfiguration();function r(a){let{menuname:n,bookmarkname:f}=a,s=`${e.pathname}?${e.searchParams.toString()}`,l=(0,pa.deepClone)(t);l.menu?.find(({title:u})=>u===n)?.link?.push({name:f,target:s}),o.updateResource(l).then(u=>{t.menu=u.menu,o.dispatchEvent({type:"change"}),(0,$n.showNotification)({color:"green",message:"Success"}),e.onOk()}).catch(u=>{(0,$n.showNotification)({color:"red",message:(0,pa.normalizeErrorString)(u)})})}return Eo.default.createElement(ao.Modal,{title:"Add Bookmark",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},Eo.default.createElement(se,{onSubmit:r},Eo.default.createElement(ao.Stack,null,Eo.default.createElement(Tu,{config:t}),Eo.default.createElement(ao.TextInput,{label:"Bookmark Name",type:"text",name:"bookmarkname",placeholder:"Bookmark Name",withAsterisk:!0}),Eo.default.createElement(ao.Group,{position:"right"},Eo.default.createElement(ao.Button,{mt:"sm",type:"submit"},"OK")))))}function Tu(e){function o(r){return r?.menu?.map(a=>a.title)}let t=o(e.config);return Eo.default.createElement(ao.NativeSelect,{name:"menuname",defaultValue:t[0],label:"Select Menu Option",placeholder:"Menu",data:t,withAsterisk:!0})}var Ht=m(require("react"),1);var Ia=m(require("react"),1);var xa=m(require("react"),1);function Kn(e){return typeof e.code=="string"?e.code:JSON.stringify(e)}function ku(e){return typeof e.display=="string"?e.display:Kn(e)}function Bu(e){return{value:Kn(e),label:ku(e),resource:e}}function Au(e){return{code:e,display:e}}function Nt(e){let o=T(),{binding:t,creatable:r,clearable:a,...n}=e,f=(0,xa.useCallback)(async(s,l)=>{if(!t)return[];let u=(await o.searchValueSet(t,s,{signal:l})).expansion?.contains,c=[];for(let d of u)d.code&&!c.some(g=>g.code===d.code)&&c.push(d);return c},[o,t]);return xa.default.createElement(It,{...n,creatable:r??!0,clearable:a??!0,toKey:Kn,toOption:Bu,loadOptions:f,onCreate:Au,getCreateLabel:r===!1?void 0:s=>`+ Create ${s}`})}function yr(e){let[o,t]=(0,Ia.useState)(e.defaultValue);function r(a){let n=a[0],f=Fu(n);t(f),e.onChange&&e.onChange(f)}return Ia.default.createElement(Nt,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:Mu(o),onChange:r,creatable:e.creatable,maxSelectedValues:e.maxSelectedValues??1,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable})}function Mu(e){return e?{code:e}:void 0}function Fu(e){return e?.code}function Vt(e){let[o,t]=(0,Ht.useState)(e.defaultValue),r=e.onChange,a=(0,Ht.useCallback)(n=>{t(n),r&&r(n)},[r]);return Ht.default.createElement(yr,{"data-autofocus":e.autoFocus,"data-testid":e.testId,defaultValue:o,onChange:a,name:e.name,placeholder:e.placeholder,binding:"https://medplum.com/fhir/ValueSet/resource-types",creatable:!1,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var Wl=(0,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 jn(e){let{classes:o}=Wl(),t=Mo(),r=Eu(e.pathname,e.searchParams,e.menus),[a,n]=(0,he.useState)(!1);function f(l,i){l.stopPropagation(),l.preventDefault(),t(i),window.innerWidth<768&&e.closeNavbar()}function s(l){l&&t(`/${l}`)}return he.default.createElement(he.default.Fragment,null,he.default.createElement(Qe.Navbar,{width:{sm:250},p:"xs"},he.default.createElement(Qe.ScrollArea,null,!e.resourceTypeSearchDisabled&&he.default.createElement(Qe.Navbar.Section,{mb:"sm"},he.default.createElement(Vt,{key:window.location.pathname,name:"resourceType",placeholder:"Resource Type",onChange:l=>s(l)})),he.default.createElement(Qe.Navbar.Section,{grow:!0},e.menus?.map(l=>he.default.createElement(he.default.Fragment,{key:`menu-${l.title}`},he.default.createElement(Qe.Text,{className:o.menuTitle},l.title),l.links?.map(i=>he.default.createElement(wu,{key:i.href,to:i.href,active:i.href===r?.href,onClick:u=>f(u,i.href)},he.default.createElement(Ou,{to:i.href,icon:i.icon}),he.default.createElement("span",null,i.label))))),e.displayAddBookmark&&he.default.createElement(Qe.Button,{variant:"subtle",size:"xs",mt:"xl",leftIcon:he.default.createElement(Rn,{size:"0.75rem"}),onClick:()=>n(!0)},"Add Bookmark")))),e.pathname&&e.searchParams&&he.default.createElement(zl,{pathname:e.pathname,searchParams:e.searchParams,visible:a,onOk:()=>n(!1),onCancel:()=>n(!1)}))}function wu(e){let{classes:o,cx:t}=Wl();return he.default.createElement(ke,{onClick:e.onClick,to:e.to,className:t(o.link,{[o.linkActive]:e.active})},e.children)}function Ou(e){return e.icon?e.icon:he.default.createElement(Qe.Space,{w:30})}function Eu(e,o,t){if(!e||!o||!t)return;let r,a=0;for(let n of t)if(n.links)for(let f of n.links){let s=Lu(e,o,f.href);s>a&&(a=s,r=f)}return r}function Lu(e,o,t){let r=new URL(t,"https://example.com");if(e!==r.pathname)return 0;let a=["_count","_offset"];for(let[f,s]of r.searchParams.entries())if(!a.includes(f)&&o.get(f)!==s)return 0;let n=1;for(let[f,s]of o.entries())a.includes(f)||r.searchParams.get(f)===s&&n++;return n}function Ru(e){let o=(0,ga.useMantineTheme)(),[t,r]=(0,ze.useState)(localStorage.navbarOpen==="true"),a=T(),n=dr();(0,ze.useEffect)(()=>{function i(){(0,Xl.showNotification)({color:"red",message:"No connection to server",autoClose:!1})}return a.addEventListener("offline",i),()=>a.removeEventListener("offline",i)},[a]);function f(i){localStorage.navbarOpen=i.toString(),r(i)}function s(){f(!1)}function l(){f(!t)}return a.isLoading()?ze.default.createElement(sa,null):ze.default.createElement(ga.AppShell,{styles:{main:{background:o.colorScheme==="dark"?o.colors.dark[8]:o.colors.gray[0]}},padding:0,fixed:!0,header:n&&ze.default.createElement(Xn,{pathname:e.pathname,searchParams:e.searchParams,headerSearchDisabled:e.headerSearchDisabled,logo:e.logo,version:e.version,navbarToggle:l}),navbar:n&&t?ze.default.createElement(jn,{pathname:e.pathname,searchParams:e.searchParams,menus:e.menus,closeNavbar:s,displayAddBookmark:e.displayAddBookmark,resourceTypeSearchDisabled:e.resourceTypeSearchDisabled}):void 0},ze.default.createElement(xt,{key:`${e.pathname}?${e.searchParams?.toString()}`},ze.default.createElement(ze.Suspense,{fallback:ze.default.createElement(sa,null)},e.children)))}var ha=m(require("react"),1);var Jl=require("@mantine/core"),Lo=m(require("react"),1);function io(e){let{contentType:o,url:t,title:r}=e.value??{};return t?Lo.default.createElement("div",{"data-testid":"attachment-display"},o?.startsWith("image/")&&Lo.default.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:t,alt:r}),o?.startsWith("video/")&&Lo.default.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},Lo.default.createElement("source",{type:o,src:t})),o==="application/pdf"&&Lo.default.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},Lo.default.createElement("iframe",{width:"100%",height:"400",src:t+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),Lo.default.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},Lo.default.createElement(Jl.Anchor,{href:t,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer",download:Nu(r)},r||"Download"))):null}function Nu(e){return e?.includes(".")?e:void 0}function _n(e){return ha.default.createElement("div",null,e.values?.map((o,t)=>ha.default.createElement("div",{key:"attatchment-"+t},ha.default.createElement(io,{value:o,maxWidth:e.maxWidth}))))}var Zn=require("@mantine/core");var me=m(require("react"),1);var qt=m(require("react"),1);var $l=require("@medplum/core");function ht(e){let o=T(),t=(0,qt.useRef)(null);function r(f){q(f),t.current?.click()}function a(f){q(f);let s=f.target.files;s&&Array.from(s).forEach(n)}function n(f){if(!f||!f.name)return;e.onUploadStart&&e.onUploadStart();let l=f.name,i=f.type||"application/octet-stream";o.createBinary(f,l,i,e.onUploadProgress).then(u=>{e.onUpload({contentType:u.contentType,url:u.url,title:l})}).catch(u=>{e.onUploadError&&e.onUploadError((0,$l.normalizeOperationOutcome)(u))})}return qt.default.createElement(qt.default.Fragment,null,qt.default.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:t,onChange:f=>a(f)}),e.children({onClick:r}))}function Yn(e){let[o,t]=(0,me.useState)(e.defaultValue??[]),r=(0,me.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return me.default.createElement("table",{style:{width:"100%"}},me.default.createElement("colgroup",null,me.default.createElement("col",{width:"97%"}),me.default.createElement("col",{width:"3%"})),me.default.createElement("tbody",null,o.map((n,f)=>me.default.createElement("tr",{key:`${f}-${o.length}`},me.default.createElement("td",null,me.default.createElement(io,{value:n,maxWidth:200})),me.default.createElement("td",null,me.default.createElement(Zn.ActionIcon,{title:"Remove",size:"sm",onClick:s=>{q(s);let l=o.slice();l.splice(f,1),a(l)}},me.default.createElement(Zo,null))))),me.default.createElement("tr",null,me.default.createElement("td",null),me.default.createElement("td",null,me.default.createElement(ht,{onUpload:n=>{a([...r.current,n])}},n=>me.default.createElement(Zn.ActionIcon,{...n,title:"Add",size:"sm",color:"green"},me.default.createElement(pr,{size:16})))))))}var ef=require("@mantine/core"),Ro=m(require("react"),1);function vr(e){let[o,t]=(0,Ro.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return o?Ro.default.createElement(Ro.default.Fragment,null,Ro.default.createElement(io,{value:o,maxWidth:200}),Ro.default.createElement(ef.Button,{onClick:a=>{q(a),r(void 0)}},"Remove")):Ro.default.createElement(ht,{onUpload:r},a=>Ro.default.createElement(ef.Button,{...a},"Upload..."))}var Sa=require("@medplum/core"),Qt=m(require("react"),1);var Ca=["meta","implicitRules","language","text","contained","extension","modifierExtension"];var Kl=require("@mantine/core"),Gt=m(require("react"),1),Hu=(0,Kl.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 of(e){let{children:o,compact:t}=e,{classes:r,cx:a}=Hu();return Gt.default.createElement("dl",{className:a(r.root,{[r.compact]:t})},o)}function tf(e){return Gt.default.createElement(Gt.default.Fragment,null,Gt.default.createElement("dt",null,e.term),Gt.default.createElement("dd",null,e.children))}var et=require("@mantine/core"),L=require("@medplum/core");var N=m(require("react"),1);var jl=require("@medplum/core"),rf=m(require("react"),1);function Ct(e){return rf.default.createElement(rf.default.Fragment,null,(0,jl.formatCodeableConcept)(e.value))}var _l=require("@medplum/core"),af=m(require("react"),1);function nf(e){return af.default.createElement(af.default.Fragment,null,(0,_l.formatCoding)(e.value))}var ya=m(require("react"),1);var ff=m(require("react"),1);function Sr(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("]")),ff.default.createElement(ff.default.Fragment,null,t.join("").trim())}function lf(e){let o=e.value;return o?ya.default.createElement(ya.default.Fragment,null,o.name,o.name&&": ",o.telecom?.map(t=>ya.default.createElement(Sr,{key:`telecom-${o.name}-${t.value}`,value:t}))):null}var Zl=m(require("react"),1);function sf(e){return Zl.default.createElement("div",null,e.value?.system,": ",e.value?.value)}var Yl=require("@medplum/core"),uf=m(require("react"),1);function df(e){return uf.default.createElement(uf.default.Fragment,null,(0,Yl.formatMoney)(e.value))}var es=require("@medplum/core"),cf=m(require("react"),1);function No(e){return cf.default.createElement(cf.default.Fragment,null,(0,es.formatQuantity)(e.value))}var os=require("@medplum/core"),mf=m(require("react"),1);function br(e){return mf.default.createElement(mf.default.Fragment,null,(0,os.formatRange)(e.value))}var Pr=m(require("react"),1);function ts(e){let o=e.value;return o?Pr.default.createElement(Pr.default.Fragment,null,Pr.default.createElement(No,{value:o.numerator}),"\xA0/\xA0",Pr.default.createElement(No,{value:o.denominator})):null}var rs=require("@medplum/core"),va=m(require("react"),1);function Yo(e){if(!e.value)return null;let o=e.value.display||e.value.reference||(0,rs.stringify)(e.value);return e.link!==!1&&e.value.reference?va.default.createElement(ke,{to:e.value},o):va.default.createElement(va.default.Fragment,null,o)}var yt=m(require("react"),1);function pf(e){let{property:o,values:t}=e,r=o.type[0].code;return e.values?yt.default.createElement(yt.default.Fragment,null,t.map((a,n)=>yt.default.createElement("div",{key:`${n}-${t.length}`},yt.default.createElement(Fe,{arrayElement:!0,property:o,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link})))):yt.default.createElement(yt.default.Fragment,null)}function Fe(e){let{property:o,propertyType:t,value:r}=e;if(o?.path?.endsWith(".id"))return N.default.createElement(et.Box,{component:"div",sx:{display:"flex",gap:3,alignItems:"center"}},r,N.default.createElement(et.CopyButton,{value:r,timeout:2e3},({copied:n,copy:f})=>N.default.createElement(et.Tooltip,{label:n?"Copied":"Copy",withArrow:!0,position:"right"},N.default.createElement(et.ActionIcon,{color:n?"teal":"gray",onClick:f},n?N.default.createElement(mr,{size:"1rem"}):N.default.createElement(Dn,{size:"1rem"})))));if(o?.max&&o.max>1&&!e.arrayElement)return t===L.PropertyType.Attachment?N.default.createElement(_n,{values:r,maxWidth:e.maxWidth}):N.default.createElement(pf,{property:o,values:r,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(t){case L.PropertyType.boolean:return N.default.createElement(N.default.Fragment,null,r===void 0?"":(!!r).toString());case L.PropertyType.SystemString:case L.PropertyType.string:return N.default.createElement("div",{style:{whiteSpace:"pre-wrap"}},r);case L.PropertyType.code:case L.PropertyType.date:case L.PropertyType.decimal:case L.PropertyType.integer:case L.PropertyType.positiveInt:case L.PropertyType.unsignedInt:case L.PropertyType.uri:case L.PropertyType.url:return N.default.createElement(N.default.Fragment,null,r);case L.PropertyType.canonical:return N.default.createElement(Yo,{value:{reference:r},link:e.link});case L.PropertyType.dateTime:case L.PropertyType.instant:return N.default.createElement(N.default.Fragment,null,(0,L.formatDateTime)(r));case L.PropertyType.markdown:return N.default.createElement("pre",null,r);case L.PropertyType.Address:return N.default.createElement(un,{value:r});case L.PropertyType.Annotation:return N.default.createElement(N.default.Fragment,null,r?.text);case L.PropertyType.Attachment:return N.default.createElement(io,{value:r,maxWidth:e.maxWidth});case L.PropertyType.CodeableConcept:return N.default.createElement(Ct,{value:r});case L.PropertyType.Coding:return N.default.createElement(nf,{value:r});case L.PropertyType.ContactDetail:return N.default.createElement(lf,{value:r});case L.PropertyType.ContactPoint:return N.default.createElement(Sr,{value:r});case L.PropertyType.HumanName:return N.default.createElement(hr,{value:r});case L.PropertyType.Identifier:return N.default.createElement(sf,{value:r});case L.PropertyType.Money:return N.default.createElement(df,{value:r});case L.PropertyType.Period:return N.default.createElement(N.default.Fragment,null,(0,L.formatPeriod)(r));case L.PropertyType.Quantity:case L.PropertyType.Duration:return N.default.createElement(No,{value:r});case L.PropertyType.Range:return N.default.createElement(br,{value:r});case L.PropertyType.Ratio:return N.default.createElement(ts,{value:r});case L.PropertyType.Reference:return N.default.createElement(Yo,{value:r,link:e.link});case L.PropertyType.Timing:return N.default.createElement(N.default.Fragment,null,(0,L.formatTiming)(r));case L.PropertyType.Dosage:case L.PropertyType.UsageContext:return N.default.createElement(Ut,{value:{type:t,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues});default:if(!o)throw Error(`Displaying property of type ${e.propertyType} requires element schema`);return N.default.createElement(Ut,{value:{type:o.type[0].code,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}var as=require("@medplum/core");function je(e,o){let t=(0,as.getTypedPropertyValue)(e,o);return t?Array.isArray(t)?[t.map(r=>r.value),t[0].type]:[t.value,t.type]:[void 0,"undefined"]}function Ut(e){let o=e.value,t=o.value;if(!t)return null;let r=o.type,a=(0,Sa.tryGetDataType)(r);return a?typeof t=="object"&&"name"in t&&Object.keys(t).length===1&&typeof t.name=="string"?Qt.default.createElement("div",null,t.name):Qt.default.createElement(of,{compact:e.compact},Object.entries(a.elements).map(n=>{let[f,s]=n;if(Ca.includes(f))return null;let[l,i]=je(o,f);return e.ignoreMissingValues&&(!l||Array.isArray(l)&&l.length===0)?null:Qt.default.createElement(tf,{key:f,term:(0,Sa.getPropertyDisplayName)(f)},Qt.default.createElement(Fe,{property:s,propertyType:i,value:l,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))})):Qt.default.createElement("div",null,r,"\xA0not implemented")}var Ps=require("@mantine/core"),Lr=require("@medplum/core"),qo=m(require("react"),1);var ba=require("@mantine/core"),Dr=m(require("react"),1);function Tr(e){return Dr.default.createElement(ba.Group,{noWrap:!0},Dr.default.createElement("div",null,e.children),Dr.default.createElement("div",null,Dr.default.createElement(ba.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk},(()=>null)())))}var fs=require("@mantine/core"),ls=m(require("react"),1);function we(e,o){return e?.issue?.filter(t=>ns(t.expression?.[0],o))?.map(t=>t.details?.text)?.join(`
|
|
65
|
-
`)}function kr(e,o){return e?.issue?.filter(t=>ns(t.expression?.[0],o))}function ns(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 We(e){return ls.default.createElement(fs.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk,error:we(e.outcome,e.htmlFor)},e.children)}var ss=require("@medplum/core");function Br(e,o,t,r,a){let n=r.type;if(n.length>1)for(let f of n){let s=o.replace("[x]",(0,ss.capitalize)(f.code));s in e&&delete e[s]}return e[t]=a,e}var fo=require("@mantine/core"),R=require("@medplum/core"),G=m(require("react"),1);var Pa=m(require("react"),1);function xf(e){let[o,t]=(0,Pa.useState)(e.defaultValue);function r(a){let n=qu(a);t(n),e.onChange&&e.onChange(n)}return Pa.default.createElement(Nt,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&Vu(o),maxSelectedValues:1,onChange:r})}function Vu(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function qu(e){if(e.length!==0)return{coding:e.map(o=>({system:o.system,code:o.code,display:o.display}))}}var Da=m(require("react"),1);function Ar(e){let[o,t]=(0,Da.useState)(e.defaultValue);function r(a){let n=a[0],f=n&&Uu(n);t(f),e.onChange&&e.onChange(f)}return Da.default.createElement(Nt,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&Gu(o),maxSelectedValues:1,onChange:r})}function Gu(e){return{system:e.system,code:e.code,display:e.display}}function Uu(e){return{system:e.system,code:e.code,display:e.display}}var Ta=require("@mantine/core"),ot=m(require("react"),1);var vt=require("@mantine/core"),Ho=m(require("react"),1);function Mr(e){let[o,t]=(0,Ho.useState)(e.defaultValue),r=(0,Ho.useRef)();r.current=o;function a(l){l&&Object.keys(l).length===0&&(l=void 0),t(l),e.onChange&&e.onChange(l)}function n(l){let i={...r.current,system:l};l||delete i.system,a(i)}function f(l){let i={...r.current,use:l};l||delete i.use,a(i)}function s(l){let i={...r.current,value:l};l||delete i.value,a(i)}return Ho.default.createElement(vt.Group,{spacing:"xs",grow:!0,noWrap:!0},Ho.default.createElement(vt.NativeSelect,{"data-testid":"system",defaultValue:o?.system,onChange:l=>n(l.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),Ho.default.createElement(vt.NativeSelect,{"data-testid":"use",defaultValue:o?.use,onChange:l=>f(l.currentTarget.value),data:["","home","work","temp","old","mobile"]}),Ho.default.createElement(vt.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:l=>s(l.currentTarget.value)}))}function If(e){let[o,t]=(0,ot.useState)(e.defaultValue),r=(0,ot.useRef)();r.current=o;function a(s){t(s),e.onChange&&e.onChange(s)}function n(s){let l={...r.current,name:s};s||delete l.name,a(l)}function f(s){let l={...r.current,telecom:s&&[s]};s||delete l.telecom,a(l)}return ot.default.createElement(Ta.Group,{spacing:"xs",grow:!0,noWrap:!0},ot.default.createElement(Ta.TextInput,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:o?.name,onChange:s=>n(s.currentTarget.value)}),ot.default.createElement(Mr,{name:e.name+"-telecom",defaultValue:o?.telecom?.[0],onChange:f}))}var is=require("@mantine/core"),us=m(require("react"),1);var gf=require("@medplum/core");function hf(e){if(!e)return"";let o=new Date(e);return(0,gf.isValidDate)(o)?o.toLocaleDateString("sv")+"T"+o.toLocaleTimeString("sv"):""}function Cf(e){if(!e)return"";let o=new Date(e);return(0,gf.isValidDate)(o)?o.toISOString():""}function no(e){return us.default.createElement(is.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:Qu(),defaultValue:hf(e.defaultValue),autoFocus:e.autoFocus,error:we(e.outcome,e.name),onChange:o=>{if(e.onChange){let t=o.currentTarget.value;e.onChange(Cf(t))}}})}function Qu(){return"datetime-local"}var ds=require("@mantine/core"),cs=require("@medplum/core"),ms=m(require("react"),1);function ps(e){return ms.default.createElement(ds.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:(0,cs.stringify)(e.defaultValue),deserialize:JSON.parse,onChange:o=>{e.onChange&&e.onChange(JSON.parse(o))}})}var Vo=require("@mantine/core"),uo=m(require("react"),1);function yf(e){let[o,t]=(0,uo.useState)(e.defaultValue),r=(0,uo.useRef)();r.current=o;function a(u){t(u),e.onChange&&e.onChange(u)}function n(u){a({...r.current,use:u||void 0})}function f(u){a({...r.current,prefix:u?u.split(" "):void 0})}function s(u){a({...r.current,given:u?u.split(" "):void 0})}function l(u){a({...r.current,family:u||void 0})}function i(u){a({...r.current,suffix:u?u.split(" "):void 0})}return uo.default.createElement(Vo.Group,{spacing:"xs",grow:!0,noWrap:!0},uo.default.createElement(Vo.NativeSelect,{defaultValue:o?.use,name:e.name+"-use","data-testid":"use",onChange:u=>n(u.currentTarget.value),data:["","temp","old","usual","official","nickname","anonymous","maiden"]}),uo.default.createElement(Vo.TextInput,{placeholder:"Prefix",name:e.name+"-prefix",defaultValue:o?.prefix?.join(" "),onChange:u=>f(u.currentTarget.value)}),uo.default.createElement(Vo.TextInput,{placeholder:"Given",name:e.name+"-given",defaultValue:o?.given?.join(" "),onChange:u=>s(u.currentTarget.value)}),uo.default.createElement(Vo.TextInput,{name:e.name+"-family",placeholder:"Family",defaultValue:o?.family,onChange:u=>l(u.currentTarget.value)}),uo.default.createElement(Vo.TextInput,{placeholder:"Suffix",name:e.name+"-suffix",defaultValue:o?.suffix?.join(" "),onChange:u=>i(u.currentTarget.value)}))}var Fr=require("@mantine/core"),zt=m(require("react"),1);function vf(e){let[o,t]=(0,zt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return zt.default.createElement(Fr.Group,{spacing:"xs",grow:!0,noWrap:!0},zt.default.createElement(Fr.TextInput,{placeholder:"System",defaultValue:o?.system,onChange:a=>r({...o,system:a.currentTarget.value})}),zt.default.createElement(Fr.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:a=>r({...o,value:a.currentTarget.value})}))}var ka=require("@mantine/core");var ho=m(require("react"),1),zu=["USD","EUR","CAD","GBP","AUD"];function Sf(e){let{onChange:o}=e,[t,r]=(0,ho.useState)(e.defaultValue),a=(0,ho.useCallback)(l=>{r(l),o&&o(l)},[o]),n=(0,ho.useCallback)(l=>{a({...t,currency:l.currentTarget.value})},[t,a]),f=(0,ho.useCallback)(l=>{a({...t,value:l.currentTarget.valueAsNumber})},[t,a]),s=ho.default.createElement(ka.NativeSelect,{defaultValue:t?.currency,data:zu,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:n});return ho.default.createElement(ka.TextInput,{type:"number",label:e.label,placeholder:e.placeholder??"Value",defaultValue:t?.value?.toString()??"USD",icon:ho.default.createElement(Tn,{size:14}),rightSection:s,rightSectionWidth:92,onChange:f})}var xs=require("@mantine/core"),Wt=m(require("react"),1);function Is(e){let[o,t]=(0,Wt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Wt.default.createElement(xs.Group,{spacing:"xs",grow:!0,noWrap:!0},Wt.default.createElement(no,{name:e.name+".start",placeholder:"Start",defaultValue:o?.start,onChange:a=>r({...o,start:a})}),Wt.default.createElement(no,{name:e.name+".end",placeholder:"End",defaultValue:o?.end,onChange:a=>r({...o,end:a})}))}var bt=require("@mantine/core"),St=m(require("react"),1);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(bt.Group,{spacing:"xs",grow:!0,noWrap:!0},St.default.createElement(bt.NativeSelect,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:o?.comparator,data:["","<","<=",">=",">"],onChange:a=>r({...o,comparator:a.currentTarget.value})}),St.default.createElement(bt.TextInput,{id:e.name,name:e.name,required:e.required,"data-autofocus":e.autoFocus,"data-testid":e.name+"-value",type:"number",placeholder:"Value",defaultValue:o?.value,autoFocus:e.autoFocus,step:"any",onWheel:a=>{e.disableWheel&&a.currentTarget.blur()},onChange:a=>{r({...o,value:Wu(a.currentTarget.value)})}}),St.default.createElement(bt.TextInput,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:o?.unit,onChange:a=>r({...o,unit:a.currentTarget.value})}))}function Wu(e){if(e)return parseFloat(e)}var gs=require("@mantine/core"),Xt=m(require("react"),1);function Jt(e){let[o,t]=(0,Xt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Xt.default.createElement(gs.Group,{spacing:"xs",grow:!0,noWrap:!0},Xt.default.createElement(_e,{name:e.name+"-low",defaultValue:o?.low,onChange:a=>r({...o,low:a})}),Xt.default.createElement(_e,{name:e.name+"-high",defaultValue:o?.high,onChange:a=>r({...o,high:a})}))}var hs=require("@mantine/core"),$t=m(require("react"),1);function Cs(e){let[o,t]=(0,$t.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return $t.default.createElement(hs.Group,{spacing:"xs",grow:!0,noWrap:!0},$t.default.createElement(_e,{name:e.name+"-numerator",defaultValue:o?.numerator,onChange:a=>r({...o,numerator:a})}),$t.default.createElement(_e,{name:e.name+"-denominator",defaultValue:o?.denominator,onChange:a=>r({...o,denominator:a})}))}var Ba=require("@mantine/core"),ys=require("@medplum/core"),tt=m(require("react"),1);var wr=require("@mantine/core"),Or=require("@medplum/core");var He=m(require("react"),1);var Xu={Observation:"code",User:"email:contains"},Ju=["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 $u(e){return{value:(0,Or.getReferenceString)(e),label:(0,Or.getDisplayString)(e),resource:e}}function Er(e){let o=T(),t=e.resourceType,[r,a]=(0,He.useState)(),n=Z(e.defaultValue,a),f=e.onChange,s=(0,He.useCallback)(async(i,u)=>{let c=ju(t),d=new URLSearchParams({[c]:i,_count:"10"});return await o.searchResources(t,d,{signal:u})},[o,t]),l=(0,He.useCallback)(i=>{f&&f(i[0])},[f]);return e.defaultValue&&!r&&!n?null:He.default.createElement(It,{name:e.name,required:e.required,itemComponent:Ku,defaultValue:n,placeholder:e.placeholder,maxSelectedValues:1,toKey:Or.getReferenceString,toOption:$u,loadOptions:s,onChange:l,clearable:!0})}var Ku=(0,He.forwardRef)(({label:e,resource:o,...t},r)=>He.default.createElement("div",{ref:r,...t},He.default.createElement(wr.Group,{noWrap:!0},He.default.createElement(Re,{value:o}),He.default.createElement("div",null,He.default.createElement(wr.Text,null,e),He.default.createElement(wr.Text,{size:"xs",color:"dimmed"},o.birthDate)))));function ju(e){return Xu[e]??(Ju.includes(e)?"name":"_id")}function Pt(e){let o=_u(e.targetTypes),t=Zu(e.defaultValue,o),[r,a]=(0,tt.useState)(e.defaultValue),[n,f]=(0,tt.useState)(t);function s(l){a(l),e.onChange&&e.onChange(l)}return tt.default.createElement(Ba.Group,{spacing:"xs",grow:!0,noWrap:!0},o&&o.length>1&&tt.default.createElement(Ba.NativeSelect,{"data-autofocus":e.autoFocus,"data-testid":"reference-input-resource-type-select",defaultValue:n,autoFocus:e.autoFocus,onChange:l=>f(l.currentTarget.value),data:o}),!o&&tt.default.createElement(Vt,{autoFocus:e.autoFocus,testId:"reference-input-resource-type-input",defaultValue:n,onChange:f,name:e.name+"-resourceType",placeholder:"Resource Type"}),tt.default.createElement(Er,{resourceType:n,name:e.name+"-id",required:e.required,placeholder:e.placeholder,defaultValue:r,onChange:l=>{s(l?(0,ys.createReference)(l):void 0)}}))}function _u(e){if(!(!e||e.length===0||e.length===1&&e[0]==="Resource"))return e}function Zu(e,o){let t=e?.reference?.split("/")[0];if(t)return t;if(o&&o.length>0)return o[0]}var bf=require("@mantine/core");var Ce=m(require("react"),1);function Pf(e){let[o,t]=(0,Ce.useState)(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),r=(0,Ce.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return Ce.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},Ce.default.createElement("colgroup",null,Ce.default.createElement("col",{width:"97%"}),Ce.default.createElement("col",{width:"3%"})),Ce.default.createElement("tbody",null,o.map((n,f)=>Ce.default.createElement("tr",{key:`${f}-${o.length}`},Ce.default.createElement("td",null,Ce.default.createElement(Co,{arrayElement:!0,property:e.property,name:e.name+"."+f,defaultValue:n,onChange:s=>{let l=[...r.current];l[f]=s,a(l)}})),Ce.default.createElement("td",{style:{textAlign:"right"}},Ce.default.createElement(bf.ActionIcon,{title:"Remove",size:"sm",onClick:s=>{q(s);let l=[...r.current];l.splice(f,1),a(l)}},Ce.default.createElement(Zo,null))))),Ce.default.createElement("tr",null,Ce.default.createElement("td",null),Ce.default.createElement("td",{style:{textAlign:"right"}},Ce.default.createElement(bf.ActionIcon,{title:"Add",size:"sm",color:"green",onClick:n=>{q(n);let f=[...r.current];f.push(void 0),a(f)}},Ce.default.createElement(Ot,null))))))}var ye=require("@mantine/core"),Ss=require("@medplum/core"),K=m(require("react"),1);var Yu=["sun","mon","tue","wed","thu","fri","sat"];function Df(e){let[o,t]=(0,K.useState)(e.defaultValue),[r,a]=(0,K.useState)(!1),n=(0,K.useRef)();return n.current=o,K.default.createElement(K.default.Fragment,null,K.default.createElement(ye.Group,{spacing:"xs",grow:!0,noWrap:!0},K.default.createElement("span",null,(0,Ss.formatTiming)(n.current)||"No repeat"),K.default.createElement(ye.Button,{onClick:()=>a(!0)},"Edit")),K.default.createElement(ed,{visible:r,defaultValue:n.current,onOk:f=>{e.onChange&&e.onChange(f),t(f),a(!1)},onCancel:()=>a(!1)}))}var vs={repeat:{period:1,periodUnit:"d"}};function ed(e){let[o,t]=(0,K.useState)(e.defaultValue||vs),r=(0,K.useRef)();r.current=o;function a(i){t({...r.current,event:[i]})}function n(i){t({...r.current,repeat:i})}function f(i){n({...r.current?.repeat,period:i})}function s(i){n({...r.current?.repeat,periodUnit:i})}function l(i){n({...r.current?.repeat,dayOfWeek:i})}return K.default.createElement(ye.Modal,{title:"Timing",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>e.onCancel()},K.default.createElement(ye.Stack,null,K.default.createElement(We,{title:"Starts on",htmlFor:"timing-dialog-start"},K.default.createElement(no,{name:"timing-dialog-start",onChange:i=>a(i)})),K.default.createElement(ye.Switch,{label:"Repeat",checked:!!o.repeat,onChange:i=>n(i.currentTarget.checked?vs.repeat:void 0)}),o.repeat&&K.default.createElement(K.default.Fragment,null,K.default.createElement(We,{title:"Repeat every",htmlFor:"timing-dialog-period"},K.default.createElement(ye.Group,{spacing:"xs",grow:!0,noWrap:!0},K.default.createElement(ye.TextInput,{type:"number",step:1,id:"timing-dialog-period",name:"timing-dialog-period",defaultValue:o.repeat.period||1,onChange:i=>f(parseInt(i.currentTarget.value,10)||1)}),K.default.createElement(ye.NativeSelect,{id:"timing-dialog-periodUnit",name:"timing-dialog-periodUnit",defaultValue:o.repeat.periodUnit,onChange:i=>s(i.currentTarget.value),data:[{label:"second",value:"s"},{label:"minute",value:"min"},{label:"hour",value:"h"},{label:"day",value:"d"},{label:"week",value:"wk"},{label:"month",value:"mo"},{label:"year",value:"a"}]}))),o.repeat.periodUnit==="wk"&&K.default.createElement(We,{title:"Repeat on"},K.default.createElement(ye.Chip.Group,{multiple:!0,onChange:l},K.default.createElement(ye.Group,{position:"apart",mt:"md",spacing:"xs"},Yu.map(i=>K.default.createElement(ye.Chip,{key:i,value:i,size:"xs",radius:"xl"},i.charAt(0).toUpperCase())))))),K.default.createElement(ye.Group,{position:"right"},K.default.createElement(ye.Button,{onClick:()=>e.onOk(o)},"OK"))))}function Co(e){let o=e.property,t=e.defaultPropertyType??o.type[0].code,r=e.name,a=e.defaultValue;if(o.max>1&&!e.arrayElement)return t===R.PropertyType.Attachment?G.default.createElement(Yn,{name:r,defaultValue:a,onChange:e.onChange}):G.default.createElement(Pf,{property:o,name:r,defaultValue:a,onChange:e.onChange});let n=o.type;return n.length>1?G.default.createElement(bs,{elementDefinitionTypes:n,...e}):G.default.createElement(Tf,{elementDefinitionType:n[0],...e})}function bs(e){let o=e.elementDefinitionTypes,t;e.defaultPropertyType&&(t=o.find(n=>n.code===e.defaultPropertyType)),t||(t=o[0]);let[r,a]=(0,G.useState)(t);return G.default.createElement(fo.Group,{spacing:"xs",grow:!0,noWrap:!0},G.default.createElement(fo.NativeSelect,{style:{width:"200px"},defaultValue:r.code,onChange:n=>{a(o.find(f=>f.code===n.currentTarget.value))},data:o.map(n=>({value:n.code,label:n.code}))}),G.default.createElement(Tf,{...e,elementDefinitionType:r,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",(0,R.capitalize)(r.code)))}}))}function Tf(e){let o=e.property,t=e.elementDefinitionType.code,r=e.name,a=e.defaultValue,n=o.min!==void 0&&o.min>0;switch(t){case 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(fo.TextInput,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)},error:we(e.outcome,r)});case R.PropertyType.date:return G.default.createElement(fo.TextInput,{type:"date",id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)},error:we(e.outcome,r)});case R.PropertyType.dateTime:case R.PropertyType.instant:return G.default.createElement(no,{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(fo.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(yr,{binding:o.binding?.valueSet,name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.boolean:return G.default.createElement(fo.Checkbox,{id:r,name:r,"data-testid":r,defaultChecked:!!a,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.checked)}});case R.PropertyType.markdown:return G.default.createElement(fo.Textarea,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)}});case R.PropertyType.Address:return G.default.createElement(dn,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Annotation:return G.default.createElement(cn,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Attachment:return G.default.createElement(vr,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.CodeableConcept:return G.default.createElement(xf,{binding:o.binding?.valueSet,name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Coding:return G.default.createElement(Ar,{binding:o.binding?.valueSet,name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.ContactDetail:return G.default.createElement(If,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.ContactPoint:return G.default.createElement(Mr,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Extension:return G.default.createElement(ps,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.HumanName:return G.default.createElement(yf,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Identifier:return G.default.createElement(vf,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Money:return G.default.createElement(Sf,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Period:return G.default.createElement(Is,{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(Jt,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Ratio:return G.default.createElement(Cs,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Reference:return G.default.createElement(Pt,{name:r,defaultValue:a,targetTypes:od(o),onChange:e.onChange});case R.PropertyType.Timing:return G.default.createElement(Df,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Dosage:case R.PropertyType.UsageContext:return G.default.createElement(Kt,{typeName:t,defaultValue:a,onChange:e.onChange,outcome:e.outcome});default:return G.default.createElement(Kt,{typeName:o.type[0].code,defaultValue:a,onChange:e.onChange,outcome:e.outcome})}}function od(e){return e?.type?.[0]?.targetProfile?.map(o=>o.split("/").pop())}function Kt(e){let[o,t]=(0,qo.useState)(e.defaultValue??{});function r(s){t(s),e.onChange&&e.onChange(s)}let a=e.typeName,n=(0,Lr.tryGetDataType)(a);if(!n)return qo.default.createElement("div",null,a,"\xA0not implemented");let f={type:a,value:o};return qo.default.createElement(Ps.Stack,null,Object.entries(n.elements).map(([s,l])=>{if(s==="id"||Ca.includes(s)||!l.type)return null;let[i,u]=je(f,s),c=l.min!==void 0&&l.min>0;return l.type.length===1&&l.type[0].code==="boolean"?qo.default.createElement(Tr,{key:s,title:(0,Lr.getPropertyDisplayName)(s),description:l.description,htmlFor:s},qo.default.createElement(Co,{property:l,name:s,defaultValue:i,defaultPropertyType:u,outcome:e.outcome,onChange:(d,g)=>{r(Br(o,s,g??s,l,d))}})):qo.default.createElement(We,{key:s,title:(0,Lr.getPropertyDisplayName)(s),description:l.description,withAsterisk:c,htmlFor:s,outcome:e.outcome},qo.default.createElement(Co,{property:l,name:s,defaultValue:i,defaultPropertyType:u,onChange:(d,g)=>{r(Br(o,s,g??s,l,d))}}))}))}var Go=require("@mantine/core"),ue=m(require("react"),1);function Ds(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function Aa(){let e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}var td=(0,Go.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 kf(e){let{classes:o}=td(),{onChangeMonth:t,onClick:r}=e,[a,n]=(0,ue.useState)(Aa);function f(l){n(i=>{let u=new Date(i.getTime());return u.setMonth(i.getMonth()+l),t(u),u})}let s=(0,ue.useMemo)(()=>rd(a,e.slots),[a,e.slots]);return ue.default.createElement("div",null,ue.default.createElement(Go.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},ue.default.createElement("p",{style:{flex:1}},Ds(a)),ue.default.createElement(Go.Group,{position:"right",spacing:"xs"},ue.default.createElement(Go.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>f(-1)},"<"),ue.default.createElement(Go.Button,{variant:"outline","aria-label":"Next month",onClick:()=>f(1)},">"))),ue.default.createElement("table",{className:o.table},ue.default.createElement("thead",null,ue.default.createElement("tr",null,ue.default.createElement("th",null,"SUN"),ue.default.createElement("th",null,"MON"),ue.default.createElement("th",null,"TUE"),ue.default.createElement("th",null,"WED"),ue.default.createElement("th",null,"THU"),ue.default.createElement("th",null,"FRI"),ue.default.createElement("th",null,"SAT"))),ue.default.createElement("tbody",null,s.map((l,i)=>ue.default.createElement("tr",{key:"week-"+i},l.map((u,c)=>ue.default.createElement("td",{key:"day-"+c},u&&ue.default.createElement(Go.Button,{disabled:!u.available,onClick:()=>r(u.date)},u.date.getDate()))))))))}function rd(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:ad(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 ad(e,o){for(let t of o){let r=new Date(t.start);if(r.getFullYear()===e.getFullYear()&&r.getMonth()===e.getMonth()&&r.getDate()===e.getDate())return!0}return!1}var Ma=require("@mantine/core"),Ts=m(require("react"),1),nd=(0,Ma.createStyles)(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function Uo(e){let{children:o,...t}=e,{classes:r}=nd();return Ts.default.createElement(Ma.Container,{className:r.root,...t},o)}var Gs=m(require("react"),1);var de=require("@mantine/core"),Tt=require("@mantine/notifications"),Wo=require("@medplum/core");var C=m(require("react"),1);var Y=require("@mantine/core"),lo=require("@medplum/core");var I=m(require("react"),1);var jt=require("@mantine/core"),Bf=m(require("react"),1),fd=(0,jt.createStyles)(e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));function Af({value:e}){let{classes:o}=fd();return e?Bf.default.createElement(jt.Stack,{justify:"flex-start",spacing:"xs"},e.map(t=>t.text&&Bf.default.createElement(jt.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 Bs=require("@mantine/core"),Fa=m(require("react"),1);var ks=require("@mantine/core"),_t=require("@medplum/core");var Rr=m(require("react"),1);function co(e){let{value:o,link:t,...r}=e,[a,n]=(0,Rr.useState)(),f=Z(o,n),s;if(a&&!(0,_t.isOk)(a))s=`[${(0,_t.normalizeErrorString)(a)}]`;else if(f)s=(0,_t.getDisplayString)(f);else return null;return t?Rr.default.createElement(ke,{to:o,...r},s):Rr.default.createElement(ks.Text,{component:"span",...r},s)}function Qo(e){return Fa.default.createElement(Bs.Group,{spacing:"xs"},Fa.default.createElement(Re,{size:24,radius:12,value:e.value,link:e.link}),Fa.default.createElement(co,{value:e.value,link:e.link}))}var As=require("@mantine/core"),Ms=m(require("react"),1),ld={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 Nr(e){return Ms.default.createElement(As.Badge,{color:ld[e.status]},e.status)}var Fs=(0,Y.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}}));wa.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};function wa(e){let o=T(),t=Z(e.value),[r,a]=(0,I.useState)();if((0,I.useEffect)(()=>{t?.specimen&&Promise.allSettled(t.specimen.map(f=>o.readReference(f))).then(f=>f.filter(s=>s.status==="fulfilled").map(s=>s.value)).then(a).catch(console.error)},[o,t]),!t)return null;let n=r?.flatMap(f=>f.note||[])||[];if(t.presentedForm&&t.presentedForm.length>0){let f=t.presentedForm[0];f.contentType?.startsWith("text/plain")&&f.data&&n.push({text:window.atob(f.data)})}return I.default.createElement(Y.Stack,null,I.default.createElement(Y.Title,null,"Diagnostic Report"),I.default.createElement(sd,{value:t}),r&&!e.hideSpecimenInfo&&id(r),t.result&&I.default.createElement(ws,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&I.default.createElement(Af,{value:n}))}function sd({value:e}){return I.default.createElement(Y.Group,{mt:"md",spacing:30},e.subject&&I.default.createElement("div",null,I.default.createElement(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),I.default.createElement(Y.Text,null,I.default.createElement(Qo,{value:e.subject,link:!0}))),e.resultsInterpreter?.map(o=>I.default.createElement("div",{key:o.reference},I.default.createElement(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),I.default.createElement(Y.Text,null,I.default.createElement(Qo,{value:o,link:!0})))),e.performer?.map(o=>I.default.createElement("div",{key:o.reference},I.default.createElement(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Performer"),I.default.createElement(Y.Text,null,I.default.createElement(Qo,{value:o,link:!0})))),e.issued&&I.default.createElement("div",null,I.default.createElement(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),I.default.createElement(Y.Text,null,(0,lo.formatDateTime)(e.issued))),e.status&&I.default.createElement("div",null,I.default.createElement(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),I.default.createElement(Y.Text,null,(0,lo.capitalize)(e.status))))}function id(e){return I.default.createElement(Y.Stack,{spacing:"xs"},I.default.createElement(Y.Title,{order:2,size:"h6"},"Specimens"),I.default.createElement(Y.List,{type:"ordered"},e?.map(o=>I.default.createElement(Y.List.Item,{ml:"sm",key:`specimen-${o.id}`},I.default.createElement(Y.Group,{spacing:20},I.default.createElement(Y.Group,{spacing:5},I.default.createElement(Y.Text,{fw:500},"Collected:")," ",(0,lo.formatDateTime)(o.collection?.collectedDateTime)),I.default.createElement(Y.Group,{spacing:5},I.default.createElement(Y.Text,{fw:500},"Received:")," ",(0,lo.formatDateTime)(o.receivedTime)))))))}function ws(e){let{classes:o}=Fs();return I.default.createElement("table",{className:o.table},I.default.createElement("thead",null,I.default.createElement("tr",null,I.default.createElement("th",null,"Test"),I.default.createElement("th",null,"Value"),I.default.createElement("th",null,"Reference Range"),I.default.createElement("th",null,"Interpretation"),I.default.createElement("th",null,"Category"),I.default.createElement("th",null,"Performer"),I.default.createElement("th",null,"Status"))),I.default.createElement("tbody",null,I.default.createElement(Os,{value:e.value,ancestorIds:e.ancestorIds,hideObservationNotes:e.hideObservationNotes})))}function Os(e){return I.default.createElement(I.default.Fragment,null,e.value?.map(o=>I.default.createElement(ud,{key:`obs-${(0,lo.isReference)(o)?o.reference:o.id}`,value:o,ancestorIds:e.ancestorIds,hideObservationNotes:e.hideObservationNotes})))}function ud(e){let{classes:o,cx:t}=Fs(),r=Z(e.value);if(!r||e.ancestorIds?.includes(r.id))return null;let a=!e.hideObservationNotes&&r.note,n=md(r);return I.default.createElement(I.default.Fragment,null,I.default.createElement("tr",{className:t({[o.criticalRow]:n})},I.default.createElement("td",{rowSpan:a?2:1},I.default.createElement(ke,{to:r},I.default.createElement(Ct,{value:r.code}))),I.default.createElement("td",null,I.default.createElement(dd,{value:r})),I.default.createElement("td",null,I.default.createElement(cd,{value:r.referenceRange})),I.default.createElement("td",null,r.interpretation&&r.interpretation.length>0&&I.default.createElement(Ct,{value:r.interpretation[0]})),I.default.createElement("td",null,r.category&&r.category.length>0&&I.default.createElement(I.default.Fragment,null,r.category.map(f=>I.default.createElement("div",{key:`category-${(0,lo.formatCodeableConcept)(f)}`},I.default.createElement(Ct,{value:f}))))),I.default.createElement("td",null,r.performer?.map(f=>I.default.createElement(Yo,{key:f.reference,value:f}))),I.default.createElement("td",null,r.status&&I.default.createElement(Nr,{status:r.status}))),r.hasMember&&I.default.createElement(Os,{value:r.hasMember,ancestorIds:e.ancestorIds?[...e.ancestorIds,r.id]:[r.id],hideObservationNotes:e.hideObservationNotes}),a&&I.default.createElement("tr",null,I.default.createElement("td",{colSpan:6},I.default.createElement(Af,{value:r.note}))))}function dd(e){let o=e.value;return I.default.createElement(I.default.Fragment,null,(0,lo.formatObservationValue)(o))}function cd(e){let o=e.value&&e.value.length>0&&e.value[0];return o?o.text?I.default.createElement(I.default.Fragment,null,o.text):I.default.createElement(br,{value:o}):null}function md(e){let o=e.interpretation?.[0]?.coding?.[0]?.code;return o==="AA"||o==="LL"||o==="HH"||o==="A"}var Zt=require("@mantine/core"),Es=m(require("react"),1),pd=(0,Zt.createStyles)((e,{width:o,fill:t})=>({paper:{maxWidth:o,margin:`${e.spacing.xl} auto`,padding:t?0:e.spacing.md,"@media (max-width: 800px)":{padding:t?0:8},"& img":{width:"100%",maxWidth:"100%"},"& video":{width:"100%",maxWidth:"100%"}}})),xd={shadow:"xs",radius:"md",withBorder:!0};function Dt(e){let{className:o,children:t,width:r,fill:a,unstyled:n,...f}=(0,Zt.useComponentDefaultProps)("Panel",xd,e),{classes:s,cx:l}=pd({width:r,fill:a},{name:"Panel",unstyled:n});return Es.default.createElement(Zt.Paper,{className:l(s.paper,o),...f},t)}var Rs=require("@mantine/core"),yo=require("@medplum/core"),pe=m(require("react"),1);var Id=(0,Rs.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 Ns(e){let{classes:o}=Id(),t=T(),[r,a]=(0,pe.useState)(!1);if((0,pe.useEffect)(()=>{t.requestSchema(e.original.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.original.resourceType]),!r)return null;let n=(0,yo.getDataType)(e.original.resourceType);return pe.default.createElement("table",{className:o.root},pe.default.createElement("colgroup",null,pe.default.createElement("col",{style:{width:"30%"}}),pe.default.createElement("col",{style:{width:"35%"}}),pe.default.createElement("col",{style:{width:"35%"}})),pe.default.createElement("thead",null,pe.default.createElement("tr",null,pe.default.createElement("th",null,"Property"),pe.default.createElement("th",null,"Before"),pe.default.createElement("th",null,"After"))),pe.default.createElement("tbody",null,Object.entries(n.elements).map(([f,s])=>{if(f==="id"||f==="meta")return null;let[l,i]=je((0,yo.toTypedValue)(e.original),f),[u,c]=je((0,yo.toTypedValue)(e.revised),f);return Ls(l)&&Ls(u)||(0,yo.stringify)(l)===(0,yo.stringify)(u)?null:pe.default.createElement("tr",{key:f},pe.default.createElement("td",null,(0,yo.getPropertyDisplayName)(f)),pe.default.createElement("td",{className:o.removed},pe.default.createElement(Fe,{property:s,propertyType:i,value:l,ignoreMissingValues:!0})),pe.default.createElement("td",{className:o.added},pe.default.createElement(Fe,{property:s,propertyType:c,value:u,ignoreMissingValues:!0})))})))}function Ls(e){return!e||Array.isArray(e)&&e.length===0||typeof e=="object"&&Object.keys(e).length===0}var Yt=m(require("react"),1);function Oa(e){let o=T(),t=Z(e.value),[r,a]=(0,Yt.useState)(!1);return(0,Yt.useEffect)(()=>{t&&o.requestSchema(t.resourceType).then(()=>a(!0)).catch(console.log)},[o,t]),!r||!t?null:Yt.default.createElement(Ut,{value:{type:t.resourceType,value:e.forceUseInput?e.value:t},ignoreMissingValues:e.ignoreMissingValues})}var mo=require("@mantine/core"),Ea=require("@medplum/core");var ve=m(require("react"),1);function Mf(e){return ve.default.createElement(Uo,null,e.children)}function zo(e){let{resource:o,profile:t,padding:r,popupMenuItems:a,...n}=e,f=t??o.meta?.author,s=e.dateTime??o.meta?.lastUpdated;return ve.default.createElement(Dt,{"data-testid":"timeline-item",fill:!0,...n},ve.default.createElement(mo.Group,{position:"apart",spacing:8,mx:"xs",my:"sm"},ve.default.createElement(Re,{value:f,link:!0,size:"md"}),ve.default.createElement("div",{style:{flex:1}},ve.default.createElement(mo.Text,{size:"sm"},ve.default.createElement(co,{color:"dark",weight:500,value:f,link:!0})),ve.default.createElement(mo.Text,{size:"xs"},ve.default.createElement(ke,{color:"dimmed",to:e.resource},(0,Ea.formatDateTime)(s)),ve.default.createElement(mo.Text,{component:"span",color:"dimmed",mx:8},"\xB7"),ve.default.createElement(ke,{color:"dimmed",to:e.resource},e.resource.resourceType))),a&&ve.default.createElement(mo.Menu,{position:"bottom-end",shadow:"md",width:200},ve.default.createElement(mo.Menu.Target,null,ve.default.createElement(mo.ActionIcon,{radius:"xl","aria-label":`Actions for ${(0,Ea.getReferenceString)(e.resource)}`},ve.default.createElement(kn,null))),a)),ve.default.createElement(xt,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 Ff(e,o){e.sort((t,r)=>{let a=Hs(t,o),n=Hs(r,o);return a>n?1:a<n?-1:Vs(t,o)-Vs(r,o)})}function Hs(e,o){if(!qs(e,o)){let t=e.priority;if(typeof t=="string")return{stat:4,asap:3,urgent:2}[t]??0}return 0}function Vs(e,o){if(!qs(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 qs(e,o){return!!o&&e.resourceType===o.resourceType&&e.id===o.id}var gd=(0,de.createStyles)(e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}}));function Xo(e){let o=T(),t=Mo(),r=o.getProfile(),a=(0,C.useRef)(null),n=Z(e.value),[f,s]=(0,C.useState)(),[l,i]=(0,C.useState)([]),u=e.loadTimelineResources,c=(0,C.useRef)(l);c.current=l;let d=(0,C.useCallback)(S=>{Ff(S,n),S.reverse(),i(S)},[n]),g=(0,C.useCallback)(S=>{let W=[];for(let go of S){if(go.status!=="fulfilled")continue;let b=go.value;if(b.type==="history"&&s(b),b.entry)for(let $ of b.entry)W.push($.resource)}d(W)},[d]),P=(0,C.useCallback)(S=>d([...c.current,S]),[d]),v=(0,C.useCallback)(()=>{let S,W;"resourceType"in e.value?(S=e.value.resourceType,W=e.value.id):[S,W]=e.value.reference?.split("/"),u(o,S,W).then(g).catch(console.log)},[o,e.value,u,g]);(0,C.useEffect)(()=>v(),[v]);function k(S){!n||!e.createCommunication||o.createResource(e.createCommunication(n,r,S)).then(W=>P(W)).catch(console.log)}function M(S){!n||!e.createMedia||o.createResource(e.createMedia(n,r,S)).then(W=>P(W)).then(()=>(0,Tt.updateNotification)({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:C.default.createElement(mr,{size:16}),autoClose:2e3})).catch(W=>(0,Tt.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,Wo.normalizeErrorString)(W),icon:C.default.createElement(ra,{size:16}),autoClose:2e3}))}function A(S,W){return o.updateResource({...S,priority:W})}function w(S){A(S,"stat").then(v).catch(console.log)}function oe(S){A(S,"routine").then(v).catch(console.log)}function D(S){t(`/${S.resourceType}/${S.id}`)}function V(S){t(`/${S.resourceType}/${S.id}/edit`)}function ge(S){t(`/${S.resourceType}/${S.id}/delete`)}function De(S){t(`/${S.resourceType}/${S.id}/_history/${S.meta?.versionId}`)}function Bo(){(0,Tt.showNotification)({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})}function dt(S){(0,Tt.updateNotification)({id:"upload-notification",loading:!0,title:"Uploading...",message:Pd(S),autoClose:!1,withCloseButton:!1})}function Le(S){(0,Tt.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,Wo.normalizeErrorString)(S),icon:C.default.createElement(ra,{size:16}),autoClose:2e3})}return n?C.default.createElement(Mf,null,e.createCommunication&&C.default.createElement(Dt,null,C.default.createElement(se,{testid:"timeline-form",onSubmit:S=>{k(S.text);let W=a.current;W&&(W.value="",W.focus())}},C.default.createElement(de.Group,{spacing:"xs",noWrap:!0,style:{width:"100%"}},C.default.createElement(Re,{value:r}),C.default.createElement(de.TextInput,{name:"text",ref:a,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),C.default.createElement(de.ActionIcon,{type:"submit",radius:"xl",color:"blue",variant:"filled"},C.default.createElement(On,{size:16})),C.default.createElement(ht,{onUpload:M,onUploadStart:Bo,onUploadProgress:dt,onUploadError:Le},S=>C.default.createElement(de.ActionIcon,{...S,radius:"xl",color:"blue",variant:"filled"},C.default.createElement(pr,{size:16})))))),l.map(S=>{if(!S)return null;let W=`${S.resourceType}/${S.id}/${S.meta?.versionId}`;if(S.resourceType===n.resourceType&&S.id===n.id)return C.default.createElement(hd,{key:W,history:f,resource:S,onDetails:De});switch(S.resourceType){case"AuditEvent":return C.default.createElement(Sd,{key:W,resource:S,onDetails:D});case"Communication":return C.default.createElement(yd,{key:W,resource:S,onPin:S.priority!=="stat"?w:void 0,onUnpin:S.priority==="stat"?oe:void 0,onDetails:D,onEdit:V,onDelete:ge});case"DiagnosticReport":return C.default.createElement(bd,{key:W,resource:S,onDetails:D,onEdit:V,onDelete:ge});case"Media":return C.default.createElement(vd,{key:W,resource:S,onDetails:D,onEdit:V,onDelete:ge});default:return C.default.createElement(zo,{key:W,resource:S,padding:!0},C.default.createElement(Oa,{value:S,ignoreMissingValues:!0}))}})):C.default.createElement(de.Center,{style:{width:"100%",height:"100%"}},C.default.createElement(de.Loader,null))}function er(e){return C.default.createElement(de.Menu.Dropdown,null,C.default.createElement(de.Menu.Label,null,"Resource"),e.onPin&&C.default.createElement(de.Menu.Item,{icon:C.default.createElement(En,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${(0,Wo.getReferenceString)(e.resource)}`},"Pin"),e.onUnpin&&C.default.createElement(de.Menu.Item,{icon:C.default.createElement(Ln,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${(0,Wo.getReferenceString)(e.resource)}`},"Unpin"),e.onDetails&&C.default.createElement(de.Menu.Item,{icon:C.default.createElement(Fn,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${(0,Wo.getReferenceString)(e.resource)}`},"Details"),e.onEdit&&C.default.createElement(de.Menu.Item,{icon:C.default.createElement(Bn,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${(0,Wo.getReferenceString)(e.resource)}`},"Edit"),e.onDelete&&C.default.createElement(C.default.Fragment,null,C.default.createElement(de.Menu.Divider,null),C.default.createElement(de.Menu.Label,null,"Danger zone"),C.default.createElement(de.Menu.Item,{color:"red",icon:C.default.createElement(gr,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${(0,Wo.getReferenceString)(e.resource)}`},"Delete")))}function hd(e){let o=Cd(e.history,e.resource);return o?C.default.createElement(zo,{resource:e.resource,padding:!0,popupMenuItems:C.default.createElement(er,{...e})},C.default.createElement(Ns,{original:o,revised:e.resource})):C.default.createElement(zo,{resource:e.resource,padding:!0,popupMenuItems:C.default.createElement(er,{...e})},C.default.createElement("h3",null,"Created"),C.default.createElement(Oa,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0}))}function Cd(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 yd(e){let{classes:o}=gd(),r=!e.resource.priority||e.resource.priority==="routine"?void 0:o.pinnedComment;return C.default.createElement(zo,{resource:e.resource,profile:e.resource.sender,dateTime:e.resource.sent,padding:!0,className:r,popupMenuItems:C.default.createElement(er,{...e})},C.default.createElement("p",null,e.resource.payload?.[0]?.contentString))}function vd(e){let o=e.resource.content?.contentType,t=o&&!o.startsWith("image/")&&!o.startsWith("video/")&&o!=="application/pdf";return C.default.createElement(zo,{resource:e.resource,padding:!!t,popupMenuItems:C.default.createElement(er,{...e})},C.default.createElement(io,{value:e.resource.content}))}function Sd(e){return C.default.createElement(zo,{resource:e.resource,padding:!0,popupMenuItems:C.default.createElement(er,{...e})},C.default.createElement(de.ScrollArea,null,C.default.createElement("pre",null,e.resource.outcomeDesc)))}function bd(e){return C.default.createElement(zo,{resource:e.resource,padding:!0,popupMenuItems:C.default.createElement(er,{...e})},C.default.createElement(wa,{value:e.resource}))}function Pd(e){if(e.lengthComputable){let o=100*e.loaded/e.total;return`Uploaded: ${wf(e.loaded)} / ${wf(e.total)} ${o.toFixed(2)}%`}return`Uploaded: ${wf(e.loaded)}`}function wf(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 Dd(e){return Gs.default.createElement(Xo,{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 Of=m(require("react"),1);function Hr(e){let{children:o,...t}=e;return Of.default.createElement(Uo,null,Of.default.createElement(Dt,{...t},o))}var Vr=require("@medplum/core"),Us=m(require("react"),1);function Td(e){return Us.default.createElement(Xo,{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,Vr.createReference)(o),subject:o.subject,sender:(0,Vr.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",encounter:(0,Vr.createReference)(o),subject:o.subject,operator:(0,Vr.createReference)(t),issued:new Date().toISOString(),content:r})})}var lr=require("@mantine/core"),ei=require("@medplum/core");var j=m(require("react"),1);var Qs=require("@medplum/core"),zs=m(require("react"),1);function Ws(e){let o;try{o=(0,Qs.evalFhirPath)(e.path,e.resource)}catch(t){return console.warn("FhirPathDisplay:",t),null}if(o.length>1)throw new Error(`Component "path" for "FhirPathDisplay" must resolve to a single element. Received ${o.length} elements [${JSON.stringify(o,null,2)}]`);return zs.default.createElement(Fe,{value:o[0]||"",propertyType:e.propertyType})}var U=require("@mantine/core"),fr=require("@medplum/core");var h=m(require("react"),1);var rt=require("@mantine/core"),kt=m(require("react"),1);function Js(e){return kt.default.createElement(rt.Modal,{title:"Export",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},kt.default.createElement(rt.Box,{display:"flex",sx:{justifyContent:"space-between"}},e.exportCsv&&kt.default.createElement(Xs,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&kt.default.createElement(Xs,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})),kt.default.createElement(rt.Text,{sx:{marginTop:"10px",marginLeft:"2px"}},"Limited to 1000 records"))}function Xs(e){return kt.default.createElement(rt.Button,{onClick:()=>{e.exportLogic(),e.onCancel()}},`Export as ${e.text}`)}var vo=require("@mantine/core"),rr=require("@medplum/core"),Ne=m(require("react"),1);var B=require("@medplum/core"),qr=m(require("react"),1);var kd={string:[B.Operator.EQUALS,B.Operator.NOT,B.Operator.CONTAINS,B.Operator.EXACT],fulltext:[B.Operator.EQUALS,B.Operator.NOT,B.Operator.CONTAINS,B.Operator.EXACT],token:[B.Operator.EQUALS,B.Operator.NOT],reference:[B.Operator.EQUALS,B.Operator.NOT],numeric:[B.Operator.EQUALS,B.Operator.NOT_EQUALS,B.Operator.GREATER_THAN,B.Operator.LESS_THAN,B.Operator.GREATER_THAN_OR_EQUALS,B.Operator.LESS_THAN_OR_EQUALS],quantity:[B.Operator.EQUALS,B.Operator.NOT_EQUALS,B.Operator.GREATER_THAN,B.Operator.LESS_THAN,B.Operator.GREATER_THAN_OR_EQUALS,B.Operator.LESS_THAN_OR_EQUALS],date:[B.Operator.EQUALS,B.Operator.NOT_EQUALS,B.Operator.GREATER_THAN,B.Operator.LESS_THAN,B.Operator.GREATER_THAN_OR_EQUALS,B.Operator.LESS_THAN_OR_EQUALS,B.Operator.STARTS_AFTER,B.Operator.ENDS_BEFORE,B.Operator.APPROXIMATELY],datetime:[B.Operator.EQUALS,B.Operator.NOT_EQUALS,B.Operator.GREATER_THAN,B.Operator.LESS_THAN,B.Operator.GREATER_THAN_OR_EQUALS,B.Operator.LESS_THAN_OR_EQUALS,B.Operator.STARTS_AFTER,B.Operator.ENDS_BEFORE,B.Operator.APPROXIMATELY]},Bd={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 or(e,o){return{...e,filters:o,offset:0,name:void 0}}function Ad(e){return or(e,[])}function Gr(e,o){return or(e,(e.filters??[]).filter(t=>t.code!==o))}function Bt(e,o,t,r,a){a&&(e=Gr(e,o));let n=[];return e.filters&&n.push(...e.filters),n.push({code:o,operator:t,value:r??""}),or(e,n)}function Md(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 Lf(e,o){return Hf(e,o,-1)}function Rf(e,o){return Hf(e,o,0)}function Nf(e,o){return Hf(e,o,1)}function Hf(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),La(e,o,r,a)}function Vf(e,o){return Uf(e,o,-1)}function qf(e,o){return Uf(e,o,0)}function Gf(e,o){return Uf(e,o,1)}function Uf(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),La(e,o,r,a)}function Qf(e,o){let t=new Date;return t.setMonth(0),t.setDate(1),t.setHours(0,0,0,0),La(e,o,t,new Date)}function La(e,o,t,r){return e=Gr(e,o),e=$s(e,o,B.Operator.GREATER_THAN_OR_EQUALS,t),e=$s(e,o,B.Operator.LESS_THAN_OR_EQUALS,r),e}function $s(e,o,t,r){return Bt(e,o,t,r.toISOString())}function Ra(e,o,t=!0){return Bt(e,o,B.Operator.MISSING,t.toString())}function Ks(e,o){return e.offset===o?e:{...e,offset:o,name:void 0}}function zf(e,o){let t=e.count??B.DEFAULT_SEARCH_COUNT,r=(o-1)*t;return Ks(e,r)}function Na(e,o,t){return o===Wf(e)&&t!==void 0&&t===Xf(e)?e:{...e,sortRules:[{code:o,descending:!!t}],name:void 0}}function Fd(e,o){let t=!1;return Wf(e)===o&&(t=!Xf(e)),Na(e,o,t)}function Wf(e){let o=e.sortRules;if(!o||o.length===0)return;let t=o[0].code;return t.startsWith("-")?t.substr(1):t}function Xf(e){let o=e.sortRules;return!o||o.length===0?!1:!!o[0].descending}function Jf(e){return kd[e.type]}function tr(e){return Bd[e]??""}function Ze(e){let o=e;return o.includes(".")&&(o=o.split(".").pop()),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.toLowerCase()==="id"?"ID":o.split(/\s/).map(B.capitalize).join(" "))}function $f(e,o){let t=o.name;return t==="id"?e.id:t==="meta.versionId"?e.meta?.versionId:t==="_lastUpdated"?(0,B.formatDateTime)(e.meta?.lastUpdated):o.elementDefinition&&`${e.resourceType}.${o.name}`===o.elementDefinition.path?wd(e,o.elementDefinition):o.searchParams&&o.searchParams.length===1&&o.name===o.searchParams[0].code?Od(e,o.searchParams[0]):null}function wd(e,o){let t=o.path?.split(".")?.pop()?.replaceAll("[x]","")??"",[r,a]=je({type:e.resourceType,value:e},t);return r?qr.default.createElement(Fe,{property:o,propertyType:a,value:r,maxWidth:200,ignoreMissingValues:!0,link:!1}):null}function Od(e,o){let t=(0,B.evalFhirPathTyped)(o.expression,[{type:e.resourceType,value:e}]);return!t||t.length===0?null:qr.default.createElement(qr.default.Fragment,null,t.map((r,a)=>qr.default.createElement(Fe,{key:`${a}-${t.length}`,propertyType:r.type,value:r.value,maxWidth:200,ignoreMissingValues:!0,link:!1})))}function Kf(e){let o=(0,Ne.useRef)(!1),[t,r]=(0,Ne.useState)({search:JSON.parse((0,rr.stringify)(e.search))}),[a,n]=(0,Ne.useState)(!1);(0,Ne.useEffect)(()=>{r({search:e.search})},[e.search]);let f=(0,Ne.useMemo)(()=>{if(!e.visible)return[];let l=e.search.resourceType,i=(0,rr.getDataType)(l),u=(0,rr.getSearchParameters)(l);return Ed(i,u).sort((c,d)=>c.localeCompare(d)).map(c=>({value:c,label:Ze(c)}))},[e.visible,e.search.resourceType]);if(!e.visible)return null;function s(l){r({search:{...t.search,fields:l}})}return Ne.default.createElement(vo.Modal,{title:"Fields",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>{e.onCancel()},size:"auto",withOverlay:!0,closeOnClickOutside:!1,overlayProps:{onMouseDownCapture:()=>{o.current=a},onClick:()=>{o.current||e.onCancel(),o.current=!1},children:Ne.default.createElement("div",{"data-testid":"overlay-child"})}},Ne.default.createElement(vo.Stack,null,Ne.default.createElement(vo.MultiSelect,{withinPortal:!0,style:{width:550},placeholder:"Select fields to display",data:f,value:t.search.fields??[],onChange:s,onDropdownOpen:()=>n(!0),onDropdownClose:()=>n(!1),maxDropdownHeight:"250px",dropdownPosition:"bottom",clearButtonProps:{"aria-label":"Clear selection"},clearable:!0,searchable:!0}),Ne.default.createElement(vo.Group,{position:"right"},Ne.default.createElement(vo.Button,{onClick:()=>e.onOk(t.search)},"OK"))))}function Ed(e,o){let t=[],r=new Set,a=new Set;for(let n of Object.keys(e.elements))t.push(n),r.add(n.toLowerCase()),a.add(Ze(n));if(o)for(let n of Object.keys(o)){let f=Ze(n);!r.has(n)&&!a.has(f)&&(t.push(n),r.add(n),a.add(f))}return t}var Ye=require("@mantine/core"),Ur=require("@medplum/core"),O=m(require("react"),1);var po=require("@medplum/core"),ar=m(require("react"),1);function Ha(e){let{resourceType:o,filter:t}=e,r=po.globalSchema.types[o].searchParams?.[t.code];if(r){if(r.type==="reference"&&(t.operator===po.Operator.EQUALS||t.operator===po.Operator.NOT_EQUALS))return ar.default.createElement(co,{value:{reference:t.value}});let a=(0,po.getSearchParameterDetails)(o,r);if(t.code==="_lastUpdated"||a.type===po.SearchParameterType.DATETIME)return ar.default.createElement(ar.default.Fragment,null,(0,po.formatDateTime)(t.value))}return ar.default.createElement(ar.default.Fragment,null,t.value)}var nr=require("@mantine/core"),Jo=require("@medplum/core"),at=m(require("react"),1);function Va(e){let o=(0,Jo.getSearchParameterDetails)(e.resourceType,e.searchParam),t="filter-value";switch(o.type){case Jo.SearchParameterType.REFERENCE:return at.default.createElement(Pt,{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 Jo.SearchParameterType.BOOLEAN:return at.default.createElement(nr.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 Jo.SearchParameterType.DATE:return at.default.createElement(nr.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 Jo.SearchParameterType.DATETIME:return at.default.createElement(no,{name:t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:e.onChange});case Jo.SearchParameterType.NUMBER:return at.default.createElement(nr.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 Jo.SearchParameterType.QUANTITY:return at.default.createElement(_e,{name:t,defaultValue:Ld(e.defaultValue),autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(`${r.value}`):e.onChange("")}});default:return at.default.createElement(nr.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 Ld(e){if(e){let[o,t,r]=e.split("|");if(o)return{value:parseFloat(o),system:t,unit:r}}}function jf(e){let[o,t]=(0,O.useState)(JSON.parse((0,Ur.stringify)(e.search))),[r,a]=(0,O.useState)(-1),n=(0,O.useRef)(o);n.current=o,(0,O.useEffect)(()=>{t(JSON.parse((0,Ur.stringify)(e.search)))},[e.search]);function f(u){t(Bt(n.current,u.code,u.operator,u.value))}if(!e.visible)return null;let s=e.search.resourceType,l=(0,Ur.getSearchParameters)(s)??{},i=o.filters||[];return O.default.createElement(Ye.Modal,{title:"Filters",closeButtonProps:{"aria-label":"Close"},size:900,opened:e.visible,onClose:e.onCancel},O.default.createElement("div",null,O.default.createElement("table",null,O.default.createElement("colgroup",null,O.default.createElement("col",{style:{width:200}}),O.default.createElement("col",{style:{width:200}}),O.default.createElement("col",{style:{width:380}}),O.default.createElement("col",{style:{width:120}})),O.default.createElement("thead",null,O.default.createElement("tr",null,O.default.createElement("th",null,"Field"),O.default.createElement("th",null,"Operation"),O.default.createElement("th",null,"Value"),O.default.createElement("th",null,"Actions"))),O.default.createElement("tbody",null,i.map((u,c)=>c===r?O.default.createElement(js,{key:`filter-${u.code}-${u.operator}-${u.value}-input`,resourceType:s,searchParams:l,defaultValue:u,okText:"Save",onOk:d=>{let g=[...i];g[c]=d,t(or(n.current,g)),a(-1)},onCancel:()=>a(-1)}):O.default.createElement(Rd,{key:`filter-${u.code}-${u.operator}-${u.value}-display`,resourceType:s,searchParams:l,filter:u,onEdit:()=>a(c),onDelete:()=>t(Ef(n.current,c))})),O.default.createElement(js,{resourceType:s,searchParams:l,okText:"Add",onOk:f})))),O.default.createElement(Ye.Group,{position:"right",mt:"xl"},O.default.createElement(Ye.Button,{onClick:()=>e.onOk(n.current)},"OK")))}function Rd(e){let{filter:o}=e;return O.default.createElement("tr",null,O.default.createElement("td",null,Ze(o.code)),O.default.createElement("td",null,tr(o.operator)),O.default.createElement("td",null,O.default.createElement(Ha,{resourceType:e.resourceType,filter:o})),O.default.createElement("td",null,O.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),O.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function js(e){let[o,t]=(0,O.useState)(e.defaultValue??{}),r=(0,O.useRef)(o);r.current=o;function a(i){t({...r.current,code:i})}function n(i){t({...r.current,operator:i})}function f(i){t({...r.current,value:i})}let s=e.searchParams[o.code],l=s&&Jf(s);return O.default.createElement("tr",null,O.default.createElement("td",null,O.default.createElement(Ye.NativeSelect,{"data-testid":"filter-field",defaultValue:r.current.code,onChange:i=>a(i.currentTarget.value),data:["",...Object.keys(e.searchParams).map(i=>({value:i,label:Ze(i)}))]})),O.default.createElement("td",null,l&&O.default.createElement(Ye.NativeSelect,{"data-testid":"filter-operation",defaultValue:o.operator,onChange:i=>n(i.currentTarget.value),data:["",...l.map(i=>({value:i,label:tr(i)}))]})),O.default.createElement("td",null,s&&o.operator&&O.default.createElement(Va,{resourceType:e.resourceType,searchParam:s,defaultValue:o.value,onChange:f})),O.default.createElement("td",null,o.code&&o.operator&&O.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:()=>{e.onOk(r.current),t({})}},e.okText),e.onCancel&&O.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}var nt=require("@mantine/core"),So=m(require("react"),1);function _s(e){let[o,t]=(0,So.useState)(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function r(){e.onOk({...e.filter,value:o})}return So.default.createElement(nt.Modal,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},So.default.createElement(se,{onSubmit:r},So.default.createElement(nt.Grid,null,So.default.createElement(nt.Grid.Col,{span:10},So.default.createElement(Va,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:o,autoFocus:!0,onChange:t})),So.default.createElement(nt.Grid.Col,{span:2},So.default.createElement(nt.Button,{onClick:r,fullWidth:!0},"OK")))))}var F=require("@mantine/core"),Be=require("@medplum/core");var p=m(require("react"),1);function Zs(e){if(!e.searchParams)return null;function o(n,f){a(Na(e.search,n.code,f))}function t(n){a(Gr(e.search,n.code))}function r(n,f){e.onPrompt(n,{code:n.code,operator:f,value:""})}function a(n){e.onChange(n)}return e.searchParams.length===1?p.default.createElement(Nd,{search:e.search,searchParam:e.searchParams[0],onSort:o,onPrompt:r,onChange:a,onClear:t}):p.default.createElement(F.Menu.Dropdown,null,e.searchParams.map(n=>p.default.createElement(F.Menu.Item,{key:n.code},Ze(n.code))))}function Nd(e){switch(e.searchParam.type){case"date":return p.default.createElement(Hd,{...e});case"number":case"quantity":return p.default.createElement(Vd,{...e});case"reference":return p.default.createElement(qd,{...e});case"string":case"token":case"uri":return p.default.createElement(Gd,{...e});default:return p.default.createElement(p.default.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function Hd(e){let{searchParam:o}=e,t=o.code;return p.default.createElement(F.Menu.Dropdown,null,p.default.createElement(F.Menu.Item,{icon:p.default.createElement(xr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Oldest to Newest"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Ir,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Newest to Oldest"),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Lt,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.EQUALS)},"Equals..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Et,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.NOT_EQUALS)},"Does not equal..."),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(na,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.ENDS_BEFORE)},"Before..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(aa,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.STARTS_AFTER)},"After..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Cn,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.EQUALS)},"Between..."),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(wo,{size:14}),onClick:()=>e.onChange(Nf(e.search,t))},"Tomorrow"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(wo,{size:14}),onClick:()=>e.onChange(Rf(e.search,t))},"Today"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(wo,{size:14}),onClick:()=>e.onChange(Lf(e.search,t))},"Yesterday"),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(wo,{size:14}),onClick:()=>e.onChange(Gf(e.search,t))},"Next Month"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(wo,{size:14}),onClick:()=>e.onChange(qf(e.search,t))},"This Month"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(wo,{size:14}),onClick:()=>e.onChange(Vf(e.search,t))},"Last Month"),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(wo,{size:14}),onClick:()=>e.onChange(Qf(e.search,t))},"Year to date"),p.default.createElement(qa,{...e}))}function Vd(e){let{searchParam:o}=e;return p.default.createElement(F.Menu.Dropdown,null,p.default.createElement(F.Menu.Item,{icon:p.default.createElement(xr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Smallest to Largest"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Ir,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Largest to Smallest"),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Lt,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.EQUALS)},"Equals..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Et,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.NOT_EQUALS)},"Does not equal..."),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(aa,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.GREATER_THAN)},"Greater than..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Rt,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(na,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.LESS_THAN)},"Less than..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Rt,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),p.default.createElement(qa,{...e}))}function qd(e){let{searchParam:o}=e;return p.default.createElement(F.Menu.Dropdown,null,p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Lt,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.EQUALS)},"Equals..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Et,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.NOT)},"Does not equal..."),p.default.createElement(qa,{...e}))}function Gd(e){let{searchParam:o}=e;return p.default.createElement(F.Menu.Dropdown,null,p.default.createElement(F.Menu.Item,{icon:p.default.createElement(xr,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort A to Z"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Ir,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Z to A"),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Lt,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.EQUALS)},"Equals..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Et,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.NOT)},"Does not equal..."),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(vn,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.CONTAINS)},"Contains..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(yn,{size:14}),onClick:()=>e.onPrompt(o,Be.Operator.EQUALS)},"Does not contain..."),p.default.createElement(qa,{...e}))}function qa(e){let{searchParam:o}=e,t=o.code;return p.default.createElement(p.default.Fragment,null,p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(gn,{size:14}),onClick:()=>e.onChange(Ra(e.search,t))},"Missing"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(In,{size:14}),onClick:()=>e.onChange(Ra(e.search,t,!1))},"Not missing"),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Un,{size:14}),onClick:()=>e.onClear(o)},"Clear filters"))}var ft=require("@medplum/core");function _f(e){let o=e.resourceType,t=[];for(let r of e.fields||["id","_lastUpdated"])t.push(Ud(o,r));return t}function Ud(e,o){if(o==="_lastUpdated")return{name:"_lastUpdated",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_lastUpdated",name:"_lastUpdated",type:"date",expression:"Resource.meta.lastUpdated"}]};if(o==="meta.versionId")return{name:"meta.versionId",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_versionId",name:"_versionId",type:"token",expression:"Resource.meta.versionId"}]};let t=(0,ft.getElementDefinition)(e,o),r=(0,ft.getSearchParameter)(e,o.toLowerCase());if(t&&r)return{name:o,elementDefinition:t,searchParams:[r]};if(t){let a=(0,ft.getSearchParameters)(e),n;if(a){let f=new RegExp(`${e}\\.${o.replaceAll("[x]","")}([^\\w-]|$)`);n=Object.values(a).filter(s=>!!s.expression&&f.test(s?.expression)),n.length===0&&(n=void 0)}return{name:o,elementDefinition:t,searchParams:n}}if(r){let a=(0,ft.getSearchParameterDetails)(e,r);return{name:o,elementDefinition:a.elementDefinitions?.[0],searchParams:[r]}}return{name:o}}var Ga=class extends Event{constructor(t){super("change");this.definition=t}},Ua=class extends Event{constructor(t){super("load");this.response=t}},lt=class extends Event{constructor(t,r){super("click");this.resource=t,this.browserEvent=r}},Qd=(0,U.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 Ys(e){let{classes:o}=Qd(),t=T(),[r,a]=(0,h.useState)(!1),[n,f]=(0,h.useState)(),{search:s,onLoad:l}=e,[i,u]=(0,h.useState)({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,exportDialogVisible:!1,filterDialogVisible:!1}),c=(0,h.useRef)(i);c.current=i;let d=s.total??"accurate",g=(0,h.useCallback)(b=>{f(void 0),t.search(s.resourceType,(0,fr.formatSearchQuery)({...s,total:d,fields:void 0}),b).then($=>{u({...c.current,searchResponse:$}),l&&l(new Ua($))}).catch($=>{u({...c.current,searchResponse:void 0}),f($)})},[t,s,d,l]),P=(0,h.useCallback)(()=>{u({...c.current,searchResponse:void 0}),g({cache:"reload"})},[g]);(0,h.useEffect)(()=>{g()},[g]);function v(b,$){b.stopPropagation();let Te=b.target.checked,be={...c.current.selected};Te?be[$]=!0:delete be[$],u({...c.current,selected:be})}function k(b){b.stopPropagation();let Ao=b.target.checked,Te={},be=c.current.searchResponse;Ao&&be?.entry&&be.entry.forEach(ro=>{ro.resource?.id&&(Te[ro.resource.id]=!0)}),u({...c.current,selected:Te})}function M(){let b=c.current;if(!b.searchResponse?.entry||b.searchResponse.entry.length===0)return!1;for(let $ of b.searchResponse.entry)if($.resource?.id&&!b.selected[$.resource.id])return!1;return!0}function A(b){e.onChange&&e.onChange(new Ga(b))}function w(b,$){if(ia(b.target)||b.button===2)return;q(b);let Ao=b.button===1||b.ctrlKey||b.metaKey;!Ao&&e.onClick&&e.onClick(new lt($,b)),Ao&&e.onAuxClick&&e.onAuxClick(new lt($,b))}function oe(){return!!(e.onExport??e.onExportCsv??e.onExportTransactionBundle)}if((0,h.useEffect)(()=>{a(!1),t.requestSchema(e.search.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.search.resourceType]),!r)return h.default.createElement(U.Center,{style:{width:"100%",height:"100%"}},h.default.createElement(U.Loader,null));let D=e.checkboxesEnabled,V=_f(s),ge=s.resourceType,De=i.searchResponse,dt=De?.entry?.map(b=>b.resource),Le="subtle",S="gray",W=16,go=window.innerWidth<768;return h.default.createElement("div",{className:o.root,"data-testid":"search-control"},!e.hideToolbar&&h.default.createElement(U.Group,{position:"apart",mb:"xl"},h.default.createElement(U.Group,{spacing:2},h.default.createElement(U.Button,{compact:!0,variant:Le,color:S,leftIcon:h.default.createElement(Pn,{size:W}),onClick:()=>u({...c.current,fieldEditorVisible:!0})},"Fields"),h.default.createElement(U.Button,{compact:!0,variant:Le,color:S,leftIcon:h.default.createElement(Mn,{size:W}),onClick:()=>u({...c.current,filterEditorVisible:!0})},"Filters"),e.onNew&&h.default.createElement(U.Button,{compact:!0,variant:Le,color:S,leftIcon:h.default.createElement(An,{size:W}),onClick:e.onNew},"New..."),!go&&oe()&&h.default.createElement(U.Button,{compact:!0,variant:Le,color:S,leftIcon:h.default.createElement(Gn,{size:W}),onClick:e.onExport?e.onExport:()=>u({...c.current,exportDialogVisible:!0})},"Export..."),!go&&e.onDelete&&h.default.createElement(U.Button,{compact:!0,variant:Le,color:S,leftIcon:h.default.createElement(gr,{size:W}),onClick:()=>e.onDelete(Object.keys(i.selected))},"Delete..."),!go&&e.onBulk&&h.default.createElement(U.Button,{compact:!0,variant:Le,color:S,leftIcon:h.default.createElement(hn,{size:W}),onClick:()=>e.onBulk(Object.keys(i.selected))},"Bulk...")),h.default.createElement(U.Group,{spacing:2},De&&h.default.createElement(U.Text,{size:"xs",color:"dimmed"},$d(s,De.total),"-",Kd(s,De.total)," of"," ",`${d==="estimate"?"~":""}${De.total?.toLocaleString()}`),h.default.createElement(U.ActionIcon,{title:"Refresh",onClick:P},h.default.createElement(Nn,{size:"1.125rem"})))),h.default.createElement(U.Table,{className:o.table},h.default.createElement("thead",null,h.default.createElement("tr",null,D&&h.default.createElement("th",null,h.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:M(),onChange:b=>k(b)})),V.map(b=>h.default.createElement("th",{key:b.name},h.default.createElement(U.Menu,{shadow:"md",width:240,position:"bottom-end"},h.default.createElement(U.Menu.Target,null,h.default.createElement(U.UnstyledButton,{className:o.control},h.default.createElement(U.Group,{position:"apart",noWrap:!0},h.default.createElement(U.Text,{weight:500,size:"sm"},Ze(b.name)),h.default.createElement(U.Center,{className:o.icon},h.default.createElement(mn,{size:14,stroke:1.5}))))),h.default.createElement(Zs,{search:e.search,searchParams:b.searchParams,onPrompt:($,Ao)=>{u({...c.current,filterDialogVisible:!0,filterDialogSearchParam:$,filterDialogFilter:Ao})},onChange:$=>{A($)}}))))),!e.hideFilters&&h.default.createElement("tr",null,D&&h.default.createElement("th",null),V.map(b=>h.default.createElement("th",{key:b.name},b.searchParams&&h.default.createElement(Wd,{resourceType:ge,searchParams:b.searchParams,filters:e.search.filters}))))),h.default.createElement("tbody",null,dt?.map(b=>b&&h.default.createElement("tr",{key:b.id,className:o.tr,"data-testid":"search-control-row",onClick:$=>w($,b),onAuxClick:$=>w($,b)},D&&h.default.createElement("td",null,h.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${b.id}`,checked:!!i.selected[b.id],onChange:$=>v($,b.id)})),V.map($=>h.default.createElement("td",{key:$.name},$f(b,$))))))),dt?.length===0&&h.default.createElement(Uo,null,h.default.createElement(U.Center,{style:{height:150}},h.default.createElement(U.Text,{size:"xl",color:"dimmed"},"No results"))),De?.total!==void 0&&De.total>0&&h.default.createElement(U.Center,{m:"md",p:"md"},h.default.createElement(U.Pagination,{value:Xd(s),total:Jd(s,De.total),onChange:b=>A(zf(s,b)),getControlProps:b=>{switch(b){case"previous":return{"aria-label":"Previous page"};case"next":return{"aria-label":"Next page"};default:return{}}}})),n&&h.default.createElement("div",{"data-testid":"search-error"},h.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(n,void 0,2))),h.default.createElement(Kf,{search:e.search,visible:c.current.fieldEditorVisible,onOk:b=>{A(b),u({...c.current,fieldEditorVisible:!1})},onCancel:()=>{u({...c.current,fieldEditorVisible:!1})}}),h.default.createElement(jf,{search:e.search,visible:c.current.filterEditorVisible,onOk:b=>{A(b),u({...c.current,filterEditorVisible:!1})},onCancel:()=>{u({...c.current,filterEditorVisible:!1})}}),h.default.createElement(Js,{visible:c.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{u({...c.current,exportDialogVisible:!1})}}),h.default.createElement(_s,{key:i.filterDialogSearchParam?.code,visible:c.current.filterDialogVisible,title:i.filterDialogSearchParam?.code?Ze(i.filterDialogSearchParam.code):"",resourceType:ge,searchParam:i.filterDialogSearchParam,filter:i.filterDialogFilter,defaultValue:"",onOk:b=>{A(Bt(e.search,b.code,b.operator,b.value)),u({...c.current,filterDialogVisible:!1})},onCancel:()=>{u({...c.current,filterDialogVisible:!1})}}))}var zd=h.default.memo(Ys);function Wd(e){let o=(e.filters??[]).filter(t=>e.searchParams.find(r=>r.code===t.code));return o.length===0?h.default.createElement("span",null,"no filters"):h.default.createElement(h.default.Fragment,null,o.map(t=>h.default.createElement("div",{key:`filter-${t.code}-${t.operator}-${t.value}`},tr(t.operator),"\xA0",h.default.createElement(Ha,{resourceType:e.resourceType,filter:t}))))}function Xd(e){return Math.floor((e.offset??0)/(e.count??fr.DEFAULT_SEARCH_COUNT))+1}function Jd(e,o){let t=e.count??fr.DEFAULT_SEARCH_COUNT;return Math.ceil(o/t)}function $d(e,o){return Math.min(o,(e.offset??0)+1)}function Kd(e,o){return Math.min(o,((e.offset??0)+1)*(e.count??fr.DEFAULT_SEARCH_COUNT))}function oi(e){let o=T(),[t,r]=(0,j.useState)(!1),[a,n]=(0,j.useState)(),{query:f,fields:s}=e,[l,i]=(0,j.useState)(),[u,c]=(0,j.useState)({}),d=(0,j.useRef)();d.current=l;let g=(0,j.useRef)({});g.current=u,(0,j.useEffect)(()=>{n(void 0),o.graphql(f).then(i).catch(w=>n((0,ei.normalizeOperationOutcome)(w)))},[o,f]);function P(w,oe){w.stopPropagation();let V=w.target.checked,ge={...g.current};V?ge[oe]=!0:delete ge[oe],c(ge)}function v(w){w.stopPropagation();let D=w.target.checked,V={},ge=d.current?.data.ResourceList;D&&ge&&ge.forEach(De=>{De.id&&(V[De.id]=!0)}),c(V)}function k(){let w=d.current?.data.ResourceList;if(!w||w.length===0)return!1;for(let oe of w)if(oe.id&&!g.current[oe.id])return!1;return!0}function M(w,oe){ia(w.target)||(q(w),w.button!==1&&e.onClick&&e.onClick(new lt(oe,w)),w.button===1&&e.onAuxClick&&e.onAuxClick(new lt(oe,w)))}if((0,j.useEffect)(()=>{o.requestSchema(e.resourceType).then(()=>r(!0)).catch(console.log)},[o,e.resourceType]),!t)return j.default.createElement(lr.Loader,null);let A=e.checkboxesEnabled;return j.default.createElement("div",{onContextMenu:w=>q(w),"data-testid":"search-control"},j.default.createElement(lr.Table,null,j.default.createElement("thead",null,j.default.createElement("tr",null,A&&j.default.createElement("th",null,j.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:k(),onChange:w=>v(w)})),s.map(w=>j.default.createElement("th",{key:w.name},w.name)))),j.default.createElement("tbody",null,l?.data.ResourceList.map(w=>w&&j.default.createElement("tr",{key:w.id,"data-testid":"search-control-row",onClick:oe=>M(oe,w),onAuxClick:oe=>M(oe,w)},A&&j.default.createElement("td",null,j.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${w.id}`,checked:!!u[w.id],onChange:oe=>P(oe,w.id)})),s.map(oe=>j.default.createElement("td",{key:oe.name},j.default.createElement(Ws,{propertyType:oe.propertyType,path:oe.fhirPath,resource:w}))))))),l?.data.ResourceList.length===0&&j.default.createElement("div",{"data-testid":"empty-search"},"No results"),a&&j.default.createElement("div",{"data-testid":"search-error"},j.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(a,void 0,2))),e.onBulk&&j.default.createElement(lr.Button,{onClick:()=>e.onBulk(Object.keys(g.current))},"Bulk..."))}var jd=j.default.memo(oi);var st=m(require("react"),1);function $o(e){return st.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},st.default.createElement("title",null,"Medplum Logo"),st.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"}),st.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"}),st.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"}),st.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"}),st.default.createElement("path",{fill:e.fill??"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}var Qa=require("@mantine/core");var Qr=m(require("react"),1);var ie=require("@mantine/core"),Zf=require("@medplum/core"),ee=m(require("react"),1);function ti(e){let{group:o}=e;return ee.default.createElement(ie.Paper,{withBorder:!0,radius:"md",p:"xs",display:"flex",sx:{alignItems:"center",justifyContent:"center"}},ee.default.createElement(ie.Group,null,o.measureScore&&ee.default.createElement(Zd,{group:o}),!o.measureScore&&ee.default.createElement(_d,{group:o})))}function ri(e){let{measure:o}=e;return ee.default.createElement(ee.default.Fragment,null,ee.default.createElement(ie.Text,{fz:"md",fw:500,mb:8},o.title),ee.default.createElement(ie.Text,{fz:"xs",c:"dimmed",mb:8},o.subtitle))}function _d(e){let{group:o}=e,t=o.population,r=t?.find(l=>(0,Zf.formatCodeableConcept)(l.code)==="numerator"),a=t?.find(l=>(0,Zf.formatCodeableConcept)(l.code)==="denominator"),n=r?.count,f=a?.count;if(f===0)return ee.default.createElement(ie.Box,null,ee.default.createElement(ie.Title,{order:3},"Not Applicable"),ee.default.createElement(ie.Text,null,`Denominator: ${f}`));if(n===void 0||f===void 0)return ee.default.createElement(ie.Box,null,ee.default.createElement(ie.Title,{order:3},"Insufficient Data"),ee.default.createElement(ie.Text,null,`Numerator: ${n}`),ee.default.createElement(ie.Text,null,`Denominator: ${f}`));let s=n/f*100;return ee.default.createElement(ie.RingProgress,{size:120,thickness:12,roundCaps:!0,sections:[{value:s,color:ai(s)}],label:ee.default.createElement(ie.Flex,{justify:"center"},ee.default.createElement(ie.Text,{fw:700,fz:18},n," / ",f))})}function Zd(e){let{group:o}=e,t=o.measureScore?.unit??o.measureScore?.code;return ee.default.createElement(ee.default.Fragment,null,t==="%"?ee.default.createElement(ie.RingProgress,{size:120,thickness:12,roundCaps:!0,sections:[{value:Yd(o),color:ai(o?.measureScore?.value??0)}],label:ee.default.createElement(ie.Flex,{justify:"center"},ee.default.createElement(ie.Text,{fw:700,fz:18},ee.default.createElement(No,{value:o.measureScore})))}):ee.default.createElement(ie.Flex,{h:120,align:"center"},ee.default.createElement(ie.Title,{order:3},ee.default.createElement(No,{value:o.measureScore}))))}function Yd(e){let o=e.measureScore?.value,t=e.measureScore?.unit;return o?o<=1&&t==="%"?o*100:o:0}function ai(e){return e<=33?"red":e<=67?"yellow":"green"}function ec(e){let o=Z(e.measureReport),[t]=nn("Measure",{url:o?.measure});return o?Qr.default.createElement(Qa.Box,null,t&&Qr.default.createElement(ri,{measure:t}),Qr.default.createElement(Qa.SimpleGrid,{cols:3,breakpoints:[{maxWidth:"48rem",cols:2,spacing:"md"},{maxWidth:"36rem",cols:1,spacing:"sm"}],spacing:"md"},o.group?.map((r,a)=>Qr.default.createElement(ti,{key:r.id??a,group:r})))):null}var ni=require("@mantine/core"),fi=require("@medplum/core");var za=m(require("react"),1);function At(e){let o=e.outcome?.issue||e.issues;return!o||o.length===0?null:za.default.createElement(ni.Alert,{icon:za.default.createElement(pt,{size:16}),color:"red"},o.map(t=>za.default.createElement("div",{"data-testid":"text-field-error",key:t.details?.text},(0,fi.operationOutcomeIssueToString)(t))))}var zr=require("@medplum/core"),Wa=m(require("react"),1);function oc(e){let o=(0,Wa.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 Wa.default.createElement(Xo,{value:e.patient,loadTimelineResources:o,createCommunication:(t,r,a)=>({resourceType:"Communication",status:"completed",subject:(0,zr.createReference)(t),sender:(0,zr.createReference)(r),sent:new Date().toISOString(),payload:[{contentString:a}]}),createMedia:(t,r,a)=>({resourceType:"Media",status:"completed",subject:(0,zr.createReference)(t),operator:(0,zr.createReference)(r),issued:new Date().toISOString(),content:a})})}var Ve=require("@mantine/core"),li=require("@medplum/core");var E=m(require("react"),1);var si=(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 tc(e){let o=T(),t=Z(e.value),[r,a]=(0,E.useState)(!1),[n,f]=(0,E.useState)(),[s,l]=(0,E.useState)(),[i,u]=(0,E.useState)();function c(){l(void 0)}function d(){f(void 0)}let g=(0,E.useRef)();if(g.current=i,(0,E.useEffect)(()=>{o.requestSchema("PlanDefinition").then(()=>a(!0)).catch(console.log)},[o]),(0,E.useEffect)(()=>(u(sc(t??{resourceType:"PlanDefinition"})),document.addEventListener("mouseover",c),document.addEventListener("click",d),()=>{document.removeEventListener("mouseover",c),document.removeEventListener("click",d)}),[t]),!r||!i)return null;function P(v,k){u({...g.current,[v]:k})}return E.default.createElement("div",null,E.default.createElement(se,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(i)},E.default.createElement(Ve.TextInput,{label:"Plan Title",defaultValue:i.title,onChange:v=>P("title",v.currentTarget.value)}),E.default.createElement(ii,{actions:i.action||[],selectedKey:n,setSelectedKey:f,hoverKey:s,setHoverKey:l,onChange:v=>P("action",v)}),E.default.createElement(Ve.Button,{type:"submit"},"Save")))}function ii(e){let{classes:o}=si(),t=(0,E.useRef)();t.current=e.actions;function r(f){e.onChange(t.current.map(s=>s.id===f.id?f:s))}function a(f){e.onChange([...t.current,f]),e.setSelectedKey(f.id)}function n(f){e.onChange(t.current.filter(s=>s!==f))}return E.default.createElement("div",{className:o.section},e.actions.map(f=>E.default.createElement("div",{key:f.id},E.default.createElement(rc,{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=>{q(f),a({id:di()})}},"Add action")))}function rc(e){let{classes:o,cx:t}=si(),{action:r}=e,a=lc(r),n=e.selectedKey===e.action.id,f=e.hoverKey===e.action.id;function s(u){u.stopPropagation(),e.setSelectedKey(e.action.id)}function l(u){q(u),e.setHoverKey(e.action.id)}let i=t(o.section,{[o.editing]:n,[o.hovering]:f&&!n});return E.default.createElement("div",{"data-testid":r.id,className:i,onClick:s,onMouseOver:l},n?E.default.createElement(nc,{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(ac,{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 el={path:"PlanDefinition.action.timing[x]",min:0,max:1,description:"",isArray:!1,constraints:[],type:["dateTime","Period","Range","Timing"].map(e=>({code:e}))};function ac(e){let{action:o,actionType:t}=e,[r,a]=ui(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(Yo,{value:{reference:o.definitionCanonical}})),r&&E.default.createElement("div",null,E.default.createElement(Fe,{property:el,propertyType:a,value:r})))}function nc(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(ii,{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(Xa,{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(Xa,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});case"questionnaire":return E.default.createElement(Xa,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:o,onChange:e.onChange});case"task":return E.default.createElement(Xa,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});default:return null}})(),E.default.createElement(We,{title:"Timing",description:"When the action should take place."},E.default.createElement(fc,{name:"timing-"+o.id,action:o,onChange:e.onChange})))}function Xa(e){let{id:o,definitionCanonical:t}=e.action,r=t?.startsWith(e.resourceType+"/")?{reference:t}:void 0;return E.default.createElement(Er,{name:o,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:a=>{a?e.onChange({...e.action,definitionCanonical:(0,li.getReferenceString)(a)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function fc(e){let o=e.action,t="timing",[r,a]=ui(o);return E.default.createElement(Co,{property:el,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(n,f)=>{e.onChange(Br(o,t,f??t,el,n))}})}function lc(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task"}function ui(e){return je({type:"PlanDefinitionAction",value:e},"timing")}var Yf=1;function di(e){if(e){if(e.startsWith("id-")){let o=parseInt(e.substring(3),10);isNaN(o)||(Yf=Math.max(Yf,o+1))}return e}return"id-"+Yf++}function sc(e){return{...e,action:ci(e.action)}}function ci(e){if(e)return e.map(o=>({...o,id:di(o.id),action:ci(o.action)}))}var z=require("@mantine/core"),$a=require("@medplum/core");var y=m(require("react"),1);var Se=require("@mantine/core"),re=require("@medplum/core"),te=m(require("react"),1);var Ae=require("@medplum/core"),Wr=(M=>(M.group="group",M.display="display",M.question="question",M.boolean="boolean",M.decimal="decimal",M.integer="integer",M.date="date",M.dateTime="dateTime",M.time="time",M.string="string",M.text="text",M.url="url",M.choice="choice",M.openChoice="open-choice",M.attachment="attachment",M.reference="reference",M.quantity="quantity",M))(Wr||{});function ol(e){return e.type==="choice"||e.type==="open-choice"}function tl(e,o){if(!e.enableWhen)return!0;let t=e.enableBehavior??"any";for(let r of e.enableWhen){let a=mi(o,r.question);if(r.operator==="exists"&&!r.answerBoolean&&!a?.length){if(t==="any")return!0;continue}let{anyMatch:n,allMatch:f}=uc(r,a,t);if(t==="any"&&n)return!0;if(t==="all"&&!f)return!1}return t!=="any"}function rl(e,o,t){return e.map(r=>{let a=t.answerOption?.find(f=>(0,Ae.formatCoding)(f.valueCoding)===r||f[o]===r),n=(0,Ae.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:a},"value");return{[o]:n?.value}})}function mi(e,o){if(e)for(let t of e){if(t.linkId===o)return t.answer;if(t.item){let r=mi(t.item,o);if(r)return r}}}function ic(e,o,t){if(t==="exists")return!!e===o.value;if(e){let r=t==="="||t==="!="?t?.replace("=","~"):t,[{value:a}]=(0,Ae.evalFhirPathTyped)(`%actualAnswer ${r} %expectedAnswer`,[e],{actualAnswer:e,expectedAnswer:o});return a}else return!1}function uc(e,o,t){let r=o||[],a=(0,Ae.getTypedPropertyValue)({type:"QuestionnaireItemEnableWhen",value:e},"answer[x]"),n=!1,f=!0;for(let s of r){let l=(0,Ae.getTypedPropertyValue)({type:"QuestionnaireResponseItemAnswer",value:s},"value[x]"),{operator:i}=e;if(ic(l,a,i)?n=!0:f=!1,t==="any"&&n)break}return{anyMatch:n,allMatch:f}}function Xr(e){let o=(0,Ae.getExtension)(e,"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource");if(o){if(o.valueCode!==void 0)return[o.valueCode];if(o.valueCodeableConcept)return o.valueCodeableConcept?.coding?.map(t=>t.code)}}function Jr(e,o){let t=(0,Ae.deepClone)(e),r=(0,Ae.getExtension)(t,"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource");return!o||o.length===0?(r&&(t.extension=t.extension?.filter(a=>a!==r)),t):(r||(t.extension||(t.extension=[]),r={url:"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource"},t.extension.push(r)),o.length===1?(r.valueCode=o[0],delete r.valueCodeableConcept):(r.valueCodeableConcept={coding:o.map(a=>({code:a}))},delete r.valueCode),t)}function al(e){return{resourceType:"QuestionnaireResponse",questionnaire:(0,Ae.getReferenceString)(e),item:pi(e.item)}}function pi(e){return e?.map(Ja)??[]}function Ja(e){return{id:cc(),linkId:e.linkId,text:e.text,item:pi(e.item),answer:e.initial?.map(mc)??[]}}var dc=1;function cc(){return"id-"+dc++}function mc(e){return{...e}}function nl(e){return e.value.display||e.value.reference||(0,Ae.stringify)(e.value)}function fl(e){let o=e?.item?.[0];return o&&(0,Ae.getExtension)(o,"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl")?.valueCodeableConcept?.coding?.[0]?.code==="page"?e.item.length:1}function $r(e){let o=e.item,t=e.response;function r(l){let i;Array.isArray(l)?i=l:e.index>=(e.response?.answer?.length??0)?i=(e.response?.answer??[]).concat([l]):i=(e.response?.answer??[]).map((c,d)=>d===e.index?l:c)??[],e.onChange({id:t?.id,linkId:t?.linkId,text:o.text,answer:i})}let a=o.type;if(!a)return null;let n=o.linkId;if(!n)return null;let f=o.initial&&o.initial.length>0?o.initial[0]:void 0,s=ll(t,e.index)??(0,re.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:f},"value");switch(a){case"display":return te.default.createElement("p",{key:e.item.linkId},e.item.text);case"boolean":return te.default.createElement(Tr,{key:e.item.linkId,title:e.item.text,htmlFor:e.item.linkId},te.default.createElement(Se.Checkbox,{id:e.item.linkId,name:e.item.linkId,defaultChecked:s?.value,onChange:l=>r({valueBoolean:l.currentTarget.checked})}));case"decimal":return te.default.createElement(Se.TextInput,{type:"number",step:"any",id:n,name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueDecimal:l.currentTarget.valueAsNumber})});case"integer":return te.default.createElement(Se.TextInput,{type:"number",step:1,id:n,name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueInteger:l.currentTarget.valueAsNumber})});case"date":return te.default.createElement(Se.TextInput,{type:"date",id:n,name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueDate:l.currentTarget.value})});case"dateTime":return te.default.createElement(no,{name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueDateTime:l})});case"time":return te.default.createElement(Se.TextInput,{type:"time",id:n,name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueTime:l.currentTarget.value})});case"string":case"url":return te.default.createElement(Se.TextInput,{id:n,name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueString:l.currentTarget.value})});case"text":return te.default.createElement(Se.Textarea,{id:n,name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueString:l.currentTarget.value})});case"attachment":return te.default.createElement(Se.Group,{py:4},te.default.createElement(vr,{name:n,defaultValue:s?.value,onChange:l=>r({valueAttachment:l})}));case"reference":return te.default.createElement(Pt,{name:n,required:o.required,targetTypes:Xr(o),defaultValue:s?.value,onChange:l=>r({valueReference:l})});case"quantity":return te.default.createElement(_e,{name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueQuantity:l}),disableWheel:!0});case"choice":case"open-choice":return Cc(o)&&!o.answerValueSet?te.default.createElement(pc,{name:n,item:o,initial:f,response:t,onChangeAnswer:l=>r(l)}):te.default.createElement(xc,{name:n,item:o,initial:f,response:t,onChangeAnswer:l=>r(l)});default:return null}}function pc(e){let{name:o,item:t,initial:r,response:a}=e;if(!t.answerOption?.length)return te.default.createElement(gi,null);let n=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),f=[""];for(let l of t.answerOption){let i=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:l},"value");f.push(xi(i))}let s=ll(a)??n;if(t.repeats){let{propertyName:l,data:i}=yc(e.item),u=gc(a);return te.default.createElement(Se.MultiSelect,{data:i,placeholder:"Select items",searchable:!0,defaultValue:u||[xi(n)],onChange:c=>{let d=rl(c,l,t);e.onChangeAnswer(d)}})}return te.default.createElement(Se.NativeSelect,{id:o,name:o,onChange:l=>{let i=l.currentTarget.selectedIndex;if(i===0){e.onChangeAnswer({});return}let u=t.answerOption[i-1],c=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:u},"value"),d="value"+(0,re.capitalize)(c.type);e.onChangeAnswer({[d]:c.value})},defaultValue:(0,re.formatCoding)(s?.value)||s?.value,data:f})}function xc(e){let{name:o,item:t,initial:r,onChangeAnswer:a,response:n}=e;return!t.answerOption?.length&&!t.answerValueSet?te.default.createElement(gi,null):t.answerValueSet?te.default.createElement(Ar,{name:o,binding:t.answerValueSet,onChange:f=>a({valueCoding:f})}):te.default.createElement(Ic,{name:n?.id??o,item:t,initial:r,response:n,onChangeAnswer:a})}function Ic(e){let{name:o,item:t,initial:r,onChangeAnswer:a,response:n}=e,f=(0,re.getElementDefinition)("QuestionnaireItemAnswerOption","value[x]"),s=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),l=[],i;if(t.answerOption)for(let d=0;d<t.answerOption.length;d++){let g=t.answerOption[d],P=`${o}-option-${d}`,v=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:g},"value");s&&(0,re.stringify)(v)===(0,re.stringify)(s)&&(i=P),l.push([P,v])}let u=ll(n),c=hc(l,u);return te.default.createElement(Se.Radio.Group,{name:o,value:c??i,onChange:d=>{let g=l.find(P=>P[0]===d);if(g){let P=g[1],v="value"+(0,re.capitalize)(P.type);a({[v]:P.value})}}},l.map(([d,g])=>te.default.createElement(Se.Radio,{key:d,id:d,value:d,py:4,label:te.default.createElement(Fe,{property:f,propertyType:g.type,value:g.value})})))}function gi(){return te.default.createElement(Se.TextInput,{disabled:!0,placeholder:"No Answers Defined"})}function hi(e){return(0,re.getTypedPropertyValue)({type:"QuestionnaireItemAnswer",value:e},"value")}function ll(e,o=0){let t=e.answer;return hi(t?.[o]??{})}function gc(e){let o=e.answer;return o?o.map(r=>hi(r)).map(r=>(0,re.formatCoding)(r?.value)||r?.value):[]}function hc(e,o){return e.find(t=>(0,re.deepEquals)(t[1].value,o?.value))?.[0]}function xi(e){if(e)return e.type==="CodeableConcept"?(0,re.formatCodeableConcept)(e.value):e.type==="Coding"?(0,re.formatCoding)(e.value):e.type==="Reference"?nl(e):e.value.toString()}function Cc(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function yc(e){if(e.answerOption?.length===0)return{propertyName:"",data:[]};let o=e.answerOption[0],t=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:o},"value"),r="value"+(0,re.capitalize)(t.type),a=(e.answerOption??[]).map(n=>({value:Ii(n,r),label:Ii(n,r)}));return{propertyName:r,data:a}}function Ii(e,o){return(0,re.formatCoding)(e.valueCoding)||e[o]?.toString()}var vc=(0,z.createStyles)(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},questionBody:{maxWidth:600},topActions:{position:"absolute",right:32,top:1,padding:4,color:e.colors.gray[5],fontSize:e.fontSizes.xs},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},movementActions:{position:"absolute",right:8,top:0,paddingTop:8,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},movementIcons:{color:e.colors.gray[5]},columnAlignment:{display:"flex",flexDirection:"column"},linkIdInput:{width:100,marginBottom:4},typeSelect:{width:100}}));function Sc(e){let o=T(),t=Z(e.questionnaire),[r,a]=(0,y.useState)(!1),[n,f]=(0,y.useState)(),[s,l]=(0,y.useState)(),[i,u]=(0,y.useState)();function c(){u(void 0)}function d(){l(void 0)}return(0,y.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>a(!0)).catch(console.log)},[o]),(0,y.useEffect)(()=>(f(Tc(t??{resourceType:"Questionnaire"})),document.addEventListener("mouseover",c),document.addEventListener("click",d),()=>{document.removeEventListener("mouseover",c),document.removeEventListener("click",d)}),[t]),!r||!n?null:y.default.createElement("div",null,y.default.createElement(se,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(n)},y.default.createElement(Ci,{item:n,selectedKey:s,setSelectedKey:l,hoverKey:i,setHoverKey:u,onChange:f}),y.default.createElement(z.Button,{type:"submit"},"Save")))}function Ci(e){let{classes:o,cx:t}=vc(),r=e.item,a=e.item,n=(0,$a.isResource)(e.item),f=n||a.type==="group",s=a.linkId??"[untitled]",l=e.selectedKey===e.item.id,i=e.hoverKey===e.item.id,u=(0,y.useRef)();u.current=e.item;function c(D){q(D),e.setSelectedKey(e.item.id)}function d(D){q(D),e.setHoverKey(e.item.id)}function g(D){let V=u.current;e.onChange({...V,item:V.item?.map(ge=>ge.id===D.id?D:ge)})}function P(D){e.onChange({...e.item,item:[...e.item.item??[],D]})}function v(D){e.onChange({...e.item,item:e.item.item?.filter(V=>V!==D)})}function k(D,V){e.onChange({...u.current,[D]:V})}function M(D){e.onChange({...e.item,...D})}function A(D){e.onChange({...e.item,item:e.item.item?.map(V=>V===D?{...V,repeats:!V.repeats}:V)})}function w(D,V){let ge=Ac(e.item.item,D,V);e.onChange({...e.item,item:ge})}let oe=t(o.section,{[o.editing]:l,[o.hovering]:i&&!l});return y.default.createElement("div",{"data-testid":a.linkId,className:oe,onClick:c,onMouseOver:d},y.default.createElement("div",{className:o.questionBody},l?y.default.createElement(y.default.Fragment,null,n&&y.default.createElement(z.TextInput,{size:"xl",defaultValue:r.title,onChange:D=>k("title",D.currentTarget.value)}),!n&&y.default.createElement(z.Textarea,{autosize:!0,minRows:2,defaultValue:a.text,onChange:D=>k("text",D.currentTarget.value)}),a.type==="reference"&&y.default.createElement(Dc,{item:a,onChange:M}),ol(a)&&y.default.createElement(bc,{item:a,onChange:D=>M(D)})):y.default.createElement(y.default.Fragment,null,r.title&&y.default.createElement(z.Title,null,r.title),a.text&&y.default.createElement("div",null,a.text),!f&&y.default.createElement($r,{item:a,index:0,onChange:()=>{},response:{}}))),a.item?.map((D,V)=>y.default.createElement("div",{key:D.id},y.default.createElement(Ci,{item:D,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,isFirst:V===0,isLast:V===(e.item.item??[]).length-1,setHoverKey:e.setHoverKey,onChange:g,onRemove:()=>v(D),onRepeatable:A,onMoveUp:()=>w(V,-1),onMoveDown:()=>w(V,1)}))),!f&&y.default.createElement("div",{className:o.topActions},l?y.default.createElement(y.default.Fragment,null,y.default.createElement(z.TextInput,{size:"xs",className:o.linkIdInput,defaultValue:a.linkId,onChange:D=>k("linkId",D.currentTarget.value)}),!f&&y.default.createElement(z.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:a.type,onChange:D=>k("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"}]})):y.default.createElement("div",null,s)),!n&&y.default.createElement(z.Box,{className:o.movementActions},y.default.createElement(z.Box,{className:o.columnAlignment},!e.isFirst&&y.default.createElement(z.Anchor,{href:"#",onClick:D=>{D.preventDefault(),e.onMoveUp&&e.onMoveUp()}},y.default.createElement(xn,{"data-testid":"up-button",size:15,className:o.movementIcons})),!e.isLast&&y.default.createElement(z.Anchor,{href:"#",onClick:D=>{D.preventDefault(),e.onMoveDown&&e.onMoveDown()}},y.default.createElement(pn,{"data-testid":"down-button",size:15,className:o.movementIcons})))),y.default.createElement("div",{className:o.bottomActions},f&&y.default.createElement(y.default.Fragment,null,y.default.createElement(z.Anchor,{href:"#",onClick:D=>{D.preventDefault(),P({id:Mt(),linkId:ul("q"),type:"string",text:"Question"})}},"Add item"),y.default.createElement(z.Anchor,{href:"#",onClick:D=>{D.preventDefault(),P({id:Mt(),linkId:ul("g"),type:"group",text:"Group"})}},"Add group")),n&&y.default.createElement(z.Anchor,{href:"#",onClick:D=>{D.preventDefault(),P(Bc())}},"Add Page"),l&&!n&&y.default.createElement(y.default.Fragment,null,y.default.createElement(z.Anchor,{href:"#",onClick:D=>{D.preventDefault(),e.onRepeatable&&e.onRepeatable(a)}},a.repeats?"Remove Repeatable":"Make Repeatable"),y.default.createElement(z.Anchor,{href:"#",onClick:D=>{D.preventDefault(),e.onRemove&&e.onRemove()}},"Remove"))))}function bc(e){let o=(0,$a.getElementDefinition)("QuestionnaireItemAnswerOption","value[x]"),t=e.item.answerOption??[];return y.default.createElement("div",null,e.item.answerValueSet!==void 0?y.default.createElement(z.TextInput,{placeholder:"Enter Value Set",defaultValue:e.item.answerValueSet,onChange:r=>e.onChange({...e.item,answerValueSet:r.target.value})}):y.default.createElement(Pc,{options:t,property:o,item:e.item,onChange:e.onChange}),y.default.createElement(z.Box,{display:"flex"},y.default.createElement(z.Anchor,{href:"#",onClick:r=>{q(r),e.onChange({...e.item,answerValueSet:void 0,answerOption:[...t,{id:Mt()}]})}},"Add choice"),y.default.createElement(z.Space,{w:"lg"}),y.default.createElement(z.Anchor,{href:"#",onClick:r=>{q(r),e.onChange({...e.item,answerOption:[],answerValueSet:""})}},"Add value set")))}function Pc(e){return y.default.createElement("div",null,e.options.map(o=>{let[t,r]=je({type:"QuestionnaireItemAnswerOption",value:o},"value");return y.default.createElement("div",{key:o.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},y.default.createElement("div",null,y.default.createElement(Co,{key:o.id,name:"value[x]",property:e.property,defaultPropertyType:r,defaultValue:t,onChange:(a,n)=>{let f=[...e.options],s=f.findIndex(l=>l.id===o.id);f[s]={id:o.id,[n]:a},e.onChange({...e.item,answerOption:f})}})),y.default.createElement("div",null,y.default.createElement(z.Anchor,{href:"#",onClick:a=>{q(a),e.onChange({...e.item,answerOption:e.options.filter(n=>n.id!==o.id)})}},"Remove")))}))}function Dc(e){let o=Xr(e.item)??[];return y.default.createElement(y.default.Fragment,null,o.map((t,r)=>y.default.createElement(z.Group,{key:`${t}-${r}`},y.default.createElement(Vt,{name:"resourceType",placeholder:"Resource Type",defaultValue:t,onChange:a=>{e.onChange(Jr(e.item,o.map(n=>n===t?a:n)))}}),y.default.createElement(z.Anchor,{href:"#",onClick:a=>{q(a),e.onChange(Jr(e.item,o.filter(n=>n!==t)))}},"Remove"))),y.default.createElement(z.Anchor,{href:"#",onClick:t=>{q(t),e.onChange(Jr(e.item,[...o,""]))}},"Add Resource Type"))}var sl=1,il=1;function ul(e){return e+sl++}function Mt(){return"id-"+il++}function Tc(e){return{...e,id:e.id||Mt(),item:yi(e.item)}}function yi(e){if(e)return e.forEach(o=>{o.id?.match(/^id-\d+$/)&&(il=Math.max(il,parseInt(o.id.substring(3),10)+1)),o.linkId?.match(/^q\d+$/)&&(sl=Math.max(sl,parseInt(o.linkId.substring(1),10)+1))}),e.map(o=>({...o,id:o.id||Mt(),item:yi(o.item),answerOption:kc(o.answerOption)}))}function kc(e){if(e)return e.map(o=>({...o,id:o.id||Mt()}))}function Bc(){return{id:Mt(),linkId:ul("s"),type:"group",text:"New Page",extension:[{url:"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl",valueCodeableConcept:{coding:[{system:"http://hl7.org/fhir/questionnaire-item-control",code:"page"}]}}]}}function Ac(e,o,t){let r=e??[],a=o+t;if(a<0||a>=r.length)return r;let n=[...r];return[n[o],n[a]]=[n[a],n[o]],n}var Pi=require("@mantine/core"),ja=require("@medplum/core");var Io=m(require("react"),1);var xo=require("@mantine/core"),oo=m(require("react"),1);var vi=require("@mantine/core"),it=m(require("react"),1);function Ka(e){let{item:o,response:t,onChange:r}=e,[a,n]=(0,it.useState)(Mc(o,t??{}));if(!e.checkForQuestionEnabled(o)||!t)return null;if(o.type==="display")return it.default.createElement("p",{key:o.linkId},o.text);let f=o?.repeats&&o.type!=="choice"&&o.type!=="open-choice";return o.type==="boolean"?it.default.createElement($r,{key:o.linkId,item:o,response:t,onChange:s=>r([s]),index:0}):it.default.createElement(We,{key:e.item.linkId,htmlFor:e.item.linkId,title:e.item.text,withAsterisk:e.item.required},[...Array(a)].map((s,l)=>it.default.createElement($r,{key:`${o.linkId}-${l}`,item:o,response:t,onChange:i=>r([i]),index:l})),f&&it.default.createElement(vi.Anchor,{onClick:()=>n(s=>s+1)},"Add Item"))}function Mc(e,o){if(e.type==="choice"||e.type==="open-choice")return 1;let t=o.answer;return t?.length?t.length:1}var sr=require("@mantine/core"),eo=m(require("react"),1);function dl(e){let[o,t]=(0,eo.useState)(e.response);if(o.length===0)return null;function r(n,f){let s=o.map((l,i)=>i===f?n[0]:l);t(s),e.onChange(s)}function a(){let n=Ja(e.item);t([...o,n])}return eo.default.createElement(eo.default.Fragment,null,o.map((n,f)=>eo.default.createElement(Si,{key:n.id,item:e.item,response:n,checkForQuestionEnabled:e.checkForQuestionEnabled,onChange:s=>r(s,f)})),e.item.repeats&&eo.default.createElement(sr.Anchor,{onClick:a},`Add Group: ${e.item.text}`))}function Si(e){let{response:o,checkForQuestionEnabled:t,onChange:r}=e;function a(n){let s=o.item?.map(i=>n.find(c=>c.id===i.id)??i)?.concat(n.slice(1)),l={...o,item:s};r([l])}return e.checkForQuestionEnabled(e.item)?eo.default.createElement("div",{key:e.item.linkId},e.item.text&&eo.default.createElement(sr.Title,{order:3,mb:"md"},e.item.text),eo.default.createElement(sr.Stack,null,e.item.item?.map(n=>n.type==="group"?n.repeats?eo.default.createElement(dl,{key:n.linkId,item:n,response:o.item?.filter(f=>f.linkId===n.linkId)??[],checkForQuestionEnabled:t,onChange:a}):eo.default.createElement(Si,{key:n.linkId,item:n,checkForQuestionEnabled:t,response:o.item?.find(f=>f.linkId===n.linkId)??{},onChange:a}):eo.default.createElement(Ka,{key:n.linkId,item:n,response:o.item?.find(f=>f.linkId===n.linkId),onChange:a,checkForQuestionEnabled:t})))):null}function bi(e){let{items:o,response:t,activePage:r,onChange:a,nextStep:n,prevStep:f,numberOfPages:s,renderPages:l,submitButtonText:i,checkForQuestionEnabled:u}=e,c=o.map(d=>{let g=t?.item?.filter(v=>v.linkId===d.linkId)??[],P=d.type==="group"?oo.default.createElement(dl,{key:d.linkId,item:d,response:g,onChange:a,checkForQuestionEnabled:u}):oo.default.createElement(Ka,{key:d.linkId,item:d,response:g?.[0],onChange:a,checkForQuestionEnabled:u});return l?oo.default.createElement(xo.Stepper.Step,{key:d.linkId,label:d.text},P):P});return oo.default.createElement(oo.default.Fragment,null,l&&oo.default.createElement(xo.Stepper,{active:r??0,allowNextStepsSelect:!1,p:6},c),!l&&oo.default.createElement(xo.Stack,null,c),oo.default.createElement(Fc,{activePage:r??0,numberOfPages:s,nextStep:n,prevStep:f,submitButtonText:i}))}function Fc(e){let o=e.activePage>0,t=e.activePage<e.numberOfPages-1,r=e.activePage===e.numberOfPages-1;return oo.default.createElement(xo.Group,{position:"right",mt:"xl",spacing:"xs"},o&&oo.default.createElement(xo.Button,{onClick:e.prevStep},"Back"),t&&oo.default.createElement(xo.Button,{onClick:a=>{a.currentTarget.closest("form").reportValidity()&&e.nextStep()}},"Next"),r&&oo.default.createElement(xo.Button,{type:"submit"},e.submitButtonText??"Submit"))}function cl(e){let o=T(),t=o.getProfile(),[r,a]=(0,Io.useState)(!1),n=Z(e.questionnaire),[f,s]=(0,Io.useState)(),[l,i]=(0,Io.useState)(0);(0,Io.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>o.requestSchema("QuestionnaireResponse")).then(()=>a(!0)).catch(console.log)},[o]),(0,Io.useEffect)(()=>{s(n?al(n):void 0)},[n]);function u(v){let k=f?.item??[],A={resourceType:"QuestionnaireResponse",item:Di(k,Array.isArray(v)?v:[v])};s(A)}function c(v){return tl(v,f?.item??[])}if(!r||!n)return null;let d=fl(n),g=()=>i(v=>v+1),P=()=>i(v=>v-1);return Io.default.createElement(se,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&f&&e.onSubmit({...f,questionnaire:(0,ja.getReferenceString)(n),subject:e.subject,source:(0,ja.createReference)(t),authored:new Date().toISOString(),status:"completed"})}},n.title&&Io.default.createElement(Pi.Title,null,n.title),Io.default.createElement(bi,{items:n.item??[],response:f,onChange:u,renderPages:d>1,activePage:l,numberOfPages:d,submitButtonText:e.submitButtonText,checkForQuestionEnabled:c,nextStep:g,prevStep:P}))}function wc(e,o){let t=Di(e.item??[],o.item??[]);return{...o,item:t.length>0?t:void 0,answer:o.answer&&o.answer.length>0?o.answer:e.answer}}function Di(e,o){let t=[],r=new Set;for(let a of e){let n=a.id,f=o.find(s=>s.id===n);f?(t.push(wc(a,f)),r.add(f.id)):t.push(a)}for(let a of o)r.has(a.id)||t.push(a);return t}var _=require("@mantine/core"),Kr=require("@medplum/core");var H=m(require("react"),1);var Oc=(0,_.createStyles)(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[3]}`,borderRadius:e.radius.sm,transition:"all 0.1s"}})),Ec=["gender","age","gestationalAge","context","appliesTo","category"],Lc={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function Rc(e){e=Object.assign(Lc,e);let o=e.definition,[t,r]=(0,H.useState)([]),[a,n]=(0,H.useState)(1),[f,s]=(0,H.useState)(1);return(0,H.useEffect)(()=>{let P=Hc(o,s);r(Vc(P.qualifiedInterval||[],n))},[o]),H.default.createElement(se,{testid:"reference-range-editor",onSubmit:l},H.default.createElement(_.Stack,null,t.map(P=>H.default.createElement(Ti,{unit:Gc(o.quantitativeDetails?.unit),onChange:c,onAdd:d,onRemove:g,onRemoveGroup:u,key:`group-${P.id}`,intervalGroup:P}))),H.default.createElement(_.ActionIcon,{title:"Add Group",size:"sm",onClick:P=>{q(P),i({id:`group-id-${a}`,filters:{},intervals:[]}),n(v=>v+1)}},H.default.createElement(Ot,null)),H.default.createElement(_.Group,{position:"right"},H.default.createElement(_.Button,{type:"submit"},"Save")));function l(){let P=t.flatMap(v=>v.intervals).filter(v=>!Uc(v));e.onSubmit({...o,qualifiedInterval:P})}function i(P){r(v=>[...v,P])}function u(P){r(v=>v.filter(k=>k.id!==P.id))}function c(P,v){r(k=>{k=[...k];let M=k.find(w=>w.id===P),A=M?.intervals.findIndex(w=>w.id===v.id);return A!==void 0&&M?.intervals[A]&&(M.intervals[A]=v),k})}function d(P,v){v.id===void 0&&(v.id=`id-${f}`,s(k=>k+1)),r(k=>{k=[...k];let M=k.findIndex(A=>A.id===P);if(M!==-1){let A={...k[M]};v={...v,...A.filters},A.intervals=[...A.intervals,v],k[M]=A}return k})}function g(P,v){r(k=>{k=[...k];let M=k.find(A=>A.id===P);return M&&(M.intervals=M.intervals.filter(A=>A.id!==v.id)),k})}}function Ti(e){let{intervalGroup:o,unit:t}=e,{classes:r}=Oc();return H.default.createElement(Uo,{"data-testid":o.id,className:r.section},H.default.createElement(_.Stack,{spacing:"lg"},H.default.createElement(_.Group,{position:"right"},H.default.createElement(_.ActionIcon,{title:"Remove Group","data-testid":`remove-group-button-${o.id}`,key:`remove-group-button-${o.id}`,size:"sm",onClick:a=>{q(a),e.onRemoveGroup(o)}},H.default.createElement(Zo,null))),H.default.createElement(Nc,{intervalGroup:o,onChange:e.onChange}),H.default.createElement(_.Divider,null),o.intervals.map(a=>H.default.createElement(_.Stack,{key:`interval-${a.id}`,spacing:"xs"},H.default.createElement(_.Group,null,H.default.createElement(_.TextInput,{key:`condition-${a.id}`,"data-testid":`condition-${a.id}`,defaultValue:a.condition,label:"Condition: ",size:"sm",onChange:n=>{q(n),e.onChange(o.id,{...a,condition:n.currentTarget.value.trim()})}}),H.default.createElement(_.ActionIcon,{title:"Remove Interval",size:"sm",key:`remove-interval-${a.id}`,"data-testid":`remove-interval-${a.id}`,onClick:n=>{q(n),e.onRemove(o.id,a)}},H.default.createElement(Zo,null))),H.default.createElement(Jt,{onChange:n=>{e.onChange(o.id,{...a,range:n})},key:`range-${a.id}`,name:`range-${a.id}`,defaultValue:a.range}))),H.default.createElement(_.ActionIcon,{title:"Add Interval",size:"sm",onClick:a=>{q(a),e.onAdd(o.id,{range:{low:{unit:t},high:{unit:t}}})}},H.default.createElement(Ot,null))))}function Nc(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 H.default.createElement(_.Stack,{style:{maxWidth:"50%"}},H.default.createElement(_.Group,null,H.default.createElement(_.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})}}})),H.default.createElement(_.Group,{spacing:"xs"},H.default.createElement(_.Text,{component:"label",htmlFor:`div-age-${o.id}`},"Age:"),H.default.createElement("div",{id:`div-age-${o.id}`},H.default.createElement(Jt,{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})}}))),H.default.createElement(_.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"}]}})}}}),H.default.createElement(_.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 Hc(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 Vc(e,o){let t=1,r={};for(let a of e){let n=qc(a);n in r||(r[n]={id:`group-id-${t++}`,filters:Object.fromEntries(Ec.map(f=>[f,a[f]])),intervals:[]}),r[n].intervals.push(a)}return o(t),Object.values(r)}function qc(e){return[`gender=${e.gender}`,`age=${(0,Kr.formatRange)(e.age)}`,`gestationalAge=${(0,Kr.formatRange)(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map(t=>t.text).join("+")}`,`category=${e.category}`].join(":")}function Gc(e){return e&&((0,Kr.getCodeBySystem)(e,"http://unitsofmeasure.org")||e.text)}function Uc(e){return e.range?.low?.value===void 0&&e.range?.high?.value===void 0}var bo=require("@mantine/core"),_a=require("@medplum/core");var xe=m(require("react"),1);function Qc(e){let o=T(),t=Z(e.value),[r,a]=(0,xe.useState)(!1),[n,f]=(0,xe.useState)();if((0,xe.useEffect)(()=>{t&&!r&&(o.executeBatch(s(t)).then(f).catch(console.log),a(!0))},[o,t,r]),!t||!n)return null;return xe.default.createElement(bo.Grid,null,t.action?.map((i,u)=>{let c=i.resource&&l(i.resource),d=c?.input?.[0]?.valueReference,g=c?.output?.[0]?.valueReference;return xe.default.createElement(xe.default.Fragment,{key:`action-${u}`},xe.default.createElement(bo.Grid.Col,{span:1,p:"md"},c?.status==="completed"?xe.default.createElement(Sn,null):xe.default.createElement(Vn,{color:"gray"})),xe.default.createElement(bo.Grid.Col,{span:9,p:"xs"},xe.default.createElement(bo.Text,{weight:500},i.title),i.description&&xe.default.createElement("div",null,i.description),xe.default.createElement("div",null,"Last edited by\xA0",xe.default.createElement(co,{value:c?.meta?.author}),"\xA0on\xA0",(0,_a.formatDateTime)(c?.meta?.lastUpdated)),xe.default.createElement("div",null,"Status: ",xe.default.createElement(Nr,{status:c?.status||"unknown"}))),xe.default.createElement(bo.Grid.Col,{span:2,p:"md"},d&&!g&&xe.default.createElement(bo.Button,{onClick:()=>e.onStart(c,d)},"Start"),d&&g&&xe.default.createElement(bo.Button,{onClick:()=>e.onEdit(c,d,g)},"Edit")))}));function s(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 l(i){for(let u of n?.entry)if(u.resource&&i.reference===(0,_a.getReferenceString)(u.resource))return u.resource}}var Fi=require("@mantine/core");var Pe=m(require("react"),1);var ki=require("@medplum/core");function Za(e,o){let t=zc(e,o);return Wc(t,e,o)}function zc(e,o){let t=e.length,r=o.length,a=t+r+1,n=1+2*a,f=n/2|0,s=new Array(n);s[f+1]={i:0,j:-1,prev:void 0,snake:!0};for(let l=0;l<a;l++){for(let i=-l;i<=l;i+=2){let u=f+i,c=u+1,d=u-1,g=s[c],P=s[d],v,k=0;i===-l||i!==l&&P.i<g.i?(k=g.i,v=g):(k=P.i+1,v=P),s[d]=void 0;let M=k-i,A={i:k,j:M,prev:Xc(v),snake:!1};for(;k<t&&M<r&&e[k]===o[M];)k++,M++;if(k>A.i&&(A={i:k,j:M,prev:A,snake:!0}),s[u]=A,k>=t&&M>=r)return s[u]}s[f+l-1]=void 0}}function Wc(e,o,t){let r=[],a=e;for(a.snake&&(a=a.prev);a?.prev&&a.prev.j>=0;){let n=a.i,f=a.j;a=a.prev;let s=a.i,l=a.j,i={position:s,lines:o.slice(s,n)},u={position:l,lines:t.slice(l,f)},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 Xc(e){return e&&!e.snake&&e.prev?e.prev:e}function Bi(e){let o=e.entry.filter(r=>!!r.resource).map(r=>({meta:r.resource?.meta,lines:(0,ki.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 Jc(t,o),$c(t),t}function Jc(e,o){for(let t=1;t<o.length;t++){let r=Za(o[t-1].lines,o[t].lines);for(let a of r){let n=a.original.position,f=a.original.lines,s=a.revised.lines;if((a.type==="delete"||a.type==="change")&&e.splice(n,f.length),a.type==="insert"||a.type==="change")for(let l=0;l<a.revised.lines.length;l++)e.splice(n+l,0,{id:o[t].meta.versionId,meta:o[t].meta,value:s[l],span:1})}}}function $c(e){let o=0;for(;o<e.length;){let t=o;for(;t<e.length&&e[t].id===e[o].id;)e[t].span=-1,t++;e[o].span=t-o,o=t}}function Ai(e,o){return`/${e.resourceType}/${e.id}/_history/${o}`}function Mi(e){let o=Math.floor((Date.now()-Date.parse(e))/1e3),t=Math.floor(o/31536e3);if(t>0)return ir(t,"year");let r=Math.floor(o/2592e3);if(r>0)return ir(r,"month");let a=Math.floor(o/86400);if(a>0)return ir(a,"day");let n=Math.floor(o/3600);if(n>0)return ir(n,"hour");let f=Math.floor(o/60);return f>0?ir(f,"minute"):ir(o,"second")}function ir(e,o){return`${e} ${e===1?o:o+"s"} ago`}var Kc=(0,Fi.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 jc(e){let{classes:o}=Kc(),t=T(),[r,a]=(0,Pe.useState)(e.history);if((0,Pe.useEffect)(()=>{!e.history&&e.resourceType&&e.id&&t.readHistory(e.resourceType,e.id).then(a).catch(console.log)},[t,e.history,e.resourceType,e.id]),!r)return Pe.default.createElement("div",null,"Loading...");let n=r.entry?.[0]?.resource;if(!n)return null;let f=Bi(r);return Pe.default.createElement("div",{className:o.container},Pe.default.createElement("table",{className:o.root},Pe.default.createElement("tbody",null,f.map((s,l)=>Pe.default.createElement("tr",{key:"row-"+l,className:s.span>0?o.startRow:o.normalRow},s.span>0&&Pe.default.createElement(Pe.default.Fragment,null,Pe.default.createElement("td",{className:o.author,rowSpan:s.span},Pe.default.createElement(Qo,{value:s.meta.author,link:!0})),Pe.default.createElement("td",{className:o.dateTime,rowSpan:s.span},Pe.default.createElement(ke,{to:Ai(n,s.meta.versionId)},Mi(s.meta.lastUpdated)))),Pe.default.createElement("td",{className:o.lineNumber},l+1),Pe.default.createElement("td",{className:o.line},Pe.default.createElement("pre",{className:o.pre},s.value)))))))}var wi=require("@mantine/core"),ml=require("@medplum/core"),Ko=m(require("react"),1);var _c=(0,wi.createStyles)(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function Zc(e){let o=e.original,t=e.revised;e.ignoreMeta&&(o={...o,meta:void 0},t={...t,meta:void 0});let r=(0,ml.stringify)(o,!0).match(/[^\r\n]+/g),a=(0,ml.stringify)(t,!0).match(/[^\r\n]+/g),n=Za(r,a);return Ko.default.createElement("pre",{style:{color:"gray"}},n.map((f,s)=>Ko.default.createElement(Yc,{key:"delta"+s,delta:f})))}function Yc(e){let{classes:o}=_c();return Ko.default.createElement(Ko.default.Fragment,null,"...",Ko.default.createElement("br",null),e.delta.original.lines.length>0&&Ko.default.createElement("div",{className:o.removed},e.delta.original.lines.join(`
|
|
64
|
+
}`.replace(/\s+/g," ")}function vu(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),bu(Su(t),o).slice(0,5)}function Su(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 bu(e,o){return e.sort((t,r)=>Gl(r,o)-Gl(t,o))}function Gl(e,o){let t=0;if(e.identifier)for(let r of e.identifier)t=Math.max(t,Ul(r.value,o));if(e.resourceType==="Patient"&&e.name)for(let r of e.name)t=Math.max(t,Ul((0,Oo.formatHumanName)(r),o));return t}function Ul(e,o){if(!e)return 0;let t=e.toLowerCase().indexOf(o.toLowerCase());return t<0?0:100-t}var Pu=(0,X.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 $n(e){let o=wt(),{medplum:t,profile:r,navigate:a}=o,n=t.getLogins(),{classes:f,cx:s}=Pu(),[l,i]=(0,Q.useState)(!1);return Q.default.createElement(X.Header,{height:60,p:8,style:{zIndex:101}},Q.default.createElement(X.Group,{position:"apart"},Q.default.createElement(X.Group,{spacing:"xs"},Q.default.createElement(X.UnstyledButton,{className:f.logoButton,onClick:e.navbarToggle},e.logo),!e.headerSearchDisabled&&Q.default.createElement(Ql,{pathname:e.pathname,searchParams:e.searchParams})),Q.default.createElement(X.Menu,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:l,onClose:()=>i(!1)},Q.default.createElement(X.Menu.Target,null,Q.default.createElement(X.UnstyledButton,{className:s(f.user,{[f.userActive]:l}),onClick:()=>i(u=>!u)},Q.default.createElement(X.Group,{spacing:7},Q.default.createElement(Le,{value:r,radius:"xl",size:24}),Q.default.createElement(X.Text,{size:"sm",className:f.userName},(0,yr.formatHumanName)(r?.name?.[0])),Q.default.createElement(Dn,{size:12,stroke:1.5})))),Q.default.createElement(X.Menu.Dropdown,null,Q.default.createElement(X.Stack,{align:"center",p:"xl"},Q.default.createElement(Le,{size:"xl",radius:100,value:o.profile}),Q.default.createElement(Cr,{value:o.profile?.name?.[0]}),Q.default.createElement(X.Text,{color:"dimmed",size:"xs"},t.getActiveLogin()?.project.display)),n.length>1&&Q.default.createElement(X.Menu.Divider,null),n.map(u=>u.profile.reference!==(0,yr.getReferenceString)(o.profile)&&Q.default.createElement(X.Menu.Item,{key:u.profile.reference,onClick:()=>{t.setActiveLogin(u).then(()=>window.location.reload()).catch(console.log)}},Q.default.createElement(X.Group,null,Q.default.createElement(X.Avatar,{radius:"xl"}),Q.default.createElement("div",{style:{flex:1}},Q.default.createElement(X.Text,{size:"sm",weight:500},u.profile.display),Q.default.createElement(X.Text,{color:"dimmed",size:"xs"},u.project.display))))),Q.default.createElement(X.Menu.Divider,null),Q.default.createElement(X.Menu.Item,{icon:Q.default.createElement(Un,{size:14,stroke:1.5}),onClick:()=>a("/signin")},"Add another account"),Q.default.createElement(X.Menu.Item,{icon:Q.default.createElement(Nt,{size:14,stroke:1.5}),onClick:()=>a(`/${(0,yr.getReferenceString)(r)}`)},"Account settings"),Q.default.createElement(X.Menu.Item,{icon:Q.default.createElement(En,{size:14,stroke:1.5}),onClick:async()=>{await t.signOut(),a("/signin")}},"Sign out"),Q.default.createElement(X.Text,{size:"xs",color:"dimmed",align:"center"},e.version)))))}var Qe=require("@mantine/core");var he=m(require("react"),1);var ao=require("@mantine/core"),jn=require("@mantine/notifications"),xa=require("@medplum/core");var Eo=m(require("react"),1);var zl=m(require("react"),1);function Kn(e){let o={};for(let t of Array.from(e.elements))t instanceof HTMLInputElement?Du(o,t):t instanceof HTMLTextAreaElement?o[t.name]=t.value:t instanceof HTMLSelectElement&&Tu(o,t);return o}function Du(e,o){o.disabled||(o.type==="checkbox"||o.type==="radio")&&!o.checked||(e[o.name]=o.value)}function Tu(e,o){e[o.name]=o.value}function se(e){return zl.default.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:o=>{o.preventDefault();let t=Kn(o.target);e.onSubmit&&e.onSubmit(t)}},e.children)}function Wl(e){let o=T(),t=o.getUserConfiguration();function r(a){let{menuname:n,bookmarkname:f}=a,s=`${e.pathname}?${e.searchParams.toString()}`,l=(0,xa.deepClone)(t);l.menu?.find(({title:u})=>u===n)?.link?.push({name:f,target:s}),o.updateResource(l).then(u=>{t.menu=u.menu,o.dispatchEvent({type:"change"}),(0,jn.showNotification)({color:"green",message:"Success"}),e.onOk()}).catch(u=>{(0,jn.showNotification)({color:"red",message:(0,xa.normalizeErrorString)(u)})})}return Eo.default.createElement(ao.Modal,{title:"Add Bookmark",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},Eo.default.createElement(se,{onSubmit:r},Eo.default.createElement(ao.Stack,null,Eo.default.createElement(ku,{config:t}),Eo.default.createElement(ao.TextInput,{label:"Bookmark Name",type:"text",name:"bookmarkname",placeholder:"Bookmark Name",withAsterisk:!0}),Eo.default.createElement(ao.Group,{position:"right"},Eo.default.createElement(ao.Button,{mt:"sm",type:"submit"},"OK")))))}function ku(e){function o(r){return r?.menu?.map(a=>a.title)}let t=o(e.config);return Eo.default.createElement(ao.NativeSelect,{name:"menuname",defaultValue:t[0],label:"Select Menu Option",placeholder:"Menu",data:t,withAsterisk:!0})}var Vt=m(require("react"),1);var ga=m(require("react"),1);var Ia=m(require("react"),1);function _n(e){return typeof e.code=="string"?e.code:JSON.stringify(e)}function Bu(e){return typeof e.display=="string"?e.display:_n(e)}function Au(e){return{value:_n(e),label:Bu(e),resource:e}}function Mu(e){return{code:e,display:e}}function Ht(e){let o=T(),{binding:t,creatable:r,clearable:a,...n}=e,f=(0,Ia.useCallback)(async(s,l)=>{if(!t)return[];let u=(await o.searchValueSet(t,s,{signal:l})).expansion?.contains,c=[];for(let d of u)d.code&&!c.some(g=>g.code===d.code)&&c.push(d);return c},[o,t]);return Ia.default.createElement(gt,{...n,creatable:r??!0,clearable:a??!0,toKey:_n,toOption:Au,loadOptions:f,onCreate:Mu,getCreateLabel:r===!1?void 0:s=>`+ Create ${s}`})}function vr(e){let[o,t]=(0,ga.useState)(e.defaultValue);function r(a){let n=a[0],f=wu(n);t(f),e.onChange&&e.onChange(f)}return ga.default.createElement(Ht,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:Fu(o),onChange:r,creatable:e.creatable,maxSelectedValues:e.maxSelectedValues??1,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable})}function Fu(e){return e?{code:e}:void 0}function wu(e){return e?.code}function qt(e){let[o,t]=(0,Vt.useState)(e.defaultValue),r=e.onChange,a=(0,Vt.useCallback)(n=>{t(n),r&&r(n)},[r]);return Vt.default.createElement(vr,{"data-autofocus":e.autoFocus,"data-testid":e.testId,defaultValue:o,onChange:a,name:e.name,placeholder:e.placeholder,binding:"https://medplum.com/fhir/ValueSet/resource-types",creatable:!1,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var Xl=(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 Zn(e){let{classes:o}=Xl(),t=Mo(),r=Lu(e.pathname,e.searchParams,e.menus),[a,n]=(0,he.useState)(!1);function f(l,i){l.stopPropagation(),l.preventDefault(),t(i),window.innerWidth<768&&e.closeNavbar()}function s(l){l&&t(`/${l}`)}return he.default.createElement(he.default.Fragment,null,he.default.createElement(Qe.Navbar,{width:{sm:250},p:"xs"},he.default.createElement(Qe.ScrollArea,null,!e.resourceTypeSearchDisabled&&he.default.createElement(Qe.Navbar.Section,{mb:"sm"},he.default.createElement(qt,{key:window.location.pathname,name:"resourceType",placeholder:"Resource Type",onChange:l=>s(l)})),he.default.createElement(Qe.Navbar.Section,{grow:!0},e.menus?.map(l=>he.default.createElement(he.default.Fragment,{key:`menu-${l.title}`},he.default.createElement(Qe.Text,{className:o.menuTitle},l.title),l.links?.map(i=>he.default.createElement(Ou,{key:i.href,to:i.href,active:i.href===r?.href,onClick:u=>f(u,i.href)},he.default.createElement(Eu,{to:i.href,icon:i.icon}),he.default.createElement("span",null,i.label))))),e.displayAddBookmark&&he.default.createElement(Qe.Button,{variant:"subtle",size:"xs",mt:"xl",leftIcon:he.default.createElement(Hn,{size:"0.75rem"}),onClick:()=>n(!0)},"Add Bookmark")))),e.pathname&&e.searchParams&&he.default.createElement(Wl,{pathname:e.pathname,searchParams:e.searchParams,visible:a,onOk:()=>n(!1),onCancel:()=>n(!1)}))}function Ou(e){let{classes:o,cx:t}=Xl();return he.default.createElement(Te,{onClick:e.onClick,to:e.to,className:t(o.link,{[o.linkActive]:e.active})},e.children)}function Eu(e){return e.icon?e.icon:he.default.createElement(Qe.Space,{w:30})}function Lu(e,o,t){if(!e||!o||!t)return;let r,a=0;for(let n of t)if(n.links)for(let f of n.links){let s=Ru(e,o,f.href);s>a&&(a=s,r=f)}return r}function Ru(e,o,t){let r=new URL(t,"https://example.com");if(e!==r.pathname)return 0;let a=["_count","_offset"];for(let[f,s]of r.searchParams.entries())if(!a.includes(f)&&o.get(f)!==s)return 0;let n=1;for(let[f,s]of o.entries())a.includes(f)||r.searchParams.get(f)===s&&n++;return n}function Nu(e){let o=(0,ha.useMantineTheme)(),[t,r]=(0,ze.useState)(localStorage.navbarOpen==="true"),a=T(),n=cr();(0,ze.useEffect)(()=>{function i(){(0,Jl.showNotification)({color:"red",message:"No connection to server",autoClose:!1})}return a.addEventListener("offline",i),()=>a.removeEventListener("offline",i)},[a]);function f(i){localStorage.navbarOpen=i.toString(),r(i)}function s(){f(!1)}function l(){f(!t)}return a.isLoading()?ze.default.createElement(ia,null):ze.default.createElement(ha.AppShell,{styles:{main:{background:o.colorScheme==="dark"?o.colors.dark[8]:o.colors.gray[0]}},padding:0,fixed:!0,header:n&&ze.default.createElement($n,{pathname:e.pathname,searchParams:e.searchParams,headerSearchDisabled:e.headerSearchDisabled,logo:e.logo,version:e.version,navbarToggle:l}),navbar:n&&t?ze.default.createElement(Zn,{pathname:e.pathname,searchParams:e.searchParams,menus:e.menus,closeNavbar:s,displayAddBookmark:e.displayAddBookmark,resourceTypeSearchDisabled:e.resourceTypeSearchDisabled}):void 0},ze.default.createElement(It,{key:`${e.pathname}?${e.searchParams?.toString()}`},ze.default.createElement(ze.Suspense,{fallback:ze.default.createElement(ia,null)},e.children)))}var Ca=m(require("react"),1);var $l=require("@mantine/core"),Lo=m(require("react"),1);function io(e){let{contentType:o,url:t,title:r}=e.value??{};return t?Lo.default.createElement("div",{"data-testid":"attachment-display"},o?.startsWith("image/")&&Lo.default.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:t,alt:r}),o?.startsWith("video/")&&Lo.default.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},Lo.default.createElement("source",{type:o,src:t})),o==="application/pdf"&&Lo.default.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},Lo.default.createElement("iframe",{width:"100%",height:"400",src:t+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),Lo.default.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},Lo.default.createElement($l.Anchor,{href:t,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer",download:Hu(r)},r||"Download"))):null}function Hu(e){return e?.includes(".")?e:void 0}function Yn(e){return Ca.default.createElement("div",null,e.values?.map((o,t)=>Ca.default.createElement("div",{key:"attatchment-"+t},Ca.default.createElement(io,{value:o,maxWidth:e.maxWidth}))))}var ef=require("@mantine/core");var me=m(require("react"),1);var Gt=m(require("react"),1);var Kl=require("@medplum/core");function Ct(e){let o=T(),t=(0,Gt.useRef)(null);function r(f){q(f),t.current?.click()}function a(f){q(f);let s=f.target.files;s&&Array.from(s).forEach(n)}function n(f){if(!f||!f.name)return;e.onUploadStart&&e.onUploadStart();let l=f.name,i=f.type||"application/octet-stream";o.createBinary(f,l,i,e.onUploadProgress).then(u=>{e.onUpload({contentType:u.contentType,url:u.url,title:l})}).catch(u=>{e.onUploadError&&e.onUploadError((0,Kl.normalizeOperationOutcome)(u))})}return Gt.default.createElement(Gt.default.Fragment,null,Gt.default.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:t,onChange:f=>a(f)}),e.children({onClick:r}))}function of(e){let[o,t]=(0,me.useState)(e.defaultValue??[]),r=(0,me.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return me.default.createElement("table",{style:{width:"100%"}},me.default.createElement("colgroup",null,me.default.createElement("col",{width:"97%"}),me.default.createElement("col",{width:"3%"})),me.default.createElement("tbody",null,o.map((n,f)=>me.default.createElement("tr",{key:`${f}-${o.length}`},me.default.createElement("td",null,me.default.createElement(io,{value:n,maxWidth:200})),me.default.createElement("td",null,me.default.createElement(ef.ActionIcon,{title:"Remove",size:"sm",onClick:s=>{q(s);let l=o.slice();l.splice(f,1),a(l)}},me.default.createElement(Zo,null))))),me.default.createElement("tr",null,me.default.createElement("td",null),me.default.createElement("td",null,me.default.createElement(Ct,{onUpload:n=>{a([...r.current,n])}},n=>me.default.createElement(ef.ActionIcon,{...n,title:"Add",size:"sm",color:"green"},me.default.createElement(xr,{size:16})))))))}var tf=require("@mantine/core"),Ro=m(require("react"),1);function Sr(e){let[o,t]=(0,Ro.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return o?Ro.default.createElement(Ro.default.Fragment,null,Ro.default.createElement(io,{value:o,maxWidth:200}),Ro.default.createElement(tf.Button,{onClick:a=>{q(a),r(void 0)}},"Remove")):Ro.default.createElement(Ct,{onUpload:r},a=>Ro.default.createElement(tf.Button,{...a},"Upload..."))}var Pa=require("@medplum/core"),zt=m(require("react"),1);var ya=["meta","implicitRules","contained","extension","modifierExtension"],va=["language","text"];var jl=require("@mantine/core"),Ut=m(require("react"),1),Vu=(0,jl.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 rf(e){let{children:o,compact:t}=e,{classes:r,cx:a}=Vu();return Ut.default.createElement("dl",{className:a(r.root,{[r.compact]:t})},o)}function af(e){return Ut.default.createElement(Ut.default.Fragment,null,Ut.default.createElement("dt",null,e.term),Ut.default.createElement("dd",null,e.children))}var et=require("@mantine/core"),L=require("@medplum/core");var N=m(require("react"),1);var _l=require("@medplum/core"),nf=m(require("react"),1);function yt(e){return nf.default.createElement(nf.default.Fragment,null,(0,_l.formatCodeableConcept)(e.value))}var Zl=require("@medplum/core"),ff=m(require("react"),1);function lf(e){return ff.default.createElement(ff.default.Fragment,null,(0,Zl.formatCoding)(e.value))}var Sa=m(require("react"),1);var sf=m(require("react"),1);function br(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("]")),sf.default.createElement(sf.default.Fragment,null,t.join("").trim())}function uf(e){let o=e.value;return o?Sa.default.createElement(Sa.default.Fragment,null,o.name,o.name&&": ",o.telecom?.map(t=>Sa.default.createElement(br,{key:`telecom-${o.name}-${t.value}`,value:t}))):null}var Yl=m(require("react"),1);function df(e){return Yl.default.createElement("div",null,e.value?.system,": ",e.value?.value)}var es=require("@medplum/core"),cf=m(require("react"),1);function mf(e){return cf.default.createElement(cf.default.Fragment,null,(0,es.formatMoney)(e.value))}var os=require("@medplum/core"),pf=m(require("react"),1);function No(e){return pf.default.createElement(pf.default.Fragment,null,(0,os.formatQuantity)(e.value))}var ts=require("@medplum/core"),xf=m(require("react"),1);function Pr(e){return xf.default.createElement(xf.default.Fragment,null,(0,ts.formatRange)(e.value))}var Dr=m(require("react"),1);function rs(e){let o=e.value;return o?Dr.default.createElement(Dr.default.Fragment,null,Dr.default.createElement(No,{value:o.numerator}),"\xA0/\xA0",Dr.default.createElement(No,{value:o.denominator})):null}var as=require("@medplum/core"),ba=m(require("react"),1);function Yo(e){if(!e.value)return null;let o=e.value.display||e.value.reference||(0,as.stringify)(e.value);return e.link!==!1&&e.value.reference?ba.default.createElement(Te,{to:e.value},o):ba.default.createElement(ba.default.Fragment,null,o)}var vt=m(require("react"),1);function If(e){let{property:o,values:t}=e,r=o.type[0].code;return e.values?vt.default.createElement(vt.default.Fragment,null,t.map((a,n)=>vt.default.createElement("div",{key:`${n}-${t.length}`},vt.default.createElement(Me,{arrayElement:!0,property:o,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link})))):vt.default.createElement(vt.default.Fragment,null)}function Me(e){let{property:o,propertyType:t,value:r}=e;if(o?.path?.endsWith(".id"))return N.default.createElement(et.Box,{component:"div",sx:{display:"flex",gap:3,alignItems:"center"}},r,!(0,L.isEmpty)(r)&&N.default.createElement(et.CopyButton,{value:r,timeout:2e3},({copied:n,copy:f})=>N.default.createElement(et.Tooltip,{label:n?"Copied":"Copy",withArrow:!0,position:"right"},N.default.createElement(et.ActionIcon,{color:n?"teal":"gray",onClick:f},n?N.default.createElement(pr,{size:"1rem"}):N.default.createElement(kn,{size:"1rem"})))));if(o?.max&&o.max>1&&!e.arrayElement)return t===L.PropertyType.Attachment?N.default.createElement(Yn,{values:r,maxWidth:e.maxWidth}):N.default.createElement(If,{property:o,values:r,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(t){case L.PropertyType.boolean:return N.default.createElement(N.default.Fragment,null,r===void 0?"":(!!r).toString());case L.PropertyType.SystemString:case L.PropertyType.string:return N.default.createElement("div",{style:{whiteSpace:"pre-wrap"}},r);case L.PropertyType.code:case L.PropertyType.date:case L.PropertyType.decimal:case L.PropertyType.integer:case L.PropertyType.positiveInt:case L.PropertyType.unsignedInt:case L.PropertyType.uri:case L.PropertyType.url:return N.default.createElement(N.default.Fragment,null,r);case L.PropertyType.canonical:return N.default.createElement(Yo,{value:{reference:r},link:e.link});case L.PropertyType.dateTime:case L.PropertyType.instant:return N.default.createElement(N.default.Fragment,null,(0,L.formatDateTime)(r));case L.PropertyType.markdown:return N.default.createElement("pre",null,r);case L.PropertyType.Address:return N.default.createElement(cn,{value:r});case L.PropertyType.Annotation:return N.default.createElement(N.default.Fragment,null,r?.text);case L.PropertyType.Attachment:return N.default.createElement(io,{value:r,maxWidth:e.maxWidth});case L.PropertyType.CodeableConcept:return N.default.createElement(yt,{value:r});case L.PropertyType.Coding:return N.default.createElement(lf,{value:r});case L.PropertyType.ContactDetail:return N.default.createElement(uf,{value:r});case L.PropertyType.ContactPoint:return N.default.createElement(br,{value:r});case L.PropertyType.HumanName:return N.default.createElement(Cr,{value:r});case L.PropertyType.Identifier:return N.default.createElement(df,{value:r});case L.PropertyType.Money:return N.default.createElement(mf,{value:r});case L.PropertyType.Period:return N.default.createElement(N.default.Fragment,null,(0,L.formatPeriod)(r));case L.PropertyType.Quantity:case L.PropertyType.Duration:return N.default.createElement(No,{value:r});case L.PropertyType.Range:return N.default.createElement(Pr,{value:r});case L.PropertyType.Ratio:return N.default.createElement(rs,{value:r});case L.PropertyType.Reference:return N.default.createElement(Yo,{value:r,link:e.link});case L.PropertyType.Timing:return N.default.createElement(N.default.Fragment,null,(0,L.formatTiming)(r));case L.PropertyType.Dosage:case L.PropertyType.UsageContext:return N.default.createElement(Qt,{value:{type:t,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues});default:if(!o)throw Error(`Displaying property of type ${e.propertyType} requires element schema`);return N.default.createElement(Qt,{value:{type:o.type[0].code,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}var ns=require("@medplum/core");function je(e,o){let t=(0,ns.getTypedPropertyValue)(e,o);return t?Array.isArray(t)?[t.map(r=>r.value),t[0].type]:[t.value,t.type]:[void 0,"undefined"]}function Qt(e){let o=e.value,t=o.value;if(!t)return null;let r=o.type,a=(0,Pa.tryGetDataType)(r);return a?typeof t=="object"&&"name"in t&&Object.keys(t).length===1&&typeof t.name=="string"?zt.default.createElement("div",null,t.name):zt.default.createElement(rf,{compact:e.compact},Object.entries(a.elements).map(n=>{let[f,s]=n;if(ya.includes(f)||va.includes(f)&&s.path.split(".").length===2)return null;let[l,i]=je(o,f);return e.ignoreMissingValues&&(!l||Array.isArray(l)&&l.length===0)?null:zt.default.createElement(af,{key:f,term:(0,Pa.getPropertyDisplayName)(f)},zt.default.createElement(Me,{property:s,propertyType:i,value:l,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))})):zt.default.createElement("div",null,r,"\xA0not implemented")}var Ds=require("@mantine/core"),Rr=require("@medplum/core"),qo=m(require("react"),1);var Da=require("@mantine/core"),Tr=m(require("react"),1);function kr(e){return Tr.default.createElement(Da.Group,{noWrap:!0},Tr.default.createElement("div",null,e.children),Tr.default.createElement("div",null,Tr.default.createElement(Da.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk},(()=>null)())))}var ls=require("@mantine/core"),ss=m(require("react"),1);function Fe(e,o){return e?.issue?.filter(t=>fs(t.expression?.[0],o))?.map(t=>t.details?.text)?.join(`
|
|
65
|
+
`)}function Br(e,o){return e?.issue?.filter(t=>fs(t.expression?.[0],o))}function fs(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 We(e){return ss.default.createElement(ls.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk,error:Fe(e.outcome,e.htmlFor)},e.children)}var is=require("@medplum/core");function Ar(e,o,t,r,a){let n=r.type;if(n.length>1)for(let f of n){let s=o.replace("[x]",(0,is.capitalize)(f.code));s in e&&delete e[s]}return e[t]=a,e}var fo=require("@mantine/core"),R=require("@medplum/core"),G=m(require("react"),1);var Ta=m(require("react"),1);function gf(e){let[o,t]=(0,Ta.useState)(e.defaultValue);function r(a){let n=Gu(a);t(n),e.onChange&&e.onChange(n)}return Ta.default.createElement(Ht,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&qu(o),maxSelectedValues:1,onChange:r})}function qu(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function Gu(e){if(e.length!==0)return{coding:e.map(o=>({system:o.system,code:o.code,display:o.display}))}}var ka=m(require("react"),1);function Mr(e){let[o,t]=(0,ka.useState)(e.defaultValue);function r(a){let n=a[0],f=n&&Qu(n);t(f),e.onChange&&e.onChange(f)}return ka.default.createElement(Ht,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&Uu(o),maxSelectedValues:1,onChange:r})}function Uu(e){return{system:e.system,code:e.code,display:e.display}}function Qu(e){return{system:e.system,code:e.code,display:e.display}}var Ba=require("@mantine/core"),ot=m(require("react"),1);var St=require("@mantine/core"),Ho=m(require("react"),1);function Fr(e){let[o,t]=(0,Ho.useState)(e.defaultValue),r=(0,Ho.useRef)();r.current=o;function a(l){l&&Object.keys(l).length===0&&(l=void 0),t(l),e.onChange&&e.onChange(l)}function n(l){let i={...r.current,system:l};l||delete i.system,a(i)}function f(l){let i={...r.current,use:l};l||delete i.use,a(i)}function s(l){let i={...r.current,value:l};l||delete i.value,a(i)}return Ho.default.createElement(St.Group,{spacing:"xs",grow:!0,noWrap:!0},Ho.default.createElement(St.NativeSelect,{"data-testid":"system",defaultValue:o?.system,onChange:l=>n(l.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),Ho.default.createElement(St.NativeSelect,{"data-testid":"use",defaultValue:o?.use,onChange:l=>f(l.currentTarget.value),data:["","home","work","temp","old","mobile"]}),Ho.default.createElement(St.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:l=>s(l.currentTarget.value)}))}function hf(e){let[o,t]=(0,ot.useState)(e.defaultValue),r=(0,ot.useRef)();r.current=o;function a(s){t(s),e.onChange&&e.onChange(s)}function n(s){let l={...r.current,name:s};s||delete l.name,a(l)}function f(s){let l={...r.current,telecom:s&&[s]};s||delete l.telecom,a(l)}return ot.default.createElement(Ba.Group,{spacing:"xs",grow:!0,noWrap:!0},ot.default.createElement(Ba.TextInput,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:o?.name,onChange:s=>n(s.currentTarget.value)}),ot.default.createElement(Fr,{name:e.name+"-telecom",defaultValue:o?.telecom?.[0],onChange:f}))}var us=require("@mantine/core"),ds=m(require("react"),1);var Cf=require("@medplum/core");function yf(e){if(!e)return"";let o=new Date(e);return(0,Cf.isValidDate)(o)?o.toLocaleDateString("sv")+"T"+o.toLocaleTimeString("sv"):""}function vf(e){if(!e)return"";let o=new Date(e);return(0,Cf.isValidDate)(o)?o.toISOString():""}function no(e){return ds.default.createElement(us.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:zu(),defaultValue:yf(e.defaultValue),autoFocus:e.autoFocus,error:Fe(e.outcome,e.name),onChange:o=>{if(e.onChange){let t=o.currentTarget.value;e.onChange(vf(t))}}})}function zu(){return"datetime-local"}var cs=require("@mantine/core"),ms=require("@medplum/core"),ps=m(require("react"),1);function xs(e){return ps.default.createElement(cs.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:(0,ms.stringify)(e.defaultValue),deserialize:JSON.parse,onChange:o=>{e.onChange&&e.onChange(JSON.parse(o))}})}var Vo=require("@mantine/core"),uo=m(require("react"),1);function Sf(e){let[o,t]=(0,uo.useState)(e.defaultValue),r=(0,uo.useRef)();r.current=o;function a(u){t(u),e.onChange&&e.onChange(u)}function n(u){a({...r.current,use:u||void 0})}function f(u){a({...r.current,prefix:u?u.split(" "):void 0})}function s(u){a({...r.current,given:u?u.split(" "):void 0})}function l(u){a({...r.current,family:u||void 0})}function i(u){a({...r.current,suffix:u?u.split(" "):void 0})}return uo.default.createElement(Vo.Group,{spacing:"xs",grow:!0,noWrap:!0},uo.default.createElement(Vo.NativeSelect,{defaultValue:o?.use,name:e.name+"-use","data-testid":"use",onChange:u=>n(u.currentTarget.value),data:["","temp","old","usual","official","nickname","anonymous","maiden"]}),uo.default.createElement(Vo.TextInput,{placeholder:"Prefix",name:e.name+"-prefix",defaultValue:o?.prefix?.join(" "),onChange:u=>f(u.currentTarget.value)}),uo.default.createElement(Vo.TextInput,{placeholder:"Given",name:e.name+"-given",defaultValue:o?.given?.join(" "),onChange:u=>s(u.currentTarget.value)}),uo.default.createElement(Vo.TextInput,{name:e.name+"-family",placeholder:"Family",defaultValue:o?.family,onChange:u=>l(u.currentTarget.value)}),uo.default.createElement(Vo.TextInput,{placeholder:"Suffix",name:e.name+"-suffix",defaultValue:o?.suffix?.join(" "),onChange:u=>i(u.currentTarget.value)}))}var wr=require("@mantine/core"),Wt=m(require("react"),1);function bf(e){let[o,t]=(0,Wt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Wt.default.createElement(wr.Group,{spacing:"xs",grow:!0,noWrap:!0},Wt.default.createElement(wr.TextInput,{placeholder:"System",defaultValue:o?.system,onChange:a=>r({...o,system:a.currentTarget.value})}),Wt.default.createElement(wr.TextInput,{placeholder:"Value",defaultValue:o?.value,onChange:a=>r({...o,value:a.currentTarget.value})}))}var Aa=require("@mantine/core");var ho=m(require("react"),1),Wu=["USD","EUR","CAD","GBP","AUD"];function Pf(e){let{onChange:o}=e,[t,r]=(0,ho.useState)(e.defaultValue),a=(0,ho.useCallback)(l=>{r(l),o&&o(l)},[o]),n=(0,ho.useCallback)(l=>{a({...t,currency:l.currentTarget.value})},[t,a]),f=(0,ho.useCallback)(l=>{a({...t,value:l.currentTarget.valueAsNumber})},[t,a]),s=ho.default.createElement(Aa.NativeSelect,{defaultValue:t?.currency,data:Wu,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:n});return ho.default.createElement(Aa.TextInput,{type:"number",label:e.label,placeholder:e.placeholder??"Value",defaultValue:t?.value?.toString()??"USD",icon:ho.default.createElement(Bn,{size:14}),rightSection:s,rightSectionWidth:92,onChange:f})}var Is=require("@mantine/core"),Xt=m(require("react"),1);function gs(e){let[o,t]=(0,Xt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Xt.default.createElement(Is.Group,{spacing:"xs",grow:!0,noWrap:!0},Xt.default.createElement(no,{name:e.name+".start",placeholder:"Start",defaultValue:o?.start,onChange:a=>r({...o,start:a})}),Xt.default.createElement(no,{name:e.name+".end",placeholder:"End",defaultValue:o?.end,onChange:a=>r({...o,end:a})}))}var Pt=require("@mantine/core"),bt=m(require("react"),1);function _e(e){let[o,t]=(0,bt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return bt.default.createElement(Pt.Group,{spacing:"xs",grow:!0,noWrap:!0},bt.default.createElement(Pt.NativeSelect,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:o?.comparator,data:["","<","<=",">=",">"],onChange:a=>r({...o,comparator:a.currentTarget.value})}),bt.default.createElement(Pt.TextInput,{id:e.name,name:e.name,required:e.required,"data-autofocus":e.autoFocus,"data-testid":e.name+"-value",type:"number",placeholder:"Value",defaultValue:o?.value,autoFocus:e.autoFocus,step:"any",onWheel:a=>{e.disableWheel&&a.currentTarget.blur()},onChange:a=>{r({...o,value:Xu(a.currentTarget.value)})}}),bt.default.createElement(Pt.TextInput,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:o?.unit,onChange:a=>r({...o,unit:a.currentTarget.value})}))}function Xu(e){if(e)return parseFloat(e)}var hs=require("@mantine/core"),Jt=m(require("react"),1);function $t(e){let[o,t]=(0,Jt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Jt.default.createElement(hs.Group,{spacing:"xs",grow:!0,noWrap:!0},Jt.default.createElement(_e,{name:e.name+"-low",defaultValue:o?.low,onChange:a=>r({...o,low:a})}),Jt.default.createElement(_e,{name:e.name+"-high",defaultValue:o?.high,onChange:a=>r({...o,high:a})}))}var Cs=require("@mantine/core"),Kt=m(require("react"),1);function ys(e){let[o,t]=(0,Kt.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Kt.default.createElement(Cs.Group,{spacing:"xs",grow:!0,noWrap:!0},Kt.default.createElement(_e,{name:e.name+"-numerator",defaultValue:o?.numerator,onChange:a=>r({...o,numerator:a})}),Kt.default.createElement(_e,{name:e.name+"-denominator",defaultValue:o?.denominator,onChange:a=>r({...o,denominator:a})}))}var Ma=require("@mantine/core"),vs=require("@medplum/core"),tt=m(require("react"),1);var Or=require("@mantine/core"),Er=require("@medplum/core");var He=m(require("react"),1);var Ju={Observation:"code",User:"email:contains"},$u=["AccessPolicy","Account","ActivityDefinition","Bot","CapabilityStatement","ClientApplication","CodeSystem","CompartmentDefinition","ConceptMap","EffectEvidenceSynthesis","Endpoint","EventDefinition","Evidence","EvidenceVariable","ExampleScenario","GraphDefinition","HealthcareService","ImplementationGuide","InsurancePlan","Library","Location","Measure","MedicinalProduct","MessageDefinition","NamingSystem","OperationDefinition","Organization","Patient","Person","PlanDefinition","Practitioner","Project","Questionnaire","RelatedPerson","ResearchDefinition","ResearchElementDefinition","RiskEvidenceSynthesis","SearchParameter","StructureDefinition","StructureMap","TerminologyCapabilities","TestScript","UserConfiguration","ValueSet"];function Ku(e){return{value:(0,Er.getReferenceString)(e),label:(0,Er.getDisplayString)(e),resource:e}}function Lr(e){let o=T(),t=e.resourceType,[r,a]=(0,He.useState)(),n=Z(e.defaultValue,a),f=e.onChange,s=(0,He.useCallback)(async(i,u)=>{let c=_u(t),d=new URLSearchParams({[c]:i,_count:"10"});return await o.searchResources(t,d,{signal:u})},[o,t]),l=(0,He.useCallback)(i=>{f&&f(i[0])},[f]);return e.defaultValue&&!r&&!n?null:He.default.createElement(gt,{name:e.name,required:e.required,itemComponent:ju,defaultValue:n,placeholder:e.placeholder,maxSelectedValues:1,toKey:Er.getReferenceString,toOption:Ku,loadOptions:s,onChange:l,clearable:!0})}var ju=(0,He.forwardRef)(({label:e,resource:o,...t},r)=>He.default.createElement("div",{ref:r,...t},He.default.createElement(Or.Group,{noWrap:!0},He.default.createElement(Le,{value:o}),He.default.createElement("div",null,He.default.createElement(Or.Text,null,e),He.default.createElement(Or.Text,{size:"xs",color:"dimmed"},o.birthDate)))));function _u(e){return Ju[e]??($u.includes(e)?"name":"_id")}function Dt(e){let o=Zu(e.targetTypes),t=Yu(e.defaultValue,o),[r,a]=(0,tt.useState)(e.defaultValue),[n,f]=(0,tt.useState)(t);function s(l){a(l),e.onChange&&e.onChange(l)}return tt.default.createElement(Ma.Group,{spacing:"xs",grow:!0,noWrap:!0},o&&o.length>1&&tt.default.createElement(Ma.NativeSelect,{"data-autofocus":e.autoFocus,"data-testid":"reference-input-resource-type-select",defaultValue:n,autoFocus:e.autoFocus,onChange:l=>f(l.currentTarget.value),data:o}),!o&&tt.default.createElement(qt,{autoFocus:e.autoFocus,testId:"reference-input-resource-type-input",defaultValue:n,onChange:f,name:e.name+"-resourceType",placeholder:"Resource Type"}),tt.default.createElement(Lr,{resourceType:n,name:e.name+"-id",required:e.required,placeholder:e.placeholder,defaultValue:r,onChange:l=>{s(l?(0,vs.createReference)(l):void 0)}}))}function Zu(e){if(!(!e||e.length===0||e.length===1&&e[0]==="Resource"))return e}function Yu(e,o){let t=e?.reference?.split("/")[0];if(t)return t;if(o&&o.length>0)return o[0]}var rt=require("@mantine/core");var Re=m(require("react"),1);function Df(e){let[o,t]=(0,Re.useState)(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),r=(0,Re.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return Re.default.createElement(rt.Stack,{style:{marginTop:"1rem",marginLeft:"1rem"}},o.map((n,f)=>Re.default.createElement(rt.Group,{key:`${f}-${o.length}`,noWrap:!0},Re.default.createElement("div",{style:{flexGrow:1}},Re.default.createElement(Co,{arrayElement:!0,property:e.property,name:e.name+"."+f,defaultValue:n,onChange:s=>{let l=[...r.current];l[f]=s,a(l)}})),Re.default.createElement("div",null,Re.default.createElement(rt.ActionIcon,{title:"Remove",size:"sm",onClick:s=>{q(s);let l=[...r.current];l.splice(f,1),a(l)}},Re.default.createElement(Zo,null))))),Re.default.createElement(rt.Group,{noWrap:!0,style:{justifyContent:"flex-end"}},Re.default.createElement("div",null,Re.default.createElement(rt.ActionIcon,{title:"Add",size:"sm",color:"green",onClick:n=>{q(n);let f=[...r.current];f.push(void 0),a(f)}},Re.default.createElement(Et,null)))))}var Ce=require("@mantine/core"),bs=require("@medplum/core"),K=m(require("react"),1);var ed=["sun","mon","tue","wed","thu","fri","sat"];function Tf(e){let[o,t]=(0,K.useState)(e.defaultValue),[r,a]=(0,K.useState)(!1),n=(0,K.useRef)();return n.current=o,K.default.createElement(K.default.Fragment,null,K.default.createElement(Ce.Group,{spacing:"xs",grow:!0,noWrap:!0},K.default.createElement("span",null,(0,bs.formatTiming)(n.current)||"No repeat"),K.default.createElement(Ce.Button,{onClick:()=>a(!0)},"Edit")),K.default.createElement(od,{visible:r,defaultValue:n.current,onOk:f=>{e.onChange&&e.onChange(f),t(f),a(!1)},onCancel:()=>a(!1)}))}var Ss={repeat:{period:1,periodUnit:"d"}};function od(e){let[o,t]=(0,K.useState)(e.defaultValue||Ss),r=(0,K.useRef)();r.current=o;function a(i){t({...r.current,event:[i]})}function n(i){t({...r.current,repeat:i})}function f(i){n({...r.current?.repeat,period:i})}function s(i){n({...r.current?.repeat,periodUnit:i})}function l(i){n({...r.current?.repeat,dayOfWeek:i})}return K.default.createElement(Ce.Modal,{title:"Timing",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>e.onCancel()},K.default.createElement(Ce.Stack,null,K.default.createElement(We,{title:"Starts on",htmlFor:"timing-dialog-start"},K.default.createElement(no,{name:"timing-dialog-start",onChange:i=>a(i)})),K.default.createElement(Ce.Switch,{label:"Repeat",checked:!!o.repeat,onChange:i=>n(i.currentTarget.checked?Ss.repeat:void 0)}),o.repeat&&K.default.createElement(K.default.Fragment,null,K.default.createElement(We,{title:"Repeat every",htmlFor:"timing-dialog-period"},K.default.createElement(Ce.Group,{spacing:"xs",grow:!0,noWrap:!0},K.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)}),K.default.createElement(Ce.NativeSelect,{id:"timing-dialog-periodUnit",name:"timing-dialog-periodUnit",defaultValue:o.repeat.periodUnit,onChange:i=>s(i.currentTarget.value),data:[{label:"second",value:"s"},{label:"minute",value:"min"},{label:"hour",value:"h"},{label:"day",value:"d"},{label:"week",value:"wk"},{label:"month",value:"mo"},{label:"year",value:"a"}]}))),o.repeat.periodUnit==="wk"&&K.default.createElement(We,{title:"Repeat on"},K.default.createElement(Ce.Chip.Group,{multiple:!0,onChange:l},K.default.createElement(Ce.Group,{position:"apart",mt:"md",spacing:"xs"},ed.map(i=>K.default.createElement(Ce.Chip,{key:i,value:i,size:"xs",radius:"xl"},i.charAt(0).toUpperCase())))))),K.default.createElement(Ce.Group,{position:"right"},K.default.createElement(Ce.Button,{onClick:()=>e.onOk(o)},"OK"))))}function Co(e){let o=e.property,t=e.defaultPropertyType??o.type[0].code,r=e.name,a=e.defaultValue;if(o.max>1&&!e.arrayElement)return t===R.PropertyType.Attachment?G.default.createElement(of,{name:r,defaultValue:a,onChange:e.onChange}):G.default.createElement(Df,{property:o,name:r,defaultValue:a,onChange:e.onChange});let n=o.type;return n.length>1?G.default.createElement(Ps,{elementDefinitionTypes:n,...e}):G.default.createElement(kf,{elementDefinitionType:n[0],...e})}function Ps(e){let o=e.elementDefinitionTypes,t;e.defaultPropertyType&&(t=o.find(n=>n.code===e.defaultPropertyType)),t||(t=o[0]);let[r,a]=(0,G.useState)(t);return G.default.createElement(fo.Group,{spacing:"xs",grow:!0,noWrap:!0},G.default.createElement(fo.NativeSelect,{style:{width:"200px"},defaultValue:r.code,onChange:n=>{a(o.find(f=>f.code===n.currentTarget.value))},data:o.map(n=>({value:n.code,label:n.code}))}),G.default.createElement(kf,{...e,elementDefinitionType:r,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",(0,R.capitalize)(r.code)))}}))}function kf(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(fo.TextInput,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)},error:Fe(e.outcome,r)});case R.PropertyType.date:return G.default.createElement(fo.TextInput,{type:"date",id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)},error:Fe(e.outcome,r)});case R.PropertyType.dateTime:case R.PropertyType.instant:return G.default.createElement(no,{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(fo.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(vr,{binding:o.binding?.valueSet,name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.boolean:return G.default.createElement(fo.Checkbox,{id:r,name:r,"data-testid":r,defaultChecked:!!a,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.checked)}});case R.PropertyType.markdown:return G.default.createElement(fo.Textarea,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)}});case R.PropertyType.Address:return G.default.createElement(mn,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Annotation:return G.default.createElement(pn,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Attachment:return G.default.createElement(Sr,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.CodeableConcept:return G.default.createElement(gf,{binding:o.binding?.valueSet,name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Coding:return G.default.createElement(Mr,{binding:o.binding?.valueSet,name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.ContactDetail:return G.default.createElement(hf,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.ContactPoint:return G.default.createElement(Fr,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Extension:return G.default.createElement(xs,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.HumanName:return G.default.createElement(Sf,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Identifier:return G.default.createElement(bf,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Money:return G.default.createElement(Pf,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Period:return G.default.createElement(gs,{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($t,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Ratio:return G.default.createElement(ys,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Reference:return G.default.createElement(Dt,{name:r,defaultValue:a,targetTypes:td(o),onChange:e.onChange});case R.PropertyType.Timing:return G.default.createElement(Tf,{name:r,defaultValue:a,onChange:e.onChange});case R.PropertyType.Dosage:case R.PropertyType.UsageContext:return G.default.createElement(jt,{typeName:t,defaultValue:a,onChange:e.onChange,outcome:e.outcome});default:return G.default.createElement(jt,{typeName:o.type[0].code,defaultValue:a,onChange:e.onChange,outcome:e.outcome})}}function td(e){return e?.type?.[0]?.targetProfile?.map(o=>o.split("/").pop())}function jt(e){let[o,t]=(0,qo.useState)(e.defaultValue??{});function r(s){t(s),e.onChange&&e.onChange(s)}let a=e.typeName,n=(0,Rr.tryGetDataType)(a);if(!n)return qo.default.createElement("div",null,a,"\xA0not implemented");let f={type:a,value:o};return qo.default.createElement(Ds.Stack,null,Object.entries(n.elements).map(([s,l])=>{if(s==="id"||ya.includes(s)||va.includes(s)&&l.path.split(".").length===2||!l.type)return null;let[i,u]=je(f,s),c=l.min!==void 0&&l.min>0;return l.type.length===1&&l.type[0].code==="boolean"?qo.default.createElement(kr,{key:s,title:(0,Rr.getPropertyDisplayName)(s),description:l.description,htmlFor:s},qo.default.createElement(Co,{property:l,name:s,defaultValue:i,defaultPropertyType:u,outcome:e.outcome,onChange:(d,g)=>{r(Ar(o,s,g??s,l,d))}})):qo.default.createElement(We,{key:s,title:(0,Rr.getPropertyDisplayName)(s),description:l.description,withAsterisk:c,htmlFor:s,outcome:e.outcome},qo.default.createElement(Co,{property:l,name:s,defaultValue:i,defaultPropertyType:u,onChange:(d,g)=>{r(Ar(o,s,g??s,l,d))}}))}))}var Go=require("@mantine/core"),ue=m(require("react"),1);function Ts(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function Fa(){let e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}var rd=(0,Go.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 Bf(e){let{classes:o}=rd(),{onChangeMonth:t,onClick:r}=e,[a,n]=(0,ue.useState)(Fa);function f(l){n(i=>{let u=new Date(i.getTime());return u.setMonth(i.getMonth()+l),t(u),u})}let s=(0,ue.useMemo)(()=>ad(a,e.slots),[a,e.slots]);return ue.default.createElement("div",null,ue.default.createElement(Go.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},ue.default.createElement("p",{style:{flex:1}},Ts(a)),ue.default.createElement(Go.Group,{position:"right",spacing:"xs"},ue.default.createElement(Go.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>f(-1)},"<"),ue.default.createElement(Go.Button,{variant:"outline","aria-label":"Next month",onClick:()=>f(1)},">"))),ue.default.createElement("table",{className:o.table},ue.default.createElement("thead",null,ue.default.createElement("tr",null,ue.default.createElement("th",null,"SUN"),ue.default.createElement("th",null,"MON"),ue.default.createElement("th",null,"TUE"),ue.default.createElement("th",null,"WED"),ue.default.createElement("th",null,"THU"),ue.default.createElement("th",null,"FRI"),ue.default.createElement("th",null,"SAT"))),ue.default.createElement("tbody",null,s.map((l,i)=>ue.default.createElement("tr",{key:"week-"+i},l.map((u,c)=>ue.default.createElement("td",{key:"day-"+c},u&&ue.default.createElement(Go.Button,{disabled:!u.available,onClick:()=>r(u.date)},u.date.getDate()))))))))}function ad(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:nd(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 nd(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 wa=require("@mantine/core"),ks=m(require("react"),1),fd=(0,wa.createStyles)(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function Uo(e){let{children:o,...t}=e,{classes:r}=fd();return ks.default.createElement(wa.Container,{className:r.root,...t},o)}var Us=m(require("react"),1);var de=require("@mantine/core"),kt=require("@mantine/notifications"),Wo=require("@medplum/core");var C=m(require("react"),1);var Y=require("@mantine/core"),lo=require("@medplum/core");var I=m(require("react"),1);var _t=require("@mantine/core"),Af=m(require("react"),1),ld=(0,_t.createStyles)(e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));function Mf({value:e}){let{classes:o}=ld();return e?Af.default.createElement(_t.Stack,{justify:"flex-start",spacing:"xs"},e.map(t=>t.text&&Af.default.createElement(_t.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 As=require("@mantine/core"),Oa=m(require("react"),1);var Bs=require("@mantine/core"),Zt=require("@medplum/core");var Nr=m(require("react"),1);function co(e){let{value:o,link:t,...r}=e,[a,n]=(0,Nr.useState)(),f=Z(o,n),s;if(a&&!(0,Zt.isOk)(a))s=`[${(0,Zt.normalizeErrorString)(a)}]`;else if(f)s=(0,Zt.getDisplayString)(f);else return null;return t?Nr.default.createElement(Te,{to:o,...r},s):Nr.default.createElement(Bs.Text,{component:"span",...r},s)}function Qo(e){return Oa.default.createElement(As.Group,{spacing:"xs"},Oa.default.createElement(Le,{size:24,radius:12,value:e.value,link:e.link}),Oa.default.createElement(co,{value:e.value,link:e.link}))}var Ms=require("@mantine/core"),Fs=m(require("react"),1),sd={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 Hr(e){return Fs.default.createElement(Ms.Badge,{color:sd[e.status]},e.status)}var ws=(0,Y.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}}));Ea.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};function Ea(e){let o=T(),t=Z(e.value),[r,a]=(0,I.useState)();if((0,I.useEffect)(()=>{t?.specimen&&Promise.allSettled(t.specimen.map(f=>o.readReference(f))).then(f=>f.filter(s=>s.status==="fulfilled").map(s=>s.value)).then(a).catch(console.error)},[o,t]),!t)return null;let n=r?.flatMap(f=>f.note||[])||[];if(t.presentedForm&&t.presentedForm.length>0){let f=t.presentedForm[0];f.contentType?.startsWith("text/plain")&&f.data&&n.push({text:window.atob(f.data)})}return I.default.createElement(Y.Stack,null,I.default.createElement(Y.Title,null,"Diagnostic Report"),I.default.createElement(id,{value:t}),r&&!e.hideSpecimenInfo&&ud(r),t.result&&I.default.createElement(Os,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&I.default.createElement(Mf,{value:n}))}function id({value:e}){return I.default.createElement(Y.Group,{mt:"md",spacing:30},e.subject&&I.default.createElement("div",null,I.default.createElement(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),I.default.createElement(Y.Text,null,I.default.createElement(Qo,{value:e.subject,link:!0}))),e.resultsInterpreter?.map(o=>I.default.createElement("div",{key:o.reference},I.default.createElement(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),I.default.createElement(Y.Text,null,I.default.createElement(Qo,{value:o,link:!0})))),e.performer?.map(o=>I.default.createElement("div",{key:o.reference},I.default.createElement(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Performer"),I.default.createElement(Y.Text,null,I.default.createElement(Qo,{value:o,link:!0})))),e.issued&&I.default.createElement("div",null,I.default.createElement(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),I.default.createElement(Y.Text,null,(0,lo.formatDateTime)(e.issued))),e.status&&I.default.createElement("div",null,I.default.createElement(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),I.default.createElement(Y.Text,null,(0,lo.capitalize)(e.status))))}function ud(e){return I.default.createElement(Y.Stack,{spacing:"xs"},I.default.createElement(Y.Title,{order:2,size:"h6"},"Specimens"),I.default.createElement(Y.List,{type:"ordered"},e?.map(o=>I.default.createElement(Y.List.Item,{ml:"sm",key:`specimen-${o.id}`},I.default.createElement(Y.Group,{spacing:20},I.default.createElement(Y.Group,{spacing:5},I.default.createElement(Y.Text,{fw:500},"Collected:")," ",(0,lo.formatDateTime)(o.collection?.collectedDateTime)),I.default.createElement(Y.Group,{spacing:5},I.default.createElement(Y.Text,{fw:500},"Received:")," ",(0,lo.formatDateTime)(o.receivedTime)))))))}function Os(e){let{classes:o}=ws();return I.default.createElement("table",{className:o.table},I.default.createElement("thead",null,I.default.createElement("tr",null,I.default.createElement("th",null,"Test"),I.default.createElement("th",null,"Value"),I.default.createElement("th",null,"Reference Range"),I.default.createElement("th",null,"Interpretation"),I.default.createElement("th",null,"Category"),I.default.createElement("th",null,"Performer"),I.default.createElement("th",null,"Status"))),I.default.createElement("tbody",null,I.default.createElement(Es,{value:e.value,ancestorIds:e.ancestorIds,hideObservationNotes:e.hideObservationNotes})))}function Es(e){return I.default.createElement(I.default.Fragment,null,e.value?.map(o=>I.default.createElement(dd,{key:`obs-${(0,lo.isReference)(o)?o.reference:o.id}`,value:o,ancestorIds:e.ancestorIds,hideObservationNotes:e.hideObservationNotes})))}function dd(e){let{classes:o,cx:t}=ws(),r=Z(e.value);if(!r||e.ancestorIds?.includes(r.id))return null;let a=!e.hideObservationNotes&&r.note,n=pd(r);return I.default.createElement(I.default.Fragment,null,I.default.createElement("tr",{className:t({[o.criticalRow]:n})},I.default.createElement("td",{rowSpan:a?2:1},I.default.createElement(Te,{to:r},I.default.createElement(yt,{value:r.code}))),I.default.createElement("td",null,I.default.createElement(cd,{value:r})),I.default.createElement("td",null,I.default.createElement(md,{value:r.referenceRange})),I.default.createElement("td",null,r.interpretation&&r.interpretation.length>0&&I.default.createElement(yt,{value:r.interpretation[0]})),I.default.createElement("td",null,r.category&&r.category.length>0&&I.default.createElement(I.default.Fragment,null,r.category.map(f=>I.default.createElement("div",{key:`category-${(0,lo.formatCodeableConcept)(f)}`},I.default.createElement(yt,{value:f}))))),I.default.createElement("td",null,r.performer?.map(f=>I.default.createElement(Yo,{key:f.reference,value:f}))),I.default.createElement("td",null,r.status&&I.default.createElement(Hr,{status:r.status}))),r.hasMember&&I.default.createElement(Es,{value:r.hasMember,ancestorIds:e.ancestorIds?[...e.ancestorIds,r.id]:[r.id],hideObservationNotes:e.hideObservationNotes}),a&&I.default.createElement("tr",null,I.default.createElement("td",{colSpan:6},I.default.createElement(Mf,{value:r.note}))))}function cd(e){let o=e.value;return I.default.createElement(I.default.Fragment,null,(0,lo.formatObservationValue)(o))}function md(e){let o=e.value&&e.value.length>0&&e.value[0];return o?o.text?I.default.createElement(I.default.Fragment,null,o.text):I.default.createElement(Pr,{value:o}):null}function pd(e){let o=e.interpretation?.[0]?.coding?.[0]?.code;return o==="AA"||o==="LL"||o==="HH"||o==="A"}var Yt=require("@mantine/core"),Ls=m(require("react"),1),xd=(0,Yt.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%"}}})),Id={shadow:"xs",radius:"md",withBorder:!0};function Tt(e){let{className:o,children:t,width:r,fill:a,unstyled:n,...f}=(0,Yt.useComponentDefaultProps)("Panel",Id,e),{classes:s,cx:l}=xd({width:r,fill:a},{name:"Panel",unstyled:n});return Ls.default.createElement(Yt.Paper,{className:l(s.paper,o),...f},t)}var Ns=require("@mantine/core"),yo=require("@medplum/core"),pe=m(require("react"),1);var gd=(0,Ns.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 Hs(e){let{classes:o}=gd(),t=T(),[r,a]=(0,pe.useState)(!1);if((0,pe.useEffect)(()=>{t.requestSchema(e.original.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.original.resourceType]),!r)return null;let n=(0,yo.getDataType)(e.original.resourceType);return pe.default.createElement("table",{className:o.root},pe.default.createElement("colgroup",null,pe.default.createElement("col",{style:{width:"30%"}}),pe.default.createElement("col",{style:{width:"35%"}}),pe.default.createElement("col",{style:{width:"35%"}})),pe.default.createElement("thead",null,pe.default.createElement("tr",null,pe.default.createElement("th",null,"Property"),pe.default.createElement("th",null,"Before"),pe.default.createElement("th",null,"After"))),pe.default.createElement("tbody",null,Object.entries(n.elements).map(([f,s])=>{if(f==="id"||f==="meta")return null;let[l,i]=je((0,yo.toTypedValue)(e.original),f),[u,c]=je((0,yo.toTypedValue)(e.revised),f);return Rs(l)&&Rs(u)||(0,yo.stringify)(l)===(0,yo.stringify)(u)?null:pe.default.createElement("tr",{key:f},pe.default.createElement("td",null,(0,yo.getPropertyDisplayName)(f)),pe.default.createElement("td",{className:o.removed},pe.default.createElement(Me,{property:s,propertyType:i,value:l,ignoreMissingValues:!0})),pe.default.createElement("td",{className:o.added},pe.default.createElement(Me,{property:s,propertyType:c,value:u,ignoreMissingValues:!0})))})))}function Rs(e){return!e||Array.isArray(e)&&e.length===0||typeof e=="object"&&Object.keys(e).length===0}var er=m(require("react"),1);function La(e){let o=T(),t=Z(e.value),[r,a]=(0,er.useState)(!1);return(0,er.useEffect)(()=>{t&&o.requestSchema(t.resourceType).then(()=>a(!0)).catch(console.log)},[o,t]),!r||!t?null:er.default.createElement(Qt,{value:{type:t.resourceType,value:e.forceUseInput?e.value:t},ignoreMissingValues:e.ignoreMissingValues})}var mo=require("@mantine/core"),Ra=require("@medplum/core");var ye=m(require("react"),1);function Ff(e){return ye.default.createElement(Uo,null,e.children)}function zo(e){let{resource:o,profile:t,padding:r,popupMenuItems:a,...n}=e,f=t??o.meta?.author,s=e.dateTime??o.meta?.lastUpdated;return ye.default.createElement(Tt,{"data-testid":"timeline-item",fill:!0,...n},ye.default.createElement(mo.Group,{position:"apart",spacing:8,mx:"xs",my:"sm"},ye.default.createElement(Le,{value:f,link:!0,size:"md"}),ye.default.createElement("div",{style:{flex:1}},ye.default.createElement(mo.Text,{size:"sm"},ye.default.createElement(co,{color:"dark",weight:500,value:f,link:!0})),ye.default.createElement(mo.Text,{size:"xs"},ye.default.createElement(Te,{color:"dimmed",to:e.resource},(0,Ra.formatDateTime)(s)),ye.default.createElement(mo.Text,{component:"span",color:"dimmed",mx:8},"\xB7"),ye.default.createElement(Te,{color:"dimmed",to:e.resource},e.resource.resourceType))),a&&ye.default.createElement(mo.Menu,{position:"bottom-end",shadow:"md",width:200},ye.default.createElement(mo.Menu.Target,null,ye.default.createElement(mo.ActionIcon,{radius:"xl","aria-label":`Actions for ${(0,Ra.getReferenceString)(e.resource)}`},ye.default.createElement(An,null))),a)),ye.default.createElement(It,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 wf(e,o){e.sort((t,r)=>{let a=Vs(t,o),n=Vs(r,o);return a>n?1:a<n?-1:qs(t,o)-qs(r,o)})}function Vs(e,o){if(!Gs(e,o)){let t=e.priority;if(typeof t=="string")return{stat:4,asap:3,urgent:2}[t]??0}return 0}function qs(e,o){if(!Gs(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 Gs(e,o){return!!o&&e.resourceType===o.resourceType&&e.id===o.id}var hd=(0,de.createStyles)(e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}}));function Xo(e){let o=T(),t=Mo(),r=o.getProfile(),a=(0,C.useRef)(null),n=Z(e.value),[f,s]=(0,C.useState)(),[l,i]=(0,C.useState)([]),u=e.loadTimelineResources,c=(0,C.useRef)(l);c.current=l;let d=(0,C.useCallback)(S=>{wf(S,n),S.reverse(),i(S)},[n]),g=(0,C.useCallback)(S=>{let W=[];for(let go of S){if(go.status!=="fulfilled")continue;let b=go.value;if(b.type==="history"&&s(b),b.entry)for(let $ of b.entry)W.push($.resource)}d(W)},[d]),P=(0,C.useCallback)(S=>d([...c.current,S]),[d]),v=(0,C.useCallback)(()=>{let S,W;"resourceType"in e.value?(S=e.value.resourceType,W=e.value.id):[S,W]=e.value.reference?.split("/"),u(o,S,W).then(g).catch(console.log)},[o,e.value,u,g]);(0,C.useEffect)(()=>v(),[v]);function k(S){!n||!e.createCommunication||o.createResource(e.createCommunication(n,r,S)).then(W=>P(W)).catch(console.log)}function M(S){!n||!e.createMedia||o.createResource(e.createMedia(n,r,S)).then(W=>P(W)).then(()=>(0,kt.updateNotification)({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:C.default.createElement(pr,{size:16}),autoClose:2e3})).catch(W=>(0,kt.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,Wo.normalizeErrorString)(W),icon:C.default.createElement(aa,{size:16}),autoClose:2e3}))}function A(S,W){return o.updateResource({...S,priority:W})}function w(S){A(S,"stat").then(v).catch(console.log)}function oe(S){A(S,"routine").then(v).catch(console.log)}function D(S){t(`/${S.resourceType}/${S.id}`)}function V(S){t(`/${S.resourceType}/${S.id}/edit`)}function ge(S){t(`/${S.resourceType}/${S.id}/delete`)}function Pe(S){t(`/${S.resourceType}/${S.id}/_history/${S.meta?.versionId}`)}function Bo(){(0,kt.showNotification)({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})}function ct(S){(0,kt.updateNotification)({id:"upload-notification",loading:!0,title:"Uploading...",message:Dd(S),autoClose:!1,withCloseButton:!1})}function Ee(S){(0,kt.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,Wo.normalizeErrorString)(S),icon:C.default.createElement(aa,{size:16}),autoClose:2e3})}return n?C.default.createElement(Ff,null,e.createCommunication&&C.default.createElement(Tt,null,C.default.createElement(se,{testid:"timeline-form",onSubmit:S=>{k(S.text);let W=a.current;W&&(W.value="",W.focus())}},C.default.createElement(de.Group,{spacing:"xs",noWrap:!0,style:{width:"100%"}},C.default.createElement(Le,{value:r}),C.default.createElement(de.TextInput,{name:"text",ref:a,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),C.default.createElement(de.ActionIcon,{type:"submit",radius:"xl",color:"blue",variant:"filled"},C.default.createElement(Ln,{size:16})),C.default.createElement(Ct,{onUpload:M,onUploadStart:Bo,onUploadProgress:ct,onUploadError:Ee},S=>C.default.createElement(de.ActionIcon,{...S,radius:"xl",color:"blue",variant:"filled"},C.default.createElement(xr,{size:16})))))),l.map(S=>{if(!S)return null;let W=`${S.resourceType}/${S.id}/${S.meta?.versionId}`;if(S.resourceType===n.resourceType&&S.id===n.id)return C.default.createElement(Cd,{key:W,history:f,resource:S,onDetails:Pe});switch(S.resourceType){case"AuditEvent":return C.default.createElement(bd,{key:W,resource:S,onDetails:D});case"Communication":return C.default.createElement(vd,{key:W,resource:S,onPin:S.priority!=="stat"?w:void 0,onUnpin:S.priority==="stat"?oe:void 0,onDetails:D,onEdit:V,onDelete:ge});case"DiagnosticReport":return C.default.createElement(Pd,{key:W,resource:S,onDetails:D,onEdit:V,onDelete:ge});case"Media":return C.default.createElement(Sd,{key:W,resource:S,onDetails:D,onEdit:V,onDelete:ge});default:return C.default.createElement(zo,{key:W,resource:S,padding:!0},C.default.createElement(La,{value:S,ignoreMissingValues:!0}))}})):C.default.createElement(de.Center,{style:{width:"100%",height:"100%"}},C.default.createElement(de.Loader,null))}function or(e){return C.default.createElement(de.Menu.Dropdown,null,C.default.createElement(de.Menu.Label,null,"Resource"),e.onPin&&C.default.createElement(de.Menu.Item,{icon:C.default.createElement(Rn,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${(0,Wo.getReferenceString)(e.resource)}`},"Pin"),e.onUnpin&&C.default.createElement(de.Menu.Item,{icon:C.default.createElement(Nn,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${(0,Wo.getReferenceString)(e.resource)}`},"Unpin"),e.onDetails&&C.default.createElement(de.Menu.Item,{icon:C.default.createElement(On,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${(0,Wo.getReferenceString)(e.resource)}`},"Details"),e.onEdit&&C.default.createElement(de.Menu.Item,{icon:C.default.createElement(Mn,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${(0,Wo.getReferenceString)(e.resource)}`},"Edit"),e.onDelete&&C.default.createElement(C.default.Fragment,null,C.default.createElement(de.Menu.Divider,null),C.default.createElement(de.Menu.Label,null,"Danger zone"),C.default.createElement(de.Menu.Item,{color:"red",icon:C.default.createElement(hr,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${(0,Wo.getReferenceString)(e.resource)}`},"Delete")))}function Cd(e){let o=yd(e.history,e.resource);return o?C.default.createElement(zo,{resource:e.resource,padding:!0,popupMenuItems:C.default.createElement(or,{...e})},C.default.createElement(Hs,{original:o,revised:e.resource})):C.default.createElement(zo,{resource:e.resource,padding:!0,popupMenuItems:C.default.createElement(or,{...e})},C.default.createElement("h3",null,"Created"),C.default.createElement(La,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0}))}function yd(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 vd(e){let{classes:o}=hd(),r=!e.resource.priority||e.resource.priority==="routine"?void 0:o.pinnedComment;return C.default.createElement(zo,{resource:e.resource,profile:e.resource.sender,dateTime:e.resource.sent,padding:!0,className:r,popupMenuItems:C.default.createElement(or,{...e})},C.default.createElement("p",null,e.resource.payload?.[0]?.contentString))}function Sd(e){let o=e.resource.content?.contentType,t=o&&!o.startsWith("image/")&&!o.startsWith("video/")&&o!=="application/pdf";return C.default.createElement(zo,{resource:e.resource,padding:!!t,popupMenuItems:C.default.createElement(or,{...e})},C.default.createElement(io,{value:e.resource.content}))}function bd(e){return C.default.createElement(zo,{resource:e.resource,padding:!0,popupMenuItems:C.default.createElement(or,{...e})},C.default.createElement(de.ScrollArea,null,C.default.createElement("pre",null,e.resource.outcomeDesc)))}function Pd(e){return C.default.createElement(zo,{resource:e.resource,padding:!0,popupMenuItems:C.default.createElement(or,{...e})},C.default.createElement(Ea,{value:e.resource}))}function Dd(e){if(e.lengthComputable){let o=100*e.loaded/e.total;return`Uploaded: ${Of(e.loaded)} / ${Of(e.total)} ${o.toFixed(2)}%`}return`Uploaded: ${Of(e.loaded)}`}function Of(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 Td(e){return Us.default.createElement(Xo,{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 Ef=m(require("react"),1);function Vr(e){let{children:o,...t}=e;return Ef.default.createElement(Uo,null,Ef.default.createElement(Tt,{...t},o))}var qr=require("@medplum/core"),Qs=m(require("react"),1);function kd(e){return Qs.default.createElement(Xo,{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,qr.createReference)(o),subject:o.subject,sender:(0,qr.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",encounter:(0,qr.createReference)(o),subject:o.subject,operator:(0,qr.createReference)(t),issued:new Date().toISOString(),content:r})})}var sr=require("@mantine/core"),oi=require("@medplum/core");var j=m(require("react"),1);var zs=require("@medplum/core"),Ws=m(require("react"),1);function Xs(e){let o;try{o=(0,zs.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 Ws.default.createElement(Me,{value:o[0]||"",propertyType:e.propertyType})}var U=require("@mantine/core"),lr=require("@medplum/core");var h=m(require("react"),1);var at=require("@mantine/core"),Bt=m(require("react"),1);function $s(e){return Bt.default.createElement(at.Modal,{title:"Export",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},Bt.default.createElement(at.Box,{display:"flex",sx:{justifyContent:"space-between"}},e.exportCsv&&Bt.default.createElement(Js,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&Bt.default.createElement(Js,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})),Bt.default.createElement(at.Text,{sx:{marginTop:"10px",marginLeft:"2px"}},"Limited to 1000 records"))}function Js(e){return Bt.default.createElement(at.Button,{onClick:()=>{e.exportLogic(),e.onCancel()}},`Export as ${e.text}`)}var vo=require("@mantine/core"),ar=require("@medplum/core"),Ne=m(require("react"),1);var B=require("@medplum/core"),Gr=m(require("react"),1);var Bd={string:[B.Operator.EQUALS,B.Operator.NOT,B.Operator.CONTAINS,B.Operator.EXACT],fulltext:[B.Operator.EQUALS,B.Operator.NOT,B.Operator.CONTAINS,B.Operator.EXACT],token:[B.Operator.EQUALS,B.Operator.NOT],reference:[B.Operator.EQUALS,B.Operator.NOT],numeric:[B.Operator.EQUALS,B.Operator.NOT_EQUALS,B.Operator.GREATER_THAN,B.Operator.LESS_THAN,B.Operator.GREATER_THAN_OR_EQUALS,B.Operator.LESS_THAN_OR_EQUALS],quantity:[B.Operator.EQUALS,B.Operator.NOT_EQUALS,B.Operator.GREATER_THAN,B.Operator.LESS_THAN,B.Operator.GREATER_THAN_OR_EQUALS,B.Operator.LESS_THAN_OR_EQUALS],date:[B.Operator.EQUALS,B.Operator.NOT_EQUALS,B.Operator.GREATER_THAN,B.Operator.LESS_THAN,B.Operator.GREATER_THAN_OR_EQUALS,B.Operator.LESS_THAN_OR_EQUALS,B.Operator.STARTS_AFTER,B.Operator.ENDS_BEFORE,B.Operator.APPROXIMATELY],datetime:[B.Operator.EQUALS,B.Operator.NOT_EQUALS,B.Operator.GREATER_THAN,B.Operator.LESS_THAN,B.Operator.GREATER_THAN_OR_EQUALS,B.Operator.LESS_THAN_OR_EQUALS,B.Operator.STARTS_AFTER,B.Operator.ENDS_BEFORE,B.Operator.APPROXIMATELY]},Ad={eq:"equals",ne:"not equals",gt:"greater than",lt:"less than",ge:"greater than or equals",le:"less than or equals",sa:"starts after",eb:"ends before",ap:"approximately",contains:"contains",exact:"exact",text:"text",not:"not",above:"above",below:"below",in:"in","not-in":"not in","of-type":"of type",missing:"missing",identifier:"identifier",iterate:"iterate"};function tr(e,o){return{...e,filters:o,offset:0,name:void 0}}function Md(e){return tr(e,[])}function Ur(e,o){return tr(e,(e.filters??[]).filter(t=>t.code!==o))}function At(e,o,t,r,a){a&&(e=Ur(e,o));let n=[];return e.filters&&n.push(...e.filters),n.push({code:o,operator:t,value:r??""}),tr(e,n)}function Fd(e,o){if(e.fields?.includes(o))return e;let t=[];return e.fields&&t.push(...e.fields),t.push(o),{...e,fields:t,name:void 0}}function Lf(e,o){if(!e.filters)return e;let t=[...e.filters];return t.splice(o,1),{...e,filters:t,name:void 0}}function Rf(e,o){return Vf(e,o,-1)}function Nf(e,o){return Vf(e,o,0)}function Hf(e,o){return Vf(e,o,1)}function Vf(e,o,t){let r=new Date;r.setDate(r.getDate()+t),r.setHours(0,0,0,0);let a=new Date(r.getTime());return a.setDate(a.getDate()+1),a.setTime(a.getTime()-1),Na(e,o,r,a)}function qf(e,o){return Qf(e,o,-1)}function Gf(e,o){return Qf(e,o,0)}function Uf(e,o){return Qf(e,o,1)}function Qf(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),Na(e,o,r,a)}function zf(e,o){let t=new Date;return t.setMonth(0),t.setDate(1),t.setHours(0,0,0,0),Na(e,o,t,new Date)}function Na(e,o,t,r){return e=Ur(e,o),e=Ks(e,o,B.Operator.GREATER_THAN_OR_EQUALS,t),e=Ks(e,o,B.Operator.LESS_THAN_OR_EQUALS,r),e}function Ks(e,o,t,r){return At(e,o,t,r.toISOString())}function Ha(e,o,t=!0){return At(e,o,B.Operator.MISSING,t.toString())}function js(e,o){return e.offset===o?e:{...e,offset:o,name:void 0}}function Wf(e,o){let t=e.count??B.DEFAULT_SEARCH_COUNT,r=(o-1)*t;return js(e,r)}function Va(e,o,t){return o===Xf(e)&&t!==void 0&&t===Jf(e)?e:{...e,sortRules:[{code:o,descending:!!t}],name:void 0}}function wd(e,o){let t=!1;return Xf(e)===o&&(t=!Jf(e)),Va(e,o,t)}function Xf(e){let o=e.sortRules;if(!o||o.length===0)return;let t=o[0].code;return t.startsWith("-")?t.substr(1):t}function Jf(e){let o=e.sortRules;return!o||o.length===0?!1:!!o[0].descending}function $f(e){return Bd[e.type]}function rr(e){return Ad[e]??""}function Ze(e){let o=e;return o.includes(".")&&(o=o.split(".").pop()),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.toLowerCase()==="id"?"ID":o.split(/\s/).map(B.capitalize).join(" "))}function Kf(e,o){let t=o.name;return t==="id"?e.id:t==="meta.versionId"?e.meta?.versionId:t==="_lastUpdated"?(0,B.formatDateTime)(e.meta?.lastUpdated):o.elementDefinition&&`${e.resourceType}.${o.name}`===o.elementDefinition.path?Od(e,o.elementDefinition):o.searchParams&&o.searchParams.length===1&&o.name===o.searchParams[0].code?Ed(e,o.searchParams[0]):null}function Od(e,o){let t=o.path?.split(".")?.pop()?.replaceAll("[x]","")??"",[r,a]=je({type:e.resourceType,value:e},t);return r?Gr.default.createElement(Me,{property:o,propertyType:a,value:r,maxWidth:200,ignoreMissingValues:!0,link:!1}):null}function Ed(e,o){let t=(0,B.evalFhirPathTyped)(o.expression,[{type:e.resourceType,value:e}]);return!t||t.length===0?null:Gr.default.createElement(Gr.default.Fragment,null,t.map((r,a)=>Gr.default.createElement(Me,{key:`${a}-${t.length}`,propertyType:r.type,value:r.value,maxWidth:200,ignoreMissingValues:!0,link:!1})))}function jf(e){let o=(0,Ne.useRef)(!1),[t,r]=(0,Ne.useState)({search:JSON.parse((0,ar.stringify)(e.search))}),[a,n]=(0,Ne.useState)(!1);(0,Ne.useEffect)(()=>{r({search:e.search})},[e.search]);let f=(0,Ne.useMemo)(()=>{if(!e.visible)return[];let l=e.search.resourceType,i=(0,ar.getDataType)(l),u=(0,ar.getSearchParameters)(l);return Ld(i,u).sort((c,d)=>c.localeCompare(d)).map(c=>({value:c,label:Ze(c)}))},[e.visible,e.search.resourceType]);if(!e.visible)return null;function s(l){r({search:{...t.search,fields:l}})}return Ne.default.createElement(vo.Modal,{title:"Fields",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>{e.onCancel()},size:"auto",withOverlay:!0,closeOnClickOutside:!1,overlayProps:{onMouseDownCapture:()=>{o.current=a},onClick:()=>{o.current||e.onCancel(),o.current=!1},children:Ne.default.createElement("div",{"data-testid":"overlay-child"})}},Ne.default.createElement(vo.Stack,null,Ne.default.createElement(vo.MultiSelect,{withinPortal:!0,style:{width:550},placeholder:"Select fields to display",data:f,value:t.search.fields??[],onChange:s,onDropdownOpen:()=>n(!0),onDropdownClose:()=>n(!1),maxDropdownHeight:"250px",dropdownPosition:"bottom",clearButtonProps:{"aria-label":"Clear selection"},clearable:!0,searchable:!0}),Ne.default.createElement(vo.Group,{position:"right"},Ne.default.createElement(vo.Button,{onClick:()=>e.onOk(t.search)},"OK"))))}function Ld(e,o){let t=[],r=new Set,a=new Set;for(let n of Object.keys(e.elements))t.push(n),r.add(n.toLowerCase()),a.add(Ze(n));if(o)for(let n of Object.keys(o)){let f=Ze(n);!r.has(n)&&!a.has(f)&&(t.push(n),r.add(n),a.add(f))}return t}var Ye=require("@mantine/core"),Qr=require("@medplum/core"),O=m(require("react"),1);var po=require("@medplum/core"),nr=m(require("react"),1);function qa(e){let{resourceType:o,filter:t}=e,r=po.globalSchema.types[o].searchParams?.[t.code];if(r){if(r.type==="reference"&&(t.operator===po.Operator.EQUALS||t.operator===po.Operator.NOT_EQUALS))return nr.default.createElement(co,{value:{reference:t.value}});let a=(0,po.getSearchParameterDetails)(o,r);if(t.code==="_lastUpdated"||a.type===po.SearchParameterType.DATETIME)return nr.default.createElement(nr.default.Fragment,null,(0,po.formatDateTime)(t.value))}return nr.default.createElement(nr.default.Fragment,null,t.value)}var fr=require("@mantine/core"),Jo=require("@medplum/core"),nt=m(require("react"),1);function Ga(e){let o=(0,Jo.getSearchParameterDetails)(e.resourceType,e.searchParam),t="filter-value";switch(o.type){case Jo.SearchParameterType.REFERENCE:return nt.default.createElement(Dt,{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 Jo.SearchParameterType.BOOLEAN:return nt.default.createElement(fr.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 Jo.SearchParameterType.DATE:return nt.default.createElement(fr.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 Jo.SearchParameterType.DATETIME:return nt.default.createElement(no,{name:t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:e.onChange});case Jo.SearchParameterType.NUMBER:return nt.default.createElement(fr.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 Jo.SearchParameterType.QUANTITY:return nt.default.createElement(_e,{name:t,defaultValue:Rd(e.defaultValue),autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(`${r.value}`):e.onChange("")}});default:return nt.default.createElement(fr.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 Rd(e){if(e){let[o,t,r]=e.split("|");if(o)return{value:parseFloat(o),system:t,unit:r}}}function _f(e){let[o,t]=(0,O.useState)(JSON.parse((0,Qr.stringify)(e.search))),[r,a]=(0,O.useState)(-1),n=(0,O.useRef)(o);n.current=o,(0,O.useEffect)(()=>{t(JSON.parse((0,Qr.stringify)(e.search)))},[e.search]);function f(u){t(At(n.current,u.code,u.operator,u.value))}if(!e.visible)return null;let s=e.search.resourceType,l=(0,Qr.getSearchParameters)(s)??{},i=o.filters||[];return O.default.createElement(Ye.Modal,{title:"Filters",closeButtonProps:{"aria-label":"Close"},size:900,opened:e.visible,onClose:e.onCancel},O.default.createElement("div",null,O.default.createElement("table",null,O.default.createElement("colgroup",null,O.default.createElement("col",{style:{width:200}}),O.default.createElement("col",{style:{width:200}}),O.default.createElement("col",{style:{width:380}}),O.default.createElement("col",{style:{width:120}})),O.default.createElement("thead",null,O.default.createElement("tr",null,O.default.createElement("th",null,"Field"),O.default.createElement("th",null,"Operation"),O.default.createElement("th",null,"Value"),O.default.createElement("th",null,"Actions"))),O.default.createElement("tbody",null,i.map((u,c)=>c===r?O.default.createElement(_s,{key:`filter-${u.code}-${u.operator}-${u.value}-input`,resourceType:s,searchParams:l,defaultValue:u,okText:"Save",onOk:d=>{let g=[...i];g[c]=d,t(tr(n.current,g)),a(-1)},onCancel:()=>a(-1)}):O.default.createElement(Nd,{key:`filter-${u.code}-${u.operator}-${u.value}-display`,resourceType:s,searchParams:l,filter:u,onEdit:()=>a(c),onDelete:()=>t(Lf(n.current,c))})),O.default.createElement(_s,{resourceType:s,searchParams:l,okText:"Add",onOk:f})))),O.default.createElement(Ye.Group,{position:"right",mt:"xl"},O.default.createElement(Ye.Button,{onClick:()=>e.onOk(n.current)},"OK")))}function Nd(e){let{filter:o}=e;return O.default.createElement("tr",null,O.default.createElement("td",null,Ze(o.code)),O.default.createElement("td",null,rr(o.operator)),O.default.createElement("td",null,O.default.createElement(qa,{resourceType:e.resourceType,filter:o})),O.default.createElement("td",null,O.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),O.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function _s(e){let[o,t]=(0,O.useState)(e.defaultValue??{}),r=(0,O.useRef)(o);r.current=o;function a(i){t({...r.current,code:i})}function n(i){t({...r.current,operator:i})}function f(i){t({...r.current,value:i})}let s=e.searchParams[o.code],l=s&&$f(s);return O.default.createElement("tr",null,O.default.createElement("td",null,O.default.createElement(Ye.NativeSelect,{"data-testid":"filter-field",defaultValue:r.current.code,onChange:i=>a(i.currentTarget.value),data:["",...Object.keys(e.searchParams).map(i=>({value:i,label:Ze(i)}))]})),O.default.createElement("td",null,l&&O.default.createElement(Ye.NativeSelect,{"data-testid":"filter-operation",defaultValue:o.operator,onChange:i=>n(i.currentTarget.value),data:["",...l.map(i=>({value:i,label:rr(i)}))]})),O.default.createElement("td",null,s&&o.operator&&O.default.createElement(Ga,{resourceType:e.resourceType,searchParam:s,defaultValue:o.value,onChange:f})),O.default.createElement("td",null,o.code&&o.operator&&O.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:()=>{e.onOk(r.current),t({})}},e.okText),e.onCancel&&O.default.createElement(Ye.Button,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}var ft=require("@mantine/core"),So=m(require("react"),1);function Zs(e){let[o,t]=(0,So.useState)(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function r(){e.onOk({...e.filter,value:o})}return So.default.createElement(ft.Modal,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},So.default.createElement(se,{onSubmit:r},So.default.createElement(ft.Grid,null,So.default.createElement(ft.Grid.Col,{span:10},So.default.createElement(Ga,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:o,autoFocus:!0,onChange:t})),So.default.createElement(ft.Grid.Col,{span:2},So.default.createElement(ft.Button,{onClick:r,fullWidth:!0},"OK")))))}var F=require("@mantine/core"),ke=require("@medplum/core");var p=m(require("react"),1);function Ys(e){if(!e.searchParams)return null;function o(n,f){a(Va(e.search,n.code,f))}function t(n){a(Ur(e.search,n.code))}function r(n,f){e.onPrompt(n,{code:n.code,operator:f,value:""})}function a(n){e.onChange(n)}return e.searchParams.length===1?p.default.createElement(Hd,{search:e.search,searchParam:e.searchParams[0],onSort:o,onPrompt:r,onChange:a,onClear:t}):p.default.createElement(F.Menu.Dropdown,null,e.searchParams.map(n=>p.default.createElement(F.Menu.Item,{key:n.code},Ze(n.code))))}function Hd(e){switch(e.searchParam.type){case"date":return p.default.createElement(Vd,{...e});case"number":case"quantity":return p.default.createElement(qd,{...e});case"reference":return p.default.createElement(Gd,{...e});case"string":case"token":case"uri":return p.default.createElement(Ud,{...e});default:return p.default.createElement(p.default.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function Vd(e){let{searchParam:o}=e,t=o.code;return p.default.createElement(F.Menu.Dropdown,null,p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Ir,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Oldest to Newest"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(gr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Newest to Oldest"),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Rt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Lt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.NOT_EQUALS)},"Does not equal..."),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(fa,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.ENDS_BEFORE)},"Before..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(na,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.STARTS_AFTER)},"After..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(vn,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Between..."),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(wo,{size:14}),onClick:()=>e.onChange(Hf(e.search,t))},"Tomorrow"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(wo,{size:14}),onClick:()=>e.onChange(Nf(e.search,t))},"Today"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(wo,{size:14}),onClick:()=>e.onChange(Rf(e.search,t))},"Yesterday"),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(wo,{size:14}),onClick:()=>e.onChange(Uf(e.search,t))},"Next Month"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(wo,{size:14}),onClick:()=>e.onChange(Gf(e.search,t))},"This Month"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(wo,{size:14}),onClick:()=>e.onChange(qf(e.search,t))},"Last Month"),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(wo,{size:14}),onClick:()=>e.onChange(zf(e.search,t))},"Year to date"),p.default.createElement(Ua,{...e}))}function qd(e){let{searchParam:o}=e;return p.default.createElement(F.Menu.Dropdown,null,p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Ir,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Smallest to Largest"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(gr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Largest to Smallest"),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Rt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Lt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.NOT_EQUALS)},"Does not equal..."),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(na,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.GREATER_THAN)},"Greater than..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Nt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(fa,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.LESS_THAN)},"Less than..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Nt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),p.default.createElement(Ua,{...e}))}function Gd(e){let{searchParam:o}=e;return p.default.createElement(F.Menu.Dropdown,null,p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Rt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Lt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.NOT)},"Does not equal..."),p.default.createElement(Ua,{...e}))}function Ud(e){let{searchParam:o}=e;return p.default.createElement(F.Menu.Dropdown,null,p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Ir,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort A to Z"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(gr,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Z to A"),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Rt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Equals..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Lt,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.NOT)},"Does not equal..."),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(bn,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.CONTAINS)},"Contains..."),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Sn,{size:14}),onClick:()=>e.onPrompt(o,ke.Operator.EQUALS)},"Does not contain..."),p.default.createElement(Ua,{...e}))}function Ua(e){let{searchParam:o}=e,t=o.code;return p.default.createElement(p.default.Fragment,null,p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(Cn,{size:14}),onClick:()=>e.onChange(Ha(e.search,t))},"Missing"),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(hn,{size:14}),onClick:()=>e.onChange(Ha(e.search,t,!1))},"Not missing"),p.default.createElement(F.Menu.Divider,null),p.default.createElement(F.Menu.Item,{icon:p.default.createElement(zn,{size:14}),onClick:()=>e.onClear(o)},"Clear filters"))}var lt=require("@medplum/core");function Zf(e){let o=e.resourceType,t=[];for(let r of e.fields||["id","_lastUpdated"])t.push(Qd(o,r));return t}function Qd(e,o){if(o==="_lastUpdated")return{name:"_lastUpdated",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_lastUpdated",name:"_lastUpdated",type:"date",expression:"Resource.meta.lastUpdated"}]};if(o==="meta.versionId")return{name:"meta.versionId",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_versionId",name:"_versionId",type:"token",expression:"Resource.meta.versionId"}]};let t=(0,lt.getElementDefinition)(e,o),r=(0,lt.getSearchParameter)(e,o.toLowerCase());if(t&&r)return{name:o,elementDefinition:t,searchParams:[r]};if(t){let a=(0,lt.getSearchParameters)(e),n;if(a){let f=new RegExp(`${e}\\.${o.replaceAll("[x]","")}([^\\w-]|$)`);n=Object.values(a).filter(s=>!!s.expression&&f.test(s?.expression)),n.length===0&&(n=void 0)}return{name:o,elementDefinition:t,searchParams:n}}if(r){let a=(0,lt.getSearchParameterDetails)(e,r);return{name:o,elementDefinition:a.elementDefinitions?.[0],searchParams:[r]}}return{name:o}}var Qa=class extends Event{constructor(t){super("change");this.definition=t}},za=class extends Event{constructor(t){super("load");this.response=t}},st=class extends Event{constructor(t,r){super("click");this.resource=t,this.browserEvent=r}},zd=(0,U.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 ei(e){let{classes:o}=zd(),t=T(),[r,a]=(0,h.useState)(!1),[n,f]=(0,h.useState)(),{search:s,onLoad:l}=e,[i,u]=(0,h.useState)({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,exportDialogVisible:!1,filterDialogVisible:!1}),c=(0,h.useRef)(i);c.current=i;let d=s.total??"accurate",g=(0,h.useCallback)(b=>{f(void 0),t.search(s.resourceType,(0,lr.formatSearchQuery)({...s,total:d,fields:void 0}),b).then($=>{u({...c.current,searchResponse:$}),l&&l(new za($))}).catch($=>{u({...c.current,searchResponse:void 0}),f($)})},[t,s,d,l]),P=(0,h.useCallback)(()=>{u({...c.current,searchResponse:void 0}),g({cache:"reload"})},[g]);(0,h.useEffect)(()=>{g()},[g]);function v(b,$){b.stopPropagation();let De=b.target.checked,Se={...c.current.selected};De?Se[$]=!0:delete Se[$],u({...c.current,selected:Se})}function k(b){b.stopPropagation();let Ao=b.target.checked,De={},Se=c.current.searchResponse;Ao&&Se?.entry&&Se.entry.forEach(ro=>{ro.resource?.id&&(De[ro.resource.id]=!0)}),u({...c.current,selected:De})}function M(){let b=c.current;if(!b.searchResponse?.entry||b.searchResponse.entry.length===0)return!1;for(let $ of b.searchResponse.entry)if($.resource?.id&&!b.selected[$.resource.id])return!1;return!0}function A(b){e.onChange&&e.onChange(new Qa(b))}function w(b,$){if(ua(b.target)||b.button===2)return;q(b);let Ao=b.button===1||b.ctrlKey||b.metaKey;!Ao&&e.onClick&&e.onClick(new st($,b)),Ao&&e.onAuxClick&&e.onAuxClick(new st($,b))}function oe(){return!!(e.onExport??e.onExportCsv??e.onExportTransactionBundle)}if((0,h.useEffect)(()=>{a(!1),t.requestSchema(e.search.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.search.resourceType]),!r)return h.default.createElement(U.Center,{style:{width:"100%",height:"100%"}},h.default.createElement(U.Loader,null));let D=e.checkboxesEnabled,V=Zf(s),ge=s.resourceType,Pe=i.searchResponse,ct=Pe?.entry?.map(b=>b.resource),Ee="subtle",S="gray",W=16,go=window.innerWidth<768;return h.default.createElement("div",{className:o.root,"data-testid":"search-control"},!e.hideToolbar&&h.default.createElement(U.Group,{position:"apart",mb:"xl"},h.default.createElement(U.Group,{spacing:2},h.default.createElement(U.Button,{compact:!0,variant:Ee,color:S,leftIcon:h.default.createElement(Tn,{size:W}),onClick:()=>u({...c.current,fieldEditorVisible:!0})},"Fields"),h.default.createElement(U.Button,{compact:!0,variant:Ee,color:S,leftIcon:h.default.createElement(wn,{size:W}),onClick:()=>u({...c.current,filterEditorVisible:!0})},"Filters"),e.onNew&&h.default.createElement(U.Button,{compact:!0,variant:Ee,color:S,leftIcon:h.default.createElement(Fn,{size:W}),onClick:e.onNew},"New..."),!go&&oe()&&h.default.createElement(U.Button,{compact:!0,variant:Ee,color:S,leftIcon:h.default.createElement(Qn,{size:W}),onClick:e.onExport?e.onExport:()=>u({...c.current,exportDialogVisible:!0})},"Export..."),!go&&e.onDelete&&h.default.createElement(U.Button,{compact:!0,variant:Ee,color:S,leftIcon:h.default.createElement(hr,{size:W}),onClick:()=>e.onDelete(Object.keys(i.selected))},"Delete..."),!go&&e.onBulk&&h.default.createElement(U.Button,{compact:!0,variant:Ee,color:S,leftIcon:h.default.createElement(yn,{size:W}),onClick:()=>e.onBulk(Object.keys(i.selected))},"Bulk...")),h.default.createElement(U.Group,{spacing:2},Pe&&h.default.createElement(U.Text,{size:"xs",color:"dimmed"},Kd(s,Pe.total),"-",jd(s,Pe.total)," of"," ",`${d==="estimate"?"~":""}${Pe.total?.toLocaleString()}`),h.default.createElement(U.ActionIcon,{title:"Refresh",onClick:P},h.default.createElement(Vn,{size:"1.125rem"})))),h.default.createElement(U.Table,{className:o.table},h.default.createElement("thead",null,h.default.createElement("tr",null,D&&h.default.createElement("th",null,h.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:M(),onChange:b=>k(b)})),V.map(b=>h.default.createElement("th",{key:b.name},h.default.createElement(U.Menu,{shadow:"md",width:240,position:"bottom-end"},h.default.createElement(U.Menu.Target,null,h.default.createElement(U.UnstyledButton,{className:o.control},h.default.createElement(U.Group,{position:"apart",noWrap:!0},h.default.createElement(U.Text,{weight:500,size:"sm"},Ze(b.name)),h.default.createElement(U.Center,{className:o.icon},h.default.createElement(xn,{size:14,stroke:1.5}))))),h.default.createElement(Ys,{search:e.search,searchParams:b.searchParams,onPrompt:($,Ao)=>{u({...c.current,filterDialogVisible:!0,filterDialogSearchParam:$,filterDialogFilter:Ao})},onChange:$=>{A($)}}))))),!e.hideFilters&&h.default.createElement("tr",null,D&&h.default.createElement("th",null),V.map(b=>h.default.createElement("th",{key:b.name},b.searchParams&&h.default.createElement(Xd,{resourceType:ge,searchParams:b.searchParams,filters:e.search.filters}))))),h.default.createElement("tbody",null,ct?.map(b=>b&&h.default.createElement("tr",{key:b.id,className:o.tr,"data-testid":"search-control-row",onClick:$=>w($,b),onAuxClick:$=>w($,b)},D&&h.default.createElement("td",null,h.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${b.id}`,checked:!!i.selected[b.id],onChange:$=>v($,b.id)})),V.map($=>h.default.createElement("td",{key:$.name},Kf(b,$))))))),ct?.length===0&&h.default.createElement(Uo,null,h.default.createElement(U.Center,{style:{height:150}},h.default.createElement(U.Text,{size:"xl",color:"dimmed"},"No results"))),Pe?.total!==void 0&&Pe.total>0&&h.default.createElement(U.Center,{m:"md",p:"md"},h.default.createElement(U.Pagination,{value:Jd(s),total:$d(s,Pe.total),onChange:b=>A(Wf(s,b)),getControlProps:b=>{switch(b){case"previous":return{"aria-label":"Previous page"};case"next":return{"aria-label":"Next page"};default:return{}}}})),n&&h.default.createElement("div",{"data-testid":"search-error"},h.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(n,void 0,2))),h.default.createElement(jf,{search:e.search,visible:c.current.fieldEditorVisible,onOk:b=>{A(b),u({...c.current,fieldEditorVisible:!1})},onCancel:()=>{u({...c.current,fieldEditorVisible:!1})}}),h.default.createElement(_f,{search:e.search,visible:c.current.filterEditorVisible,onOk:b=>{A(b),u({...c.current,filterEditorVisible:!1})},onCancel:()=>{u({...c.current,filterEditorVisible:!1})}}),h.default.createElement($s,{visible:c.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{u({...c.current,exportDialogVisible:!1})}}),h.default.createElement(Zs,{key:i.filterDialogSearchParam?.code,visible:c.current.filterDialogVisible,title:i.filterDialogSearchParam?.code?Ze(i.filterDialogSearchParam.code):"",resourceType:ge,searchParam:i.filterDialogSearchParam,filter:i.filterDialogFilter,defaultValue:"",onOk:b=>{A(At(e.search,b.code,b.operator,b.value)),u({...c.current,filterDialogVisible:!1})},onCancel:()=>{u({...c.current,filterDialogVisible:!1})}}))}var Wd=h.default.memo(ei);function Xd(e){let o=(e.filters??[]).filter(t=>e.searchParams.find(r=>r.code===t.code));return o.length===0?h.default.createElement("span",null,"no filters"):h.default.createElement(h.default.Fragment,null,o.map(t=>h.default.createElement("div",{key:`filter-${t.code}-${t.operator}-${t.value}`},rr(t.operator),"\xA0",h.default.createElement(qa,{resourceType:e.resourceType,filter:t}))))}function Jd(e){return Math.floor((e.offset??0)/(e.count??lr.DEFAULT_SEARCH_COUNT))+1}function $d(e,o){let t=e.count??lr.DEFAULT_SEARCH_COUNT;return Math.ceil(o/t)}function Kd(e,o){return Math.min(o,(e.offset??0)+1)}function jd(e,o){return Math.min(o,((e.offset??0)+1)*(e.count??lr.DEFAULT_SEARCH_COUNT))}function ti(e){let o=T(),[t,r]=(0,j.useState)(!1),[a,n]=(0,j.useState)(),{query:f,fields:s}=e,[l,i]=(0,j.useState)(),[u,c]=(0,j.useState)({}),d=(0,j.useRef)();d.current=l;let g=(0,j.useRef)({});g.current=u,(0,j.useEffect)(()=>{n(void 0),o.graphql(f).then(i).catch(w=>n((0,oi.normalizeOperationOutcome)(w)))},[o,f]);function P(w,oe){w.stopPropagation();let V=w.target.checked,ge={...g.current};V?ge[oe]=!0:delete ge[oe],c(ge)}function v(w){w.stopPropagation();let D=w.target.checked,V={},ge=d.current?.data.ResourceList;D&&ge&&ge.forEach(Pe=>{Pe.id&&(V[Pe.id]=!0)}),c(V)}function k(){let w=d.current?.data.ResourceList;if(!w||w.length===0)return!1;for(let oe of w)if(oe.id&&!g.current[oe.id])return!1;return!0}function M(w,oe){ua(w.target)||(q(w),w.button!==1&&e.onClick&&e.onClick(new st(oe,w)),w.button===1&&e.onAuxClick&&e.onAuxClick(new st(oe,w)))}if((0,j.useEffect)(()=>{o.requestSchema(e.resourceType).then(()=>r(!0)).catch(console.log)},[o,e.resourceType]),!t)return j.default.createElement(sr.Loader,null);let A=e.checkboxesEnabled;return j.default.createElement("div",{onContextMenu:w=>q(w),"data-testid":"search-control"},j.default.createElement(sr.Table,null,j.default.createElement("thead",null,j.default.createElement("tr",null,A&&j.default.createElement("th",null,j.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:k(),onChange:w=>v(w)})),s.map(w=>j.default.createElement("th",{key:w.name},w.name)))),j.default.createElement("tbody",null,l?.data.ResourceList.map(w=>w&&j.default.createElement("tr",{key:w.id,"data-testid":"search-control-row",onClick:oe=>M(oe,w),onAuxClick:oe=>M(oe,w)},A&&j.default.createElement("td",null,j.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${w.id}`,checked:!!u[w.id],onChange:oe=>P(oe,w.id)})),s.map(oe=>j.default.createElement("td",{key:oe.name},j.default.createElement(Xs,{propertyType:oe.propertyType,path:oe.fhirPath,resource:w}))))))),l?.data.ResourceList.length===0&&j.default.createElement("div",{"data-testid":"empty-search"},"No results"),a&&j.default.createElement("div",{"data-testid":"search-error"},j.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(a,void 0,2))),e.onBulk&&j.default.createElement(sr.Button,{onClick:()=>e.onBulk(Object.keys(g.current))},"Bulk..."))}var _d=j.default.memo(ti);var it=m(require("react"),1);function $o(e){return it.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},it.default.createElement("title",null,"Medplum Logo"),it.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"}),it.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"}),it.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"}),it.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"}),it.default.createElement("path",{fill:e.fill??"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}var Wa=require("@mantine/core");var zr=m(require("react"),1);var ie=require("@mantine/core"),Yf=require("@medplum/core"),ee=m(require("react"),1);function ri(e){let{group:o}=e;return ee.default.createElement(ie.Paper,{withBorder:!0,radius:"md",p:"xs",display:"flex",sx:{alignItems:"center",justifyContent:"center"}},ee.default.createElement(ie.Group,null,o.measureScore&&ee.default.createElement(Yd,{group:o}),!o.measureScore&&ee.default.createElement(Zd,{group:o})))}function ai(e){let{measure:o}=e;return ee.default.createElement(ee.default.Fragment,null,ee.default.createElement(ie.Text,{fz:"md",fw:500,mb:8},o.title),ee.default.createElement(ie.Text,{fz:"xs",c:"dimmed",mb:8},o.subtitle))}function Zd(e){let{group:o}=e,t=o.population,r=t?.find(l=>(0,Yf.formatCodeableConcept)(l.code)==="numerator"),a=t?.find(l=>(0,Yf.formatCodeableConcept)(l.code)==="denominator"),n=r?.count,f=a?.count;if(f===0)return ee.default.createElement(ie.Box,null,ee.default.createElement(ie.Title,{order:3},"Not Applicable"),ee.default.createElement(ie.Text,null,`Denominator: ${f}`));if(n===void 0||f===void 0)return ee.default.createElement(ie.Box,null,ee.default.createElement(ie.Title,{order:3},"Insufficient Data"),ee.default.createElement(ie.Text,null,`Numerator: ${n}`),ee.default.createElement(ie.Text,null,`Denominator: ${f}`));let s=n/f*100;return ee.default.createElement(ie.RingProgress,{size:120,thickness:12,roundCaps:!0,sections:[{value:s,color:ni(s)}],label:ee.default.createElement(ie.Flex,{justify:"center"},ee.default.createElement(ie.Text,{fw:700,fz:18},n," / ",f))})}function Yd(e){let{group:o}=e,t=o.measureScore?.unit??o.measureScore?.code;return ee.default.createElement(ee.default.Fragment,null,t==="%"?ee.default.createElement(ie.RingProgress,{size:120,thickness:12,roundCaps:!0,sections:[{value:ec(o),color:ni(o?.measureScore?.value??0)}],label:ee.default.createElement(ie.Flex,{justify:"center"},ee.default.createElement(ie.Text,{fw:700,fz:18},ee.default.createElement(No,{value:o.measureScore})))}):ee.default.createElement(ie.Flex,{h:120,align:"center"},ee.default.createElement(ie.Title,{order:3},ee.default.createElement(No,{value:o.measureScore}))))}function ec(e){let o=e.measureScore?.value,t=e.measureScore?.unit;return o?o<=1&&t==="%"?o*100:o:0}function ni(e){return e<=33?"red":e<=67?"yellow":"green"}function oc(e){let o=Z(e.measureReport),[t]=ln("Measure",{url:o?.measure});return o?zr.default.createElement(Wa.Box,null,t&&zr.default.createElement(ai,{measure:t}),zr.default.createElement(Wa.SimpleGrid,{cols:3,breakpoints:[{maxWidth:"48rem",cols:2,spacing:"md"},{maxWidth:"36rem",cols:1,spacing:"sm"}],spacing:"md"},o.group?.map((r,a)=>zr.default.createElement(ri,{key:r.id??a,group:r})))):null}var fi=require("@mantine/core"),li=require("@medplum/core");var Xa=m(require("react"),1);function Mt(e){let o=e.outcome?.issue||e.issues;return!o||o.length===0?null:Xa.default.createElement(fi.Alert,{icon:Xa.default.createElement(xt,{size:16}),color:"red"},o.map(t=>Xa.default.createElement("div",{"data-testid":"text-field-error",key:t.details?.text},(0,li.operationOutcomeIssueToString)(t))))}var Wr=require("@medplum/core"),Ja=m(require("react"),1);function tc(e){let o=(0,Ja.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 Ja.default.createElement(Xo,{value:e.patient,loadTimelineResources:o,createCommunication:(t,r,a)=>({resourceType:"Communication",status:"completed",subject:(0,Wr.createReference)(t),sender:(0,Wr.createReference)(r),sent:new Date().toISOString(),payload:[{contentString:a}]}),createMedia:(t,r,a)=>({resourceType:"Media",status:"completed",subject:(0,Wr.createReference)(t),operator:(0,Wr.createReference)(r),issued:new Date().toISOString(),content:a})})}var Ve=require("@mantine/core"),si=require("@medplum/core");var E=m(require("react"),1);var ii=(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 rc(e){let o=T(),t=Z(e.value),[r,a]=(0,E.useState)(!1),[n,f]=(0,E.useState)(),[s,l]=(0,E.useState)(),[i,u]=(0,E.useState)();function c(){l(void 0)}function d(){f(void 0)}let g=(0,E.useRef)();if(g.current=i,(0,E.useEffect)(()=>{o.requestSchema("PlanDefinition").then(()=>a(!0)).catch(console.log)},[o]),(0,E.useEffect)(()=>(u(ic(t??{resourceType:"PlanDefinition"})),document.addEventListener("mouseover",c),document.addEventListener("click",d),()=>{document.removeEventListener("mouseover",c),document.removeEventListener("click",d)}),[t]),!r||!i)return null;function P(v,k){u({...g.current,[v]:k})}return E.default.createElement("div",null,E.default.createElement(se,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(i)},E.default.createElement(Ve.TextInput,{label:"Plan Title",defaultValue:i.title,onChange:v=>P("title",v.currentTarget.value)}),E.default.createElement(ui,{actions:i.action||[],selectedKey:n,setSelectedKey:f,hoverKey:s,setHoverKey:l,onChange:v=>P("action",v)}),E.default.createElement(Ve.Button,{type:"submit"},"Save")))}function ui(e){let{classes:o}=ii(),t=(0,E.useRef)();t.current=e.actions;function r(f){e.onChange(t.current.map(s=>s.id===f.id?f:s))}function a(f){e.onChange([...t.current,f]),e.setSelectedKey(f.id)}function n(f){e.onChange(t.current.filter(s=>s!==f))}return E.default.createElement("div",{className:o.section},e.actions.map(f=>E.default.createElement("div",{key:f.id},E.default.createElement(ac,{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=>{q(f),a({id:ci()})}},"Add action")))}function ac(e){let{classes:o,cx:t}=ii(),{action:r}=e,a=sc(r),n=e.selectedKey===e.action.id,f=e.hoverKey===e.action.id;function s(u){u.stopPropagation(),e.setSelectedKey(e.action.id)}function l(u){q(u),e.setHoverKey(e.action.id)}let i=t(o.section,{[o.editing]:n,[o.hovering]:f&&!n});return E.default.createElement("div",{"data-testid":r.id,className:i,onClick:s,onMouseOver:l},n?E.default.createElement(fc,{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(nc,{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 ol={path:"PlanDefinition.action.timing[x]",min:0,max:1,description:"",isArray:!1,constraints:[],type:["dateTime","Period","Range","Timing"].map(e=>({code:e}))};function nc(e){let{action:o,actionType:t}=e,[r,a]=di(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(Yo,{value:{reference:o.definitionCanonical}})),r&&E.default.createElement("div",null,E.default.createElement(Me,{property:ol,propertyType:a,value:r})))}function fc(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(ui,{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($a,{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($a,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});case"questionnaire":return E.default.createElement($a,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:o,onChange:e.onChange});case"task":return E.default.createElement($a,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});default:return null}})(),E.default.createElement(We,{title:"Timing",description:"When the action should take place."},E.default.createElement(lc,{name:"timing-"+o.id,action:o,onChange:e.onChange})))}function $a(e){let{id:o,definitionCanonical:t}=e.action,r=t?.startsWith(e.resourceType+"/")?{reference:t}:void 0;return E.default.createElement(Lr,{name:o,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:a=>{a?e.onChange({...e.action,definitionCanonical:(0,si.getReferenceString)(a)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function lc(e){let o=e.action,t="timing",[r,a]=di(o);return E.default.createElement(Co,{property:ol,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(n,f)=>{e.onChange(Ar(o,t,f??t,ol,n))}})}function sc(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task"}function di(e){return je({type:"PlanDefinitionAction",value:e},"timing")}var el=1;function ci(e){if(e){if(e.startsWith("id-")){let o=parseInt(e.substring(3),10);isNaN(o)||(el=Math.max(el,o+1))}return e}return"id-"+el++}function ic(e){return{...e,action:mi(e.action)}}function mi(e){if(e)return e.map(o=>({...o,id:ci(o.id),action:mi(o.action)}))}var z=require("@mantine/core"),ja=require("@medplum/core");var y=m(require("react"),1);var ve=require("@mantine/core"),re=require("@medplum/core"),te=m(require("react"),1);var Be=require("@medplum/core"),Xr=(M=>(M.group="group",M.display="display",M.question="question",M.boolean="boolean",M.decimal="decimal",M.integer="integer",M.date="date",M.dateTime="dateTime",M.time="time",M.string="string",M.text="text",M.url="url",M.choice="choice",M.openChoice="open-choice",M.attachment="attachment",M.reference="reference",M.quantity="quantity",M))(Xr||{});function tl(e){return e.type==="choice"||e.type==="open-choice"}function rl(e,o){if(!e.enableWhen)return!0;let t=e.enableBehavior??"any";for(let r of e.enableWhen){let a=pi(o,r.question);if(r.operator==="exists"&&!r.answerBoolean&&!a?.length){if(t==="any")return!0;continue}let{anyMatch:n,allMatch:f}=dc(r,a,t);if(t==="any"&&n)return!0;if(t==="all"&&!f)return!1}return t!=="any"}function al(e,o,t){return e.map(r=>{let a=t.answerOption?.find(f=>(0,Be.formatCoding)(f.valueCoding)===r||f[o]===r),n=(0,Be.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:a},"value");return{[o]:n?.value}})}function pi(e,o){if(e)for(let t of e){if(t.linkId===o)return t.answer;if(t.item){let r=pi(t.item,o);if(r)return r}}}function uc(e,o,t){if(t==="exists")return!!e===o.value;if(e){let r=t==="="||t==="!="?t?.replace("=","~"):t,[{value:a}]=(0,Be.evalFhirPathTyped)(`%actualAnswer ${r} %expectedAnswer`,[e],{actualAnswer:e,expectedAnswer:o});return a}else return!1}function dc(e,o,t){let r=o||[],a=(0,Be.getTypedPropertyValue)({type:"QuestionnaireItemEnableWhen",value:e},"answer[x]"),n=!1,f=!0;for(let s of r){let l=(0,Be.getTypedPropertyValue)({type:"QuestionnaireResponseItemAnswer",value:s},"value[x]"),{operator:i}=e;if(uc(l,a,i)?n=!0:f=!1,t==="any"&&n)break}return{anyMatch:n,allMatch:f}}function Jr(e){let o=(0,Be.getExtension)(e,"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource");if(o){if(o.valueCode!==void 0)return[o.valueCode];if(o.valueCodeableConcept)return o.valueCodeableConcept?.coding?.map(t=>t.code)}}function $r(e,o){let t=(0,Be.deepClone)(e),r=(0,Be.getExtension)(t,"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource");return!o||o.length===0?(r&&(t.extension=t.extension?.filter(a=>a!==r)),t):(r||(t.extension||(t.extension=[]),r={url:"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource"},t.extension.push(r)),o.length===1?(r.valueCode=o[0],delete r.valueCodeableConcept):(r.valueCodeableConcept={coding:o.map(a=>({code:a}))},delete r.valueCode),t)}function nl(e){return{resourceType:"QuestionnaireResponse",questionnaire:(0,Be.getReferenceString)(e),item:xi(e.item)}}function xi(e){return e?.map(Ka)??[]}function Ka(e){return{id:mc(),linkId:e.linkId,text:e.text,item:xi(e.item),answer:e.initial?.map(pc)??[]}}var cc=1;function mc(){return"id-"+cc++}function pc(e){return{...e}}function fl(e){return e.value.display||e.value.reference||(0,Be.stringify)(e.value)}function ll(e){let o=e?.item?.[0];return o&&(0,Be.getExtension)(o,"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl")?.valueCodeableConcept?.coding?.[0]?.code==="page"?e.item.length:1}function Kr(e){let o=e.item,t=e.response;function r(l){let i;Array.isArray(l)?i=l:e.index>=(e.response?.answer?.length??0)?i=(e.response?.answer??[]).concat([l]):i=(e.response?.answer??[]).map((c,d)=>d===e.index?l:c)??[],e.onChange({id:t?.id,linkId:t?.linkId,text:o.text,answer:i})}let a=o.type;if(!a)return null;let n=o.linkId;if(!n)return null;let f=o.initial&&o.initial.length>0?o.initial[0]:void 0,s=sl(t,e.index)??(0,re.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:f},"value");switch(a){case"display":return te.default.createElement("p",{key:e.item.linkId},e.item.text);case"boolean":return te.default.createElement(kr,{key:e.item.linkId,title:e.item.text,htmlFor:e.item.linkId},te.default.createElement(ve.Checkbox,{id:e.item.linkId,name:e.item.linkId,defaultChecked:s?.value,onChange:l=>r({valueBoolean:l.currentTarget.checked})}));case"decimal":return te.default.createElement(ve.TextInput,{type:"number",step:"any",id:n,name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueDecimal:l.currentTarget.valueAsNumber})});case"integer":return te.default.createElement(ve.TextInput,{type:"number",step:1,id:n,name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueInteger:l.currentTarget.valueAsNumber})});case"date":return te.default.createElement(ve.TextInput,{type:"date",id:n,name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueDate:l.currentTarget.value})});case"dateTime":return te.default.createElement(no,{name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueDateTime:l})});case"time":return te.default.createElement(ve.TextInput,{type:"time",id:n,name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueTime:l.currentTarget.value})});case"string":case"url":return te.default.createElement(ve.TextInput,{id:n,name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueString:l.currentTarget.value})});case"text":return te.default.createElement(ve.Textarea,{id:n,name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueString:l.currentTarget.value})});case"attachment":return te.default.createElement(ve.Group,{py:4},te.default.createElement(Sr,{name:n,defaultValue:s?.value,onChange:l=>r({valueAttachment:l})}));case"reference":return te.default.createElement(Dt,{name:n,required:o.required,targetTypes:Jr(o),defaultValue:s?.value,onChange:l=>r({valueReference:l})});case"quantity":return te.default.createElement(_e,{name:n,required:o.required,defaultValue:s?.value,onChange:l=>r({valueQuantity:l}),disableWheel:!0});case"choice":case"open-choice":return yc(o)&&!o.answerValueSet?te.default.createElement(xc,{name:n,item:o,initial:f,response:t,onChangeAnswer:l=>r(l)}):te.default.createElement(Ic,{name:n,item:o,initial:f,response:t,onChangeAnswer:l=>r(l)});default:return null}}function xc(e){let{name:o,item:t,initial:r,response:a}=e;if(!t.answerOption?.length)return te.default.createElement(hi,null);let n=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),f=[""];for(let l of t.answerOption){let i=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:l},"value");f.push(Ii(i))}let s=sl(a)??n;if(t.repeats){let{propertyName:l,data:i}=vc(e.item),u=hc(a);return te.default.createElement(ve.MultiSelect,{data:i,placeholder:"Select items",searchable:!0,defaultValue:u||[Ii(n)],onChange:c=>{let d=al(c,l,t);e.onChangeAnswer(d)}})}return te.default.createElement(ve.NativeSelect,{id:o,name:o,onChange:l=>{let i=l.currentTarget.selectedIndex;if(i===0){e.onChangeAnswer({});return}let u=t.answerOption[i-1],c=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:u},"value"),d="value"+(0,re.capitalize)(c.type);e.onChangeAnswer({[d]:c.value})},defaultValue:(0,re.formatCoding)(s?.value)||s?.value,data:f})}function Ic(e){let{name:o,item:t,initial:r,onChangeAnswer:a,response:n}=e;return!t.answerOption?.length&&!t.answerValueSet?te.default.createElement(hi,null):t.answerValueSet?te.default.createElement(Mr,{name:o,binding:t.answerValueSet,onChange:f=>a({valueCoding:f})}):te.default.createElement(gc,{name:n?.id??o,item:t,initial:r,response:n,onChangeAnswer:a})}function gc(e){let{name:o,item:t,initial:r,onChangeAnswer:a,response:n}=e,f=(0,re.getElementDefinition)("QuestionnaireItemAnswerOption","value[x]"),s=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),l=[],i;if(t.answerOption)for(let d=0;d<t.answerOption.length;d++){let g=t.answerOption[d],P=`${o}-option-${d}`,v=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:g},"value");s&&(0,re.stringify)(v)===(0,re.stringify)(s)&&(i=P),l.push([P,v])}let u=sl(n),c=Cc(l,u);return te.default.createElement(ve.Radio.Group,{name:o,value:c??i,onChange:d=>{let g=l.find(P=>P[0]===d);if(g){let P=g[1],v="value"+(0,re.capitalize)(P.type);a({[v]:P.value})}}},l.map(([d,g])=>te.default.createElement(ve.Radio,{key:d,id:d,value:d,py:4,label:te.default.createElement(Me,{property:f,propertyType:g.type,value:g.value})})))}function hi(){return te.default.createElement(ve.TextInput,{disabled:!0,placeholder:"No Answers Defined"})}function Ci(e){return(0,re.getTypedPropertyValue)({type:"QuestionnaireItemAnswer",value:e},"value")}function sl(e,o=0){let t=e.answer;return Ci(t?.[o]??{})}function hc(e){let o=e.answer;return o?o.map(r=>Ci(r)).map(r=>(0,re.formatCoding)(r?.value)||r?.value):[]}function Cc(e,o){return e.find(t=>(0,re.deepEquals)(t[1].value,o?.value))?.[0]}function Ii(e){if(e)return e.type==="CodeableConcept"?(0,re.formatCodeableConcept)(e.value):e.type==="Coding"?(0,re.formatCoding)(e.value):e.type==="Reference"?fl(e):e.value.toString()}function yc(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function vc(e){if(e.answerOption?.length===0)return{propertyName:"",data:[]};let o=e.answerOption[0],t=(0,re.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:o},"value"),r="value"+(0,re.capitalize)(t.type),a=(e.answerOption??[]).map(n=>({value:gi(n,r),label:gi(n,r)}));return{propertyName:r,data:a}}function gi(e,o){return(0,re.formatCoding)(e.valueCoding)||e[o]?.toString()}var Sc=(0,z.createStyles)(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},questionBody:{maxWidth:600},topActions:{position:"absolute",right:32,top:1,padding:4,color:e.colors.gray[5],fontSize:e.fontSizes.xs},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},movementActions:{position:"absolute",right:8,top:0,paddingTop:8,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},movementIcons:{color:e.colors.gray[5]},columnAlignment:{display:"flex",flexDirection:"column"},linkIdInput:{width:100,marginBottom:4},typeSelect:{width:100}}));function bc(e){let o=T(),t=Z(e.questionnaire),[r,a]=(0,y.useState)(!1),[n,f]=(0,y.useState)(),[s,l]=(0,y.useState)(),[i,u]=(0,y.useState)();function c(){u(void 0)}function d(){l(void 0)}return(0,y.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>a(!0)).catch(console.log)},[o]),(0,y.useEffect)(()=>(f(kc(t??{resourceType:"Questionnaire"})),document.addEventListener("mouseover",c),document.addEventListener("click",d),()=>{document.removeEventListener("mouseover",c),document.removeEventListener("click",d)}),[t]),!r||!n?null:y.default.createElement("div",null,y.default.createElement(se,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(n)},y.default.createElement(yi,{item:n,selectedKey:s,setSelectedKey:l,hoverKey:i,setHoverKey:u,onChange:f}),y.default.createElement(z.Button,{type:"submit"},"Save")))}function yi(e){let{classes:o,cx:t}=Sc(),r=e.item,a=e.item,n=(0,ja.isResource)(e.item),f=n||a.type==="group",s=a.linkId??"[untitled]",l=e.selectedKey===e.item.id,i=e.hoverKey===e.item.id,u=(0,y.useRef)();u.current=e.item;function c(D){q(D),e.setSelectedKey(e.item.id)}function d(D){q(D),e.setHoverKey(e.item.id)}function g(D){let V=u.current;e.onChange({...V,item:V.item?.map(ge=>ge.id===D.id?D:ge)})}function P(D){e.onChange({...e.item,item:[...e.item.item??[],D]})}function v(D){e.onChange({...e.item,item:e.item.item?.filter(V=>V!==D)})}function k(D,V){e.onChange({...u.current,[D]:V})}function M(D){e.onChange({...e.item,...D})}function A(D){e.onChange({...e.item,item:e.item.item?.map(V=>V===D?{...V,repeats:!V.repeats}:V)})}function w(D,V){let ge=Mc(e.item.item,D,V);e.onChange({...e.item,item:ge})}let oe=t(o.section,{[o.editing]:l,[o.hovering]:i&&!l});return y.default.createElement("div",{"data-testid":a.linkId,className:oe,onClick:c,onMouseOver:d},y.default.createElement("div",{className:o.questionBody},l?y.default.createElement(y.default.Fragment,null,n&&y.default.createElement(z.TextInput,{size:"xl",defaultValue:r.title,onChange:D=>k("title",D.currentTarget.value)}),!n&&y.default.createElement(z.Textarea,{autosize:!0,minRows:2,defaultValue:a.text,onChange:D=>k("text",D.currentTarget.value)}),a.type==="reference"&&y.default.createElement(Tc,{item:a,onChange:M}),tl(a)&&y.default.createElement(Pc,{item:a,onChange:D=>M(D)})):y.default.createElement(y.default.Fragment,null,r.title&&y.default.createElement(z.Title,null,r.title),a.text&&y.default.createElement("div",null,a.text),!f&&y.default.createElement(Kr,{item:a,index:0,onChange:()=>{},response:{}}))),a.item?.map((D,V)=>y.default.createElement("div",{key:D.id},y.default.createElement(yi,{item:D,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,isFirst:V===0,isLast:V===(e.item.item??[]).length-1,setHoverKey:e.setHoverKey,onChange:g,onRemove:()=>v(D),onRepeatable:A,onMoveUp:()=>w(V,-1),onMoveDown:()=>w(V,1)}))),!f&&y.default.createElement("div",{className:o.topActions},l?y.default.createElement(y.default.Fragment,null,y.default.createElement(z.TextInput,{size:"xs",className:o.linkIdInput,defaultValue:a.linkId,onChange:D=>k("linkId",D.currentTarget.value)}),!f&&y.default.createElement(z.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:a.type,onChange:D=>k("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"}]})):y.default.createElement("div",null,s)),!n&&y.default.createElement(z.Box,{className:o.movementActions},y.default.createElement(z.Box,{className:o.columnAlignment},!e.isFirst&&y.default.createElement(z.Anchor,{href:"#",onClick:D=>{D.preventDefault(),e.onMoveUp&&e.onMoveUp()}},y.default.createElement(gn,{"data-testid":"up-button",size:15,className:o.movementIcons})),!e.isLast&&y.default.createElement(z.Anchor,{href:"#",onClick:D=>{D.preventDefault(),e.onMoveDown&&e.onMoveDown()}},y.default.createElement(In,{"data-testid":"down-button",size:15,className:o.movementIcons})))),y.default.createElement("div",{className:o.bottomActions},f&&y.default.createElement(y.default.Fragment,null,y.default.createElement(z.Anchor,{href:"#",onClick:D=>{D.preventDefault(),P({id:Ft(),linkId:dl("q"),type:"string",text:"Question"})}},"Add item"),y.default.createElement(z.Anchor,{href:"#",onClick:D=>{D.preventDefault(),P({id:Ft(),linkId:dl("g"),type:"group",text:"Group"})}},"Add group")),n&&y.default.createElement(z.Anchor,{href:"#",onClick:D=>{D.preventDefault(),P(Ac())}},"Add Page"),l&&!n&&y.default.createElement(y.default.Fragment,null,y.default.createElement(z.Anchor,{href:"#",onClick:D=>{D.preventDefault(),e.onRepeatable&&e.onRepeatable(a)}},a.repeats?"Remove Repeatable":"Make Repeatable"),y.default.createElement(z.Anchor,{href:"#",onClick:D=>{D.preventDefault(),e.onRemove&&e.onRemove()}},"Remove"))))}function Pc(e){let o=(0,ja.getElementDefinition)("QuestionnaireItemAnswerOption","value[x]"),t=e.item.answerOption??[];return y.default.createElement("div",null,e.item.answerValueSet!==void 0?y.default.createElement(z.TextInput,{placeholder:"Enter Value Set",defaultValue:e.item.answerValueSet,onChange:r=>e.onChange({...e.item,answerValueSet:r.target.value})}):y.default.createElement(Dc,{options:t,property:o,item:e.item,onChange:e.onChange}),y.default.createElement(z.Box,{display:"flex"},y.default.createElement(z.Anchor,{href:"#",onClick:r=>{q(r),e.onChange({...e.item,answerValueSet:void 0,answerOption:[...t,{id:Ft()}]})}},"Add choice"),y.default.createElement(z.Space,{w:"lg"}),y.default.createElement(z.Anchor,{href:"#",onClick:r=>{q(r),e.onChange({...e.item,answerOption:[],answerValueSet:""})}},"Add value set")))}function Dc(e){return y.default.createElement("div",null,e.options.map(o=>{let[t,r]=je({type:"QuestionnaireItemAnswerOption",value:o},"value");return y.default.createElement("div",{key:o.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},y.default.createElement("div",null,y.default.createElement(Co,{key:o.id,name:"value[x]",property:e.property,defaultPropertyType:r,defaultValue:t,onChange:(a,n)=>{let f=[...e.options],s=f.findIndex(l=>l.id===o.id);f[s]={id:o.id,[n]:a},e.onChange({...e.item,answerOption:f})}})),y.default.createElement("div",null,y.default.createElement(z.Anchor,{href:"#",onClick:a=>{q(a),e.onChange({...e.item,answerOption:e.options.filter(n=>n.id!==o.id)})}},"Remove")))}))}function Tc(e){let o=Jr(e.item)??[];return y.default.createElement(y.default.Fragment,null,o.map((t,r)=>y.default.createElement(z.Group,{key:`${t}-${r}`},y.default.createElement(qt,{name:"resourceType",placeholder:"Resource Type",defaultValue:t,onChange:a=>{e.onChange($r(e.item,o.map(n=>n===t?a:n)))}}),y.default.createElement(z.Anchor,{href:"#",onClick:a=>{q(a),e.onChange($r(e.item,o.filter(n=>n!==t)))}},"Remove"))),y.default.createElement(z.Anchor,{href:"#",onClick:t=>{q(t),e.onChange($r(e.item,[...o,""]))}},"Add Resource Type"))}var il=1,ul=1;function dl(e){return e+il++}function Ft(){return"id-"+ul++}function kc(e){return{...e,id:e.id||Ft(),item:vi(e.item)}}function vi(e){if(e)return e.forEach(o=>{o.id?.match(/^id-\d+$/)&&(ul=Math.max(ul,parseInt(o.id.substring(3),10)+1)),o.linkId?.match(/^q\d+$/)&&(il=Math.max(il,parseInt(o.linkId.substring(1),10)+1))}),e.map(o=>({...o,id:o.id||Ft(),item:vi(o.item),answerOption:Bc(o.answerOption)}))}function Bc(e){if(e)return e.map(o=>({...o,id:o.id||Ft()}))}function Ac(){return{id:Ft(),linkId:dl("s"),type:"group",text:"New Page",extension:[{url:"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl",valueCodeableConcept:{coding:[{system:"http://hl7.org/fhir/questionnaire-item-control",code:"page"}]}}]}}function Mc(e,o,t){let r=e??[],a=o+t;if(a<0||a>=r.length)return r;let n=[...r];return[n[o],n[a]]=[n[a],n[o]],n}var Di=require("@mantine/core"),Za=require("@medplum/core");var Io=m(require("react"),1);var xo=require("@mantine/core"),oo=m(require("react"),1);var Si=require("@mantine/core"),ut=m(require("react"),1);function _a(e){let{item:o,response:t,onChange:r}=e,[a,n]=(0,ut.useState)(Fc(o,t??{}));if(!e.checkForQuestionEnabled(o)||!t)return null;if(o.type==="display")return ut.default.createElement("p",{key:o.linkId},o.text);let f=o?.repeats&&o.type!=="choice"&&o.type!=="open-choice";return o.type==="boolean"?ut.default.createElement(Kr,{key:o.linkId,item:o,response:t,onChange:s=>r([s]),index:0}):ut.default.createElement(We,{key:e.item.linkId,htmlFor:e.item.linkId,title:e.item.text,withAsterisk:e.item.required},[...Array(a)].map((s,l)=>ut.default.createElement(Kr,{key:`${o.linkId}-${l}`,item:o,response:t,onChange:i=>r([i]),index:l})),f&&ut.default.createElement(Si.Anchor,{onClick:()=>n(s=>s+1)},"Add Item"))}function Fc(e,o){if(e.type==="choice"||e.type==="open-choice")return 1;let t=o.answer;return t?.length?t.length:1}var ir=require("@mantine/core"),eo=m(require("react"),1);function cl(e){let[o,t]=(0,eo.useState)(e.response);if(o.length===0)return null;function r(n,f){let s=o.map((l,i)=>i===f?n[0]:l);t(s),e.onChange(s)}function a(){let n=Ka(e.item);t([...o,n])}return eo.default.createElement(eo.default.Fragment,null,o.map((n,f)=>eo.default.createElement(bi,{key:n.id,item:e.item,response:n,checkForQuestionEnabled:e.checkForQuestionEnabled,onChange:s=>r(s,f)})),e.item.repeats&&eo.default.createElement(ir.Anchor,{onClick:a},`Add Group: ${e.item.text}`))}function bi(e){let{response:o,checkForQuestionEnabled:t,onChange:r}=e;function a(n){let s=o.item?.map(i=>n.find(c=>c.id===i.id)??i)?.concat(n.slice(1)),l={...o,item:s};r([l])}return e.checkForQuestionEnabled(e.item)?eo.default.createElement("div",{key:e.item.linkId},e.item.text&&eo.default.createElement(ir.Title,{order:3,mb:"md"},e.item.text),eo.default.createElement(ir.Stack,null,e.item.item?.map(n=>n.type==="group"?n.repeats?eo.default.createElement(cl,{key:n.linkId,item:n,response:o.item?.filter(f=>f.linkId===n.linkId)??[],checkForQuestionEnabled:t,onChange:a}):eo.default.createElement(bi,{key:n.linkId,item:n,checkForQuestionEnabled:t,response:o.item?.find(f=>f.linkId===n.linkId)??{},onChange:a}):eo.default.createElement(_a,{key:n.linkId,item:n,response:o.item?.find(f=>f.linkId===n.linkId),onChange:a,checkForQuestionEnabled:t})))):null}function Pi(e){let{items:o,response:t,activePage:r,onChange:a,nextStep:n,prevStep:f,numberOfPages:s,renderPages:l,submitButtonText:i,checkForQuestionEnabled:u}=e,c=o.map(d=>{let g=t?.item?.filter(v=>v.linkId===d.linkId)??[],P=d.type==="group"?oo.default.createElement(cl,{key:d.linkId,item:d,response:g,onChange:a,checkForQuestionEnabled:u}):oo.default.createElement(_a,{key:d.linkId,item:d,response:g?.[0],onChange:a,checkForQuestionEnabled:u});return l?oo.default.createElement(xo.Stepper.Step,{key:d.linkId,label:d.text},P):P});return oo.default.createElement(oo.default.Fragment,null,l&&oo.default.createElement(xo.Stepper,{active:r??0,allowNextStepsSelect:!1,p:6},c),!l&&oo.default.createElement(xo.Stack,null,c),oo.default.createElement(wc,{activePage:r??0,numberOfPages:s,nextStep:n,prevStep:f,submitButtonText:i}))}function wc(e){let o=e.activePage>0,t=e.activePage<e.numberOfPages-1,r=e.activePage===e.numberOfPages-1;return oo.default.createElement(xo.Group,{position:"right",mt:"xl",spacing:"xs"},o&&oo.default.createElement(xo.Button,{onClick:e.prevStep},"Back"),t&&oo.default.createElement(xo.Button,{onClick:a=>{a.currentTarget.closest("form").reportValidity()&&e.nextStep()}},"Next"),r&&oo.default.createElement(xo.Button,{type:"submit"},e.submitButtonText??"Submit"))}function ml(e){let o=T(),t=o.getProfile(),[r,a]=(0,Io.useState)(!1),n=Z(e.questionnaire),[f,s]=(0,Io.useState)(),[l,i]=(0,Io.useState)(0);(0,Io.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>o.requestSchema("QuestionnaireResponse")).then(()=>a(!0)).catch(console.log)},[o]),(0,Io.useEffect)(()=>{s(n?nl(n):void 0)},[n]);function u(v){let k=f?.item??[],A={resourceType:"QuestionnaireResponse",item:Ti(k,Array.isArray(v)?v:[v])};s(A)}function c(v){return rl(v,f?.item??[])}if(!r||!n)return null;let d=ll(n),g=()=>i(v=>v+1),P=()=>i(v=>v-1);return Io.default.createElement(se,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&f&&e.onSubmit({...f,questionnaire:(0,Za.getReferenceString)(n),subject:e.subject,source:(0,Za.createReference)(t),authored:new Date().toISOString(),status:"completed"})}},n.title&&Io.default.createElement(Di.Title,null,n.title),Io.default.createElement(Pi,{items:n.item??[],response:f,onChange:u,renderPages:d>1,activePage:l,numberOfPages:d,submitButtonText:e.submitButtonText,checkForQuestionEnabled:c,nextStep:g,prevStep:P}))}function Oc(e,o){let t=Ti(e.item??[],o.item??[]);return{...o,item:t.length>0?t:void 0,answer:o.answer&&o.answer.length>0?o.answer:e.answer}}function Ti(e,o){let t=[],r=new Set;for(let a of e){let n=a.id,f=o.find(s=>s.id===n);f?(t.push(Oc(a,f)),r.add(f.id)):t.push(a)}for(let a of o)r.has(a.id)||t.push(a);return t}var _=require("@mantine/core"),jr=require("@medplum/core");var H=m(require("react"),1);var Ec=(0,_.createStyles)(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[3]}`,borderRadius:e.radius.sm,transition:"all 0.1s"}})),Lc=["gender","age","gestationalAge","context","appliesTo","category"],Rc={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function Nc(e){e=Object.assign(Rc,e);let o=e.definition,[t,r]=(0,H.useState)([]),[a,n]=(0,H.useState)(1),[f,s]=(0,H.useState)(1);return(0,H.useEffect)(()=>{let P=Vc(o,s);r(qc(P.qualifiedInterval||[],n))},[o]),H.default.createElement(se,{testid:"reference-range-editor",onSubmit:l},H.default.createElement(_.Stack,null,t.map(P=>H.default.createElement(ki,{unit:Uc(o.quantitativeDetails?.unit),onChange:c,onAdd:d,onRemove:g,onRemoveGroup:u,key:`group-${P.id}`,intervalGroup:P}))),H.default.createElement(_.ActionIcon,{title:"Add Group",size:"sm",onClick:P=>{q(P),i({id:`group-id-${a}`,filters:{},intervals:[]}),n(v=>v+1)}},H.default.createElement(Et,null)),H.default.createElement(_.Group,{position:"right"},H.default.createElement(_.Button,{type:"submit"},"Save")));function l(){let P=t.flatMap(v=>v.intervals).filter(v=>!Qc(v));e.onSubmit({...o,qualifiedInterval:P})}function i(P){r(v=>[...v,P])}function u(P){r(v=>v.filter(k=>k.id!==P.id))}function c(P,v){r(k=>{k=[...k];let M=k.find(w=>w.id===P),A=M?.intervals.findIndex(w=>w.id===v.id);return A!==void 0&&M?.intervals[A]&&(M.intervals[A]=v),k})}function d(P,v){v.id===void 0&&(v.id=`id-${f}`,s(k=>k+1)),r(k=>{k=[...k];let M=k.findIndex(A=>A.id===P);if(M!==-1){let A={...k[M]};v={...v,...A.filters},A.intervals=[...A.intervals,v],k[M]=A}return k})}function g(P,v){r(k=>{k=[...k];let M=k.find(A=>A.id===P);return M&&(M.intervals=M.intervals.filter(A=>A.id!==v.id)),k})}}function ki(e){let{intervalGroup:o,unit:t}=e,{classes:r}=Ec();return H.default.createElement(Uo,{"data-testid":o.id,className:r.section},H.default.createElement(_.Stack,{spacing:"lg"},H.default.createElement(_.Group,{position:"right"},H.default.createElement(_.ActionIcon,{title:"Remove Group","data-testid":`remove-group-button-${o.id}`,key:`remove-group-button-${o.id}`,size:"sm",onClick:a=>{q(a),e.onRemoveGroup(o)}},H.default.createElement(Zo,null))),H.default.createElement(Hc,{intervalGroup:o,onChange:e.onChange}),H.default.createElement(_.Divider,null),o.intervals.map(a=>H.default.createElement(_.Stack,{key:`interval-${a.id}`,spacing:"xs"},H.default.createElement(_.Group,null,H.default.createElement(_.TextInput,{key:`condition-${a.id}`,"data-testid":`condition-${a.id}`,defaultValue:a.condition,label:"Condition: ",size:"sm",onChange:n=>{q(n),e.onChange(o.id,{...a,condition:n.currentTarget.value.trim()})}}),H.default.createElement(_.ActionIcon,{title:"Remove Interval",size:"sm",key:`remove-interval-${a.id}`,"data-testid":`remove-interval-${a.id}`,onClick:n=>{q(n),e.onRemove(o.id,a)}},H.default.createElement(Zo,null))),H.default.createElement($t,{onChange:n=>{e.onChange(o.id,{...a,range:n})},key:`range-${a.id}`,name:`range-${a.id}`,defaultValue:a.range}))),H.default.createElement(_.ActionIcon,{title:"Add Interval",size:"sm",onClick:a=>{q(a),e.onAdd(o.id,{range:{low:{unit:t},high:{unit:t}}})}},H.default.createElement(Et,null))))}function Hc(e){let{intervalGroup:o,onChange:t}=e;o.filters.age||(o.filters.age={});for(let r of["low","high"])o.filters.age[r]?.unit||(o.filters.age[r]={...o.filters.age[r],unit:"years",system:"http://unitsofmeasure.org"});return H.default.createElement(_.Stack,{style:{maxWidth:"50%"}},H.default.createElement(_.Group,null,H.default.createElement(_.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})}}})),H.default.createElement(_.Group,{spacing:"xs"},H.default.createElement(_.Text,{component:"label",htmlFor:`div-age-${o.id}`},"Age:"),H.default.createElement("div",{id:`div-age-${o.id}`},H.default.createElement($t,{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})}}))),H.default.createElement(_.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"}]}})}}}),H.default.createElement(_.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 Vc(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 qc(e,o){let t=1,r={};for(let a of e){let n=Gc(a);n in r||(r[n]={id:`group-id-${t++}`,filters:Object.fromEntries(Lc.map(f=>[f,a[f]])),intervals:[]}),r[n].intervals.push(a)}return o(t),Object.values(r)}function Gc(e){return[`gender=${e.gender}`,`age=${(0,jr.formatRange)(e.age)}`,`gestationalAge=${(0,jr.formatRange)(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map(t=>t.text).join("+")}`,`category=${e.category}`].join(":")}function Uc(e){return e&&((0,jr.getCodeBySystem)(e,"http://unitsofmeasure.org")||e.text)}function Qc(e){return e.range?.low?.value===void 0&&e.range?.high?.value===void 0}var bo=require("@mantine/core"),Ya=require("@medplum/core");var xe=m(require("react"),1);function zc(e){let o=T(),t=Z(e.value),[r,a]=(0,xe.useState)(!1),[n,f]=(0,xe.useState)();if((0,xe.useEffect)(()=>{t&&!r&&(o.executeBatch(s(t)).then(f).catch(console.log),a(!0))},[o,t,r]),!t||!n)return null;return xe.default.createElement(bo.Grid,null,t.action?.map((i,u)=>{let c=i.resource&&l(i.resource),d=c?.input?.[0]?.valueReference,g=c?.output?.[0]?.valueReference;return xe.default.createElement(xe.default.Fragment,{key:`action-${u}`},xe.default.createElement(bo.Grid.Col,{span:1,p:"md"},c?.status==="completed"?xe.default.createElement(Pn,null):xe.default.createElement(Gn,{color:"gray"})),xe.default.createElement(bo.Grid.Col,{span:9,p:"xs"},xe.default.createElement(bo.Text,{weight:500},i.title),i.description&&xe.default.createElement("div",null,i.description),xe.default.createElement("div",null,"Last edited by\xA0",xe.default.createElement(co,{value:c?.meta?.author}),"\xA0on\xA0",(0,Ya.formatDateTime)(c?.meta?.lastUpdated)),xe.default.createElement("div",null,"Status: ",xe.default.createElement(Hr,{status:c?.status||"unknown"}))),xe.default.createElement(bo.Grid.Col,{span:2,p:"md"},d&&!g&&xe.default.createElement(bo.Button,{onClick:()=>e.onStart(c,d)},"Start"),d&&g&&xe.default.createElement(bo.Button,{onClick:()=>e.onEdit(c,d,g)},"Edit")))}));function s(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 l(i){for(let u of n?.entry)if(u.resource&&i.reference===(0,Ya.getReferenceString)(u.resource))return u.resource}}var wi=require("@mantine/core");var be=m(require("react"),1);var Bi=require("@medplum/core");function en(e,o){let t=Wc(e,o);return Xc(t,e,o)}function Wc(e,o){let t=e.length,r=o.length,a=t+r+1,n=1+2*a,f=n/2|0,s=new Array(n);s[f+1]={i:0,j:-1,prev:void 0,snake:!0};for(let l=0;l<a;l++){for(let i=-l;i<=l;i+=2){let u=f+i,c=u+1,d=u-1,g=s[c],P=s[d],v,k=0;i===-l||i!==l&&P.i<g.i?(k=g.i,v=g):(k=P.i+1,v=P),s[d]=void 0;let M=k-i,A={i:k,j:M,prev:Jc(v),snake:!1};for(;k<t&&M<r&&e[k]===o[M];)k++,M++;if(k>A.i&&(A={i:k,j:M,prev:A,snake:!0}),s[u]=A,k>=t&&M>=r)return s[u]}s[f+l-1]=void 0}}function Xc(e,o,t){let r=[],a=e;for(a.snake&&(a=a.prev);a?.prev&&a.prev.j>=0;){let n=a.i,f=a.j;a=a.prev;let s=a.i,l=a.j,i={position:s,lines:o.slice(s,n)},u={position:l,lines:t.slice(l,f)},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 Jc(e){return e&&!e.snake&&e.prev?e.prev:e}function Ai(e){let o=e.entry.filter(r=>!!r.resource).map(r=>({meta:r.resource?.meta,lines:(0,Bi.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 $c(t,o),Kc(t),t}function $c(e,o){for(let t=1;t<o.length;t++){let r=en(o[t-1].lines,o[t].lines);for(let a of r){let n=a.original.position,f=a.original.lines,s=a.revised.lines;if((a.type==="delete"||a.type==="change")&&e.splice(n,f.length),a.type==="insert"||a.type==="change")for(let l=0;l<a.revised.lines.length;l++)e.splice(n+l,0,{id:o[t].meta.versionId,meta:o[t].meta,value:s[l],span:1})}}}function Kc(e){let o=0;for(;o<e.length;){let t=o;for(;t<e.length&&e[t].id===e[o].id;)e[t].span=-1,t++;e[o].span=t-o,o=t}}function Mi(e,o){return`/${e.resourceType}/${e.id}/_history/${o}`}function Fi(e){let o=Math.floor((Date.now()-Date.parse(e))/1e3),t=Math.floor(o/31536e3);if(t>0)return ur(t,"year");let r=Math.floor(o/2592e3);if(r>0)return ur(r,"month");let a=Math.floor(o/86400);if(a>0)return ur(a,"day");let n=Math.floor(o/3600);if(n>0)return ur(n,"hour");let f=Math.floor(o/60);return f>0?ur(f,"minute"):ur(o,"second")}function ur(e,o){return`${e} ${e===1?o:o+"s"} ago`}var jc=(0,wi.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 _c(e){let{classes:o}=jc(),t=T(),[r,a]=(0,be.useState)(e.history);if((0,be.useEffect)(()=>{!e.history&&e.resourceType&&e.id&&t.readHistory(e.resourceType,e.id).then(a).catch(console.log)},[t,e.history,e.resourceType,e.id]),!r)return be.default.createElement("div",null,"Loading...");let n=r.entry?.[0]?.resource;if(!n)return null;let f=Ai(r);return be.default.createElement("div",{className:o.container},be.default.createElement("table",{className:o.root},be.default.createElement("tbody",null,f.map((s,l)=>be.default.createElement("tr",{key:"row-"+l,className:s.span>0?o.startRow:o.normalRow},s.span>0&&be.default.createElement(be.default.Fragment,null,be.default.createElement("td",{className:o.author,rowSpan:s.span},be.default.createElement(Qo,{value:s.meta.author,link:!0})),be.default.createElement("td",{className:o.dateTime,rowSpan:s.span},be.default.createElement(Te,{to:Mi(n,s.meta.versionId)},Fi(s.meta.lastUpdated)))),be.default.createElement("td",{className:o.lineNumber},l+1),be.default.createElement("td",{className:o.line},be.default.createElement("pre",{className:o.pre},s.value)))))))}var Oi=require("@mantine/core"),pl=require("@medplum/core"),Ko=m(require("react"),1);var Zc=(0,Oi.createStyles)(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function Yc(e){let o=e.original,t=e.revised;e.ignoreMeta&&(o={...o,meta:void 0},t={...t,meta:void 0});let r=(0,pl.stringify)(o,!0).match(/[^\r\n]+/g),a=(0,pl.stringify)(t,!0).match(/[^\r\n]+/g),n=en(r,a);return Ko.default.createElement("pre",{style:{color:"gray"}},n.map((f,s)=>Ko.default.createElement(em,{key:"delta"+s,delta:f})))}function em(e){let{classes:o}=Zc();return Ko.default.createElement(Ko.default.Fragment,null,"...",Ko.default.createElement("br",null),e.delta.original.lines.length>0&&Ko.default.createElement("div",{className:o.removed},e.delta.original.lines.join(`
|
|
66
66
|
`)),e.delta.revised.lines.length>0&&Ko.default.createElement("div",{className:o.added},e.delta.revised.lines.join(`
|
|
67
|
-
`)),"...",Ko.default.createElement("br",null))}var Po=require("@mantine/core"),Oi=require("@medplum/core");var Oe=m(require("react"),1);function em(e){let o=T(),t=Z(e.defaultValue),[r,a]=(0,Oe.useState)(!1),[n,f]=(0,Oe.useState)();return(0,Oe.useEffect)(()=>{t&&(f((0,Oi.deepClone)(t)),o.requestSchema(t.resourceType).then(()=>a(!0)).catch(console.log))},[o,t]),!r||!n?Oe.default.createElement("div",null,"Loading..."):Oe.default.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:s=>{s.preventDefault(),e.onSubmit&&e.onSubmit(n)}},Oe.default.createElement(Po.Stack,{mb:"xl"},Oe.default.createElement(We,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},Oe.default.createElement(Po.TextInput,{name:"resourceType",defaultValue:n.resourceType,disabled:!0})),Oe.default.createElement(We,{title:"ID",htmlFor:"id",outcome:e.outcome},Oe.default.createElement(Po.TextInput,{name:"id",defaultValue:n.id,disabled:!0}))),Oe.default.createElement(Kt,{typeName:n.resourceType,defaultValue:n,outcome:e.outcome,onChange:f}),Oe.default.createElement(Po.Group,{position:"right",mt:"xl"},Oe.default.createElement(Po.Button,{type:"submit"},"OK"),e.onDelete&&Oe.default.createElement(Po.Button,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(n)}},"Delete")))}var Ei=require("@mantine/core"),Ya=require("@medplum/core");var Ie=m(require("react"),1);function om(e){let o=T(),[t,r]=(0,Ie.useState)(e.history);return(0,Ie.useEffect)(()=>{!e.history&&e.resourceType&&e.id&&o.readHistory(e.resourceType,e.id).then(r).catch(console.log)},[o,e.history,e.resourceType,e.id]),t?Ie.default.createElement(Ei.Table,{withBorder:!0,withColumnBorders:!0},Ie.default.createElement("thead",null,Ie.default.createElement("tr",null,Ie.default.createElement("th",null,"Author"),Ie.default.createElement("th",null,"Date"),Ie.default.createElement("th",null,"Version"))),Ie.default.createElement("tbody",null,t.entry?.map((a,n)=>Ie.default.createElement(tm,{key:"entry-"+n,entry:a})))):Ie.default.createElement("div",null,"Loading...")}function tm(e){let{response:o,resource:t}=e.entry;return t?Ie.default.createElement("tr",null,Ie.default.createElement("td",null,Ie.default.createElement(Qo,{value:t.meta?.author,link:!0})),Ie.default.createElement("td",null,(0,Ya.formatDateTime)(t.meta?.lastUpdated)),Ie.default.createElement("td",null,Ie.default.createElement(ke,{to:rm(t)},t.meta?.versionId))):Ie.default.createElement("tr",null,Ie.default.createElement("td",{colSpan:3},(0,Ya.normalizeErrorString)(o?.outcome)))}function rm(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}var ut=require("@mantine/core"),en=require("@medplum/core");var ae=m(require("react"),1);var am=(0,ut.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 nm(e){let{classes:o}=am(),t=Z(e.schedule),r=Z(e.questionnaire),[a,n]=(0,ae.useState)(Aa()),[f,s]=(0,ae.useState)(),[l,i]=(0,ae.useState)(),[u,c]=(0,ae.useState)(),[d]=fn("Slot",new URLSearchParams([["_count",(30*24).toString()],["schedule",(0,en.isReference)(e.schedule)?e.schedule.reference:(0,en.getReferenceString)(e.schedule)],["start","gt"+fm(a)],["start","lt"+lm(a)]]));if(!t||!d||!r)return null;let g=t.actor?.[0];return ae.default.createElement("div",{className:o.container,"data-testid":"scheduler"},ae.default.createElement("div",{className:o.info},g&&ae.default.createElement(Re,{value:g,size:"xl"}),g&&ae.default.createElement(ut.Text,{size:"xl",weight:500},ae.default.createElement(co,{value:g})),ae.default.createElement("p",null,"1 hour"),f&&ae.default.createElement("p",null,f.toLocaleDateString()),l&&ae.default.createElement("p",null,Li(new Date(l.start)))),ae.default.createElement("div",{className:o.selection},!f&&ae.default.createElement("div",null,ae.default.createElement("h3",null,"Select date"),ae.default.createElement(kf,{slots:d,onChangeMonth:n,onClick:s})),f&&!l&&ae.default.createElement("div",null,ae.default.createElement("h3",null,"Select time"),ae.default.createElement(ut.Stack,null,d.map(P=>{let v=new Date(P.start);return v.getTime()>f.getTime()&&v.getTime()<f.getTime()+24*3600*1e3&&ae.default.createElement("div",{key:P.id},ae.default.createElement(ut.Button,{variant:"outline",style:{width:150},onClick:()=>i(P)},Li(v)))}))),f&&l&&!u&&ae.default.createElement(cl,{questionnaire:r,submitButtonText:"Next",onSubmit:c}),f&&l&&u&&ae.default.createElement("div",null,ae.default.createElement("h3",null,"You're all set!"),ae.default.createElement("p",null,"Check your email for a calendar invite."))))}function fm(e){return Ri(e.getTime())}function lm(e){return Ri(e.getTime()+31*24*60*60*1e3)}function Ri(e){let o=new Date(Math.max(Date.now(),e));return o.setHours(0,0,0,0),o.toISOString()}function Li(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}var jr=require("@medplum/core"),Ni=m(require("react"),1);function sm(e){return Ni.default.createElement(Xo,{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,jr.createReference)(o)],subject:o.subject,sender:(0,jr.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",basedOn:[(0,jr.createReference)(o)],subject:o.subject,operator:(0,jr.createReference)(t),issued:new Date().toISOString(),content:r})})}var qi=require("@medplum/core"),To=m(require("react"),1);var Ee=require("@mantine/core"),Hi=require("@medplum/core"),Xe=m(require("react"),1);function on(e){let o=T(),[t,r]=(0,Xe.useState)();return Xe.default.createElement(se,{style:{maxWidth:400},onSubmit:async a=>{try{e.handleAuthResponse(await o.startNewProject({login:e.login,projectName:a.projectName}))}catch(n){r((0,Hi.normalizeOperationOutcome)(n))}}},Xe.default.createElement(Ee.Center,{sx:{flexDirection:"column"}},Xe.default.createElement($o,{size:32}),Xe.default.createElement(Ee.Title,null,"Create project")),Xe.default.createElement(Ee.Stack,{spacing:"xl"},Xe.default.createElement(Ee.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:we(t,"firstName")}),Xe.default.createElement(Ee.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",Xe.default.createElement(Ee.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",Xe.default.createElement(Ee.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),".")),Xe.default.createElement(Ee.Group,{position:"right",mt:"xl",noWrap:!0},Xe.default.createElement(Ee.Button,{type:"submit"},"Create project")))}var fe=require("@mantine/core"),Il=require("@medplum/core"),ne=m(require("react"),1);var Do=m(require("react"),1);function _r(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 tn(e){let o=T(),{googleClientId:t,handleGoogleCredential:r}=e,a=(0,Do.useRef)(null),[n,f]=(0,Do.useState)(typeof google<"u"),[s,l]=(0,Do.useState)(!1),[i,u]=(0,Do.useState)(!1);return(0,Do.useEffect)(()=>{if(typeof google>"u"){_r("https://accounts.google.com/gsi/client",()=>f(!0));return}s||(google.accounts.id.initialize({client_id:t,callback:r}),l(!0)),a.current&&!i&&(google.accounts.id.renderButton(a.current,{}),u(!0))},[o,t,s,n,a,i,r]),t?Do.default.createElement("div",{ref:a}):null}function rn(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 pl(e){typeof grecaptcha>"u"&&_r("https://www.google.com/recaptcha/api.js?render="+e)}function xl(e){return new Promise((o,t)=>{grecaptcha.ready(async()=>{try{o(await grecaptcha.execute(e,{action:"submit"}))}catch(r){t(r)}})})}function Vi(e){let o=rn(e.googleClientId),t=e.recaptchaSiteKey,r=T(),[a,n]=(0,ne.useState)(),f=kr(a,void 0);return(0,ne.useEffect)(()=>{t&&pl(t)},[t]),ne.default.createElement(se,{style:{maxWidth:400},onSubmit:async s=>{try{let l="";t&&(l=await xl(t)),e.handleAuthResponse(await r.startNewUser({projectId:e.projectId,clientId:e.clientId,firstName:s.firstName,lastName:s.lastName,email:s.email,password:s.password,remember:s.remember==="true",recaptchaSiteKey:t,recaptchaToken:l}))}catch(l){n((0,Il.normalizeOperationOutcome)(l))}}},ne.default.createElement(fe.Center,{sx:{flexDirection:"column"}},e.children),ne.default.createElement(At,{issues:f}),o&&ne.default.createElement(ne.default.Fragment,null,ne.default.createElement(fe.Group,{position:"center",p:"xl",style:{height:70}},ne.default.createElement(tn,{googleClientId:o,handleGoogleCredential:async s=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:s.clientId,googleCredential:s.credential,createUser:!0}))}catch(l){n((0,Il.normalizeOperationOutcome)(l))}}})),ne.default.createElement(fe.Divider,{label:"or",labelPosition:"center",my:"lg"})),ne.default.createElement(fe.Stack,{spacing:"xl"},ne.default.createElement(fe.TextInput,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:we(a,"firstName")}),ne.default.createElement(fe.TextInput,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:we(a,"lastName")}),ne.default.createElement(fe.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:we(a,"email")}),ne.default.createElement(fe.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,error:we(a,"password")}),ne.default.createElement(fe.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",ne.default.createElement(fe.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",ne.default.createElement(fe.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),"."),ne.default.createElement(fe.Text,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",ne.default.createElement(fe.Anchor,{href:"https://policies.google.com/privacy"},"Privacy\xA0Policy")," and ",ne.default.createElement(fe.Anchor,{href:"https://policies.google.com/terms"},"Terms\xA0of\xA0Service")," apply.")),ne.default.createElement(fe.Group,{position:"apart",mt:"xl",noWrap:!0},ne.default.createElement(fe.Checkbox,{name:"remember",label:"Remember me",size:"xs"}),ne.default.createElement(fe.Button,{type:"submit"},"Create account")))}function im(e){let{type:o,projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,onSuccess:f}=e,s=T(),[l,i]=(0,To.useState)(),[u,c]=(0,To.useState)();(0,To.useEffect)(()=>{o==="patient"&&l&&s.startNewPatient({login:l,projectId:t}).then(g=>s.processCode(g.code)).then(()=>f()).catch(g=>c((0,qi.normalizeOperationOutcome)(g)))},[s,o,t,l,f]);function d(g){g.code?s.processCode(g.code).then(()=>f()).catch(console.log):g.login&&i(g.login)}return To.default.createElement(Hr,{width:450},u&&To.default.createElement("pre",null,JSON.stringify(u,null,2)),!l&&To.default.createElement(Vi,{projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,handleAuthResponse:d},e.children),l&&o==="project"&&To.default.createElement(on,{login:l,handleAuthResponse:d}))}var gl=require("@mantine/notifications"),hl=require("@medplum/core"),Me=m(require("react"),1);var ce=require("@mantine/core"),Gi=require("@medplum/core"),J=m(require("react"),1);function Ui(e){let[o,t]=(0,J.useState)();return o?J.default.createElement(dm,{email:o,...e}):J.default.createElement(um,{setEmail:t,...e})}function um(e){let{setEmail:o,onRegister:t,handleAuthResponse:r,children:a,disableEmailAuth:n,...f}=e,s=T(),l=!e.disableGoogleAuth&&rn(e.googleClientId),i=(0,J.useCallback)(async d=>{if(!d.authorizeUrl)return!1;let g=JSON.stringify({...await s.ensureCodeChallenge(f),domain:d.domain}),P=new URL(d.authorizeUrl);return P.searchParams.set("state",g),window.location.assign(P.toString()),!0},[s,f]),u=(0,J.useCallback)(async d=>{let g=await s.post("auth/method",{email:d.email});await i(g)||o(d.email)},[s,i,o]),c=(0,J.useCallback)(async d=>{let g=await s.startGoogleLogin({...f,googleCredential:d.credential});await i(g)||r(g)},[s,f,i,r]);return J.default.createElement(se,{style:{maxWidth:400},onSubmit:u},J.default.createElement(ce.Center,{sx:{flexDirection:"column"}},a),l&&J.default.createElement(J.default.Fragment,null,J.default.createElement(ce.Group,{position:"center",p:"xl",style:{height:70}},J.default.createElement(tn,{googleClientId:l,handleGoogleCredential:c})),!n&&J.default.createElement(ce.Divider,{label:"or",labelPosition:"center",my:"lg"})),!n&&J.default.createElement(ce.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),J.default.createElement(ce.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},J.default.createElement("div",null,t&&J.default.createElement(ce.Anchor,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs"},"Register")),!n&&J.default.createElement(ce.Button,{type:"submit"},"Next")))}function dm(e){let{onForgotPassword:o,handleAuthResponse:t,children:r,...a}=e,n=T(),[f,s]=(0,J.useState)(),l=kr(f,void 0),i=(0,J.useCallback)(u=>{n.startLogin({...a,password:u.password,remember:u.remember==="on"}).then(t).catch(c=>s((0,Gi.normalizeOperationOutcome)(c)))},[n,a,t]);return J.default.createElement(se,{style:{maxWidth:400},onSubmit:i},J.default.createElement(ce.Center,{sx:{flexDirection:"column"}},r),J.default.createElement(At,{issues:l}),J.default.createElement(ce.Stack,{spacing:"xl"},J.default.createElement(ce.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:we(f,"password")})),J.default.createElement(ce.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},o&&J.default.createElement(ce.Anchor,{component:"button",type:"button",color:"dimmed",onClick:o,size:"xs"},"Forgot password"),J.default.createElement(ce.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),J.default.createElement(ce.Button,{type:"submit"},"Sign in")))}var qe=require("@mantine/core"),Qi=require("@medplum/core"),Je=m(require("react"),1);function zi(e){let o=T(),[t,r]=(0,Je.useState)();return Je.default.createElement(qe.Stack,null,Je.default.createElement(qe.Center,{sx:{flexDirection:"column"}},Je.default.createElement($o,{size:32}),Je.default.createElement(qe.Title,{order:3},"Choose profile")),Je.default.createElement(At,{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,Qi.normalizeOperationOutcome)(n)))}},Je.default.createElement(qe.Group,null,Je.default.createElement(qe.Avatar,{radius:"xl"}),Je.default.createElement("div",{style:{flex:1}},Je.default.createElement(qe.Text,{size:"sm",weight:500},a.profile?.display),Je.default.createElement(qe.Text,{color:"dimmed",size:"xs"},a.project?.display))))))}var to=require("@mantine/core"),ko=m(require("react"),1);function Wi(e){let o=T();return ko.default.createElement(se,{style:{maxWidth:400},onSubmit:t=>{o.post("auth/scope",{login:e.login,scope:Object.keys(t).join(" ")}).then(e.handleAuthResponse).catch(console.log)}},ko.default.createElement(to.Stack,null,ko.default.createElement(to.Center,{sx:{flexDirection:"column"}},ko.default.createElement($o,{size:32}),ko.default.createElement(to.Title,null,"Choose scope")),ko.default.createElement(to.Stack,null,(e.scope??"openid").split(" ").map(t=>ko.default.createElement(to.Checkbox,{key:t,id:t,name:t,label:t,defaultChecked:!0}))),ko.default.createElement(to.Group,{position:"right",mt:"xl"},ko.default.createElement(to.Button,{type:"submit"},"Set scope"))))}var Ge=require("@mantine/core"),Xi=require("@medplum/core");var $e=m(require("react"),1);function Ji(e){let o=T(),[t,r]=(0,$e.useState)();return $e.default.createElement(se,{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,Xi.normalizeErrorString)(n)))}},$e.default.createElement(Ge.Stack,null,$e.default.createElement(Ge.Center,{sx:{flexDirection:"column"}},$e.default.createElement($o,{size:32}),$e.default.createElement(Ge.Title,null,"Enter MFA code")),t&&$e.default.createElement(Ge.Alert,{icon:$e.default.createElement(pt,{size:16}),title:"Error",color:"red"},t),$e.default.createElement(Ge.Stack,null,$e.default.createElement(Ge.TextInput,{name:"token",label:"MFA code",required:!0})),$e.default.createElement(Ge.Group,{position:"right",mt:"xl"},$e.default.createElement(Ge.Button,{type:"submit"},"Submit code"))))}function cm(e){let{login:o,chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:n,onCode:f,...s}=e,l=T(),[i,u]=(0,Me.useState)(),[c,d]=(0,Me.useState)(!1),[g,P]=(0,Me.useState)(),v=(0,Me.useCallback)(A=>{f?f(A):l.processCode(A).then(()=>{r&&r()}).catch(w=>(0,gl.showNotification)({color:"red",message:(0,hl.normalizeErrorString)(w)}))},[l,f,r]),k=(0,Me.useCallback)(A=>{d(!!A.mfaRequired),A.login&&u(A.login),A.memberships&&P(A.memberships),A.code&&(t?P(void 0):v(A.code))},[t,v]),M=(0,Me.useCallback)(A=>{v(A.code)},[v]);return(0,Me.useEffect)(()=>{o&&!i&&l.get("auth/login/"+o).then(k).catch(A=>(0,gl.showNotification)({color:"red",message:(0,hl.normalizeErrorString)(A)}))},[l,o,i,k]),Me.default.createElement(Hr,{width:450},(()=>i?c?Me.default.createElement(Ji,{login:i,handleAuthResponse:k}):g?Me.default.createElement(zi,{login:i,memberships:g,handleAuthResponse:k}):e.projectId==="new"?Me.default.createElement(on,{login:i,handleAuthResponse:k}):e.chooseScopes?Me.default.createElement(Wi,{login:i,scope:e.scope,handleAuthResponse:M}):Me.default.createElement("div",null,"Success"):Me.default.createElement(Ui,{onForgotPassword:a,onRegister:n,handleAuthResponse:k,disableGoogleAuth:e.disableGoogleAuth,disableEmailAuth:e.disableEmailAuth,...s},e.children))())}
|
|
67
|
+
`)),"...",Ko.default.createElement("br",null))}var Po=require("@mantine/core"),Ei=require("@medplum/core");var we=m(require("react"),1);function om(e){let o=T(),t=Z(e.defaultValue),[r,a]=(0,we.useState)(!1),[n,f]=(0,we.useState)();return(0,we.useEffect)(()=>{t&&(f((0,Ei.deepClone)(t)),o.requestSchema(t.resourceType).then(()=>a(!0)).catch(console.log))},[o,t]),!r||!n?we.default.createElement("div",null,"Loading..."):we.default.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:s=>{s.preventDefault(),e.onSubmit&&e.onSubmit(n)}},we.default.createElement(Po.Stack,{mb:"xl"},we.default.createElement(We,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},we.default.createElement(Po.TextInput,{name:"resourceType",defaultValue:n.resourceType,disabled:!0})),we.default.createElement(We,{title:"ID",htmlFor:"id",outcome:e.outcome},we.default.createElement(Po.TextInput,{name:"id",defaultValue:n.id,disabled:!0}))),we.default.createElement(jt,{typeName:n.resourceType,defaultValue:n,outcome:e.outcome,onChange:f}),we.default.createElement(Po.Group,{position:"right",mt:"xl"},we.default.createElement(Po.Button,{type:"submit"},"OK"),e.onDelete&&we.default.createElement(Po.Button,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(n)}},"Delete")))}var Li=require("@mantine/core"),on=require("@medplum/core");var Ie=m(require("react"),1);function tm(e){let o=T(),[t,r]=(0,Ie.useState)(e.history);return(0,Ie.useEffect)(()=>{!e.history&&e.resourceType&&e.id&&o.readHistory(e.resourceType,e.id).then(r).catch(console.log)},[o,e.history,e.resourceType,e.id]),t?Ie.default.createElement(Li.Table,{withBorder:!0,withColumnBorders:!0},Ie.default.createElement("thead",null,Ie.default.createElement("tr",null,Ie.default.createElement("th",null,"Author"),Ie.default.createElement("th",null,"Date"),Ie.default.createElement("th",null,"Version"))),Ie.default.createElement("tbody",null,t.entry?.map((a,n)=>Ie.default.createElement(rm,{key:"entry-"+n,entry:a})))):Ie.default.createElement("div",null,"Loading...")}function rm(e){let{response:o,resource:t}=e.entry;return t?Ie.default.createElement("tr",null,Ie.default.createElement("td",null,Ie.default.createElement(Qo,{value:t.meta?.author,link:!0})),Ie.default.createElement("td",null,(0,on.formatDateTime)(t.meta?.lastUpdated)),Ie.default.createElement("td",null,Ie.default.createElement(Te,{to:am(t)},t.meta?.versionId))):Ie.default.createElement("tr",null,Ie.default.createElement("td",{colSpan:3},(0,on.normalizeErrorString)(o?.outcome)))}function am(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}var dt=require("@mantine/core"),tn=require("@medplum/core");var ae=m(require("react"),1);var nm=(0,dt.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 fm(e){let{classes:o}=nm(),t=Z(e.schedule),r=Z(e.questionnaire),[a,n]=(0,ae.useState)(Fa()),[f,s]=(0,ae.useState)(),[l,i]=(0,ae.useState)(),[u,c]=(0,ae.useState)(),[d]=sn("Slot",new URLSearchParams([["_count",(30*24).toString()],["schedule",(0,tn.isReference)(e.schedule)?e.schedule.reference:(0,tn.getReferenceString)(e.schedule)],["start","gt"+lm(a)],["start","lt"+sm(a)]]));if(!t||!d||!r)return null;let g=t.actor?.[0];return ae.default.createElement("div",{className:o.container,"data-testid":"scheduler"},ae.default.createElement("div",{className:o.info},g&&ae.default.createElement(Le,{value:g,size:"xl"}),g&&ae.default.createElement(dt.Text,{size:"xl",weight:500},ae.default.createElement(co,{value:g})),ae.default.createElement("p",null,"1 hour"),f&&ae.default.createElement("p",null,f.toLocaleDateString()),l&&ae.default.createElement("p",null,Ri(new Date(l.start)))),ae.default.createElement("div",{className:o.selection},!f&&ae.default.createElement("div",null,ae.default.createElement("h3",null,"Select date"),ae.default.createElement(Bf,{slots:d,onChangeMonth:n,onClick:s})),f&&!l&&ae.default.createElement("div",null,ae.default.createElement("h3",null,"Select time"),ae.default.createElement(dt.Stack,null,d.map(P=>{let v=new Date(P.start);return v.getTime()>f.getTime()&&v.getTime()<f.getTime()+24*3600*1e3&&ae.default.createElement("div",{key:P.id},ae.default.createElement(dt.Button,{variant:"outline",style:{width:150},onClick:()=>i(P)},Ri(v)))}))),f&&l&&!u&&ae.default.createElement(ml,{questionnaire:r,submitButtonText:"Next",onSubmit:c}),f&&l&&u&&ae.default.createElement("div",null,ae.default.createElement("h3",null,"You're all set!"),ae.default.createElement("p",null,"Check your email for a calendar invite."))))}function lm(e){return Ni(e.getTime())}function sm(e){return Ni(e.getTime()+31*24*60*60*1e3)}function Ni(e){let o=new Date(Math.max(Date.now(),e));return o.setHours(0,0,0,0),o.toISOString()}function Ri(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}var _r=require("@medplum/core"),Hi=m(require("react"),1);function im(e){return Hi.default.createElement(Xo,{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,_r.createReference)(o)],subject:o.subject,sender:(0,_r.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",basedOn:[(0,_r.createReference)(o)],subject:o.subject,operator:(0,_r.createReference)(t),issued:new Date().toISOString(),content:r})})}var Gi=require("@medplum/core"),To=m(require("react"),1);var Oe=require("@mantine/core"),Vi=require("@medplum/core"),Xe=m(require("react"),1);function rn(e){let o=T(),[t,r]=(0,Xe.useState)();return Xe.default.createElement(se,{style:{maxWidth:400},onSubmit:async a=>{try{e.handleAuthResponse(await o.startNewProject({login:e.login,projectName:a.projectName}))}catch(n){r((0,Vi.normalizeOperationOutcome)(n))}}},Xe.default.createElement(Oe.Center,{sx:{flexDirection:"column"}},Xe.default.createElement($o,{size:32}),Xe.default.createElement(Oe.Title,null,"Create project")),Xe.default.createElement(Oe.Stack,{spacing:"xl"},Xe.default.createElement(Oe.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:Fe(t,"firstName")}),Xe.default.createElement(Oe.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",Xe.default.createElement(Oe.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",Xe.default.createElement(Oe.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),".")),Xe.default.createElement(Oe.Group,{position:"right",mt:"xl",noWrap:!0},Xe.default.createElement(Oe.Button,{type:"submit"},"Create project")))}var fe=require("@mantine/core"),gl=require("@medplum/core"),ne=m(require("react"),1);var Do=m(require("react"),1);function Zr(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 an(e){let o=T(),{googleClientId:t,handleGoogleCredential:r}=e,a=(0,Do.useRef)(null),[n,f]=(0,Do.useState)(typeof google<"u"),[s,l]=(0,Do.useState)(!1),[i,u]=(0,Do.useState)(!1);return(0,Do.useEffect)(()=>{if(typeof google>"u"){Zr("https://accounts.google.com/gsi/client",()=>f(!0));return}s||(google.accounts.id.initialize({client_id:t,callback:r}),l(!0)),a.current&&!i&&(google.accounts.id.renderButton(a.current,{}),u(!0))},[o,t,s,n,a,i,r]),t?Do.default.createElement("div",{ref:a}):null}function nn(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 xl(e){typeof grecaptcha>"u"&&Zr("https://www.google.com/recaptcha/api.js?render="+e)}function Il(e){return new Promise((o,t)=>{grecaptcha.ready(async()=>{try{o(await grecaptcha.execute(e,{action:"submit"}))}catch(r){t(r)}})})}function qi(e){let o=nn(e.googleClientId),t=e.recaptchaSiteKey,r=T(),[a,n]=(0,ne.useState)(),f=Br(a,void 0);return(0,ne.useEffect)(()=>{t&&xl(t)},[t]),ne.default.createElement(se,{style:{maxWidth:400},onSubmit:async s=>{try{let l="";t&&(l=await Il(t)),e.handleAuthResponse(await r.startNewUser({projectId:e.projectId,clientId:e.clientId,firstName:s.firstName,lastName:s.lastName,email:s.email,password:s.password,remember:s.remember==="true",recaptchaSiteKey:t,recaptchaToken:l}))}catch(l){n((0,gl.normalizeOperationOutcome)(l))}}},ne.default.createElement(fe.Center,{sx:{flexDirection:"column"}},e.children),ne.default.createElement(Mt,{issues:f}),o&&ne.default.createElement(ne.default.Fragment,null,ne.default.createElement(fe.Group,{position:"center",p:"xl",style:{height:70}},ne.default.createElement(an,{googleClientId:o,handleGoogleCredential:async s=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:s.clientId,googleCredential:s.credential,createUser:!0}))}catch(l){n((0,gl.normalizeOperationOutcome)(l))}}})),ne.default.createElement(fe.Divider,{label:"or",labelPosition:"center",my:"lg"})),ne.default.createElement(fe.Stack,{spacing:"xl"},ne.default.createElement(fe.TextInput,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:Fe(a,"firstName")}),ne.default.createElement(fe.TextInput,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:Fe(a,"lastName")}),ne.default.createElement(fe.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:Fe(a,"email")}),ne.default.createElement(fe.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,error:Fe(a,"password")}),ne.default.createElement(fe.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",ne.default.createElement(fe.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",ne.default.createElement(fe.Anchor,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),"."),ne.default.createElement(fe.Text,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",ne.default.createElement(fe.Anchor,{href:"https://policies.google.com/privacy"},"Privacy\xA0Policy")," and ",ne.default.createElement(fe.Anchor,{href:"https://policies.google.com/terms"},"Terms\xA0of\xA0Service")," apply.")),ne.default.createElement(fe.Group,{position:"apart",mt:"xl",noWrap:!0},ne.default.createElement(fe.Checkbox,{name:"remember",label:"Remember me",size:"xs"}),ne.default.createElement(fe.Button,{type:"submit"},"Create account")))}function um(e){let{type:o,projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,onSuccess:f}=e,s=T(),[l,i]=(0,To.useState)(),[u,c]=(0,To.useState)();(0,To.useEffect)(()=>{o==="patient"&&l&&s.startNewPatient({login:l,projectId:t}).then(g=>s.processCode(g.code)).then(()=>f()).catch(g=>c((0,Gi.normalizeOperationOutcome)(g)))},[s,o,t,l,f]);function d(g){g.code?s.processCode(g.code).then(()=>f()).catch(console.log):g.login&&i(g.login)}return To.default.createElement(Vr,{width:450},u&&To.default.createElement("pre",null,JSON.stringify(u,null,2)),!l&&To.default.createElement(qi,{projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,handleAuthResponse:d},e.children),l&&o==="project"&&To.default.createElement(rn,{login:l,handleAuthResponse:d}))}var hl=require("@mantine/notifications"),Cl=require("@medplum/core"),Ae=m(require("react"),1);var ce=require("@mantine/core"),Ui=require("@medplum/core"),J=m(require("react"),1);function Qi(e){let[o,t]=(0,J.useState)();return o?J.default.createElement(cm,{email:o,...e}):J.default.createElement(dm,{setEmail:t,...e})}function dm(e){let{setEmail:o,onRegister:t,handleAuthResponse:r,children:a,disableEmailAuth:n,...f}=e,s=T(),l=!e.disableGoogleAuth&&nn(e.googleClientId),i=(0,J.useCallback)(async d=>{if(!d.authorizeUrl)return!1;let g=JSON.stringify({...await s.ensureCodeChallenge(f),domain:d.domain}),P=new URL(d.authorizeUrl);return P.searchParams.set("state",g),window.location.assign(P.toString()),!0},[s,f]),u=(0,J.useCallback)(async d=>{let g=await s.post("auth/method",{email:d.email});await i(g)||o(d.email)},[s,i,o]),c=(0,J.useCallback)(async d=>{let g=await s.startGoogleLogin({...f,googleCredential:d.credential});await i(g)||r(g)},[s,f,i,r]);return J.default.createElement(se,{style:{maxWidth:400},onSubmit:u},J.default.createElement(ce.Center,{sx:{flexDirection:"column"}},a),l&&J.default.createElement(J.default.Fragment,null,J.default.createElement(ce.Group,{position:"center",p:"xl",style:{height:70}},J.default.createElement(an,{googleClientId:l,handleGoogleCredential:c})),!n&&J.default.createElement(ce.Divider,{label:"or",labelPosition:"center",my:"lg"})),!n&&J.default.createElement(ce.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),J.default.createElement(ce.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},J.default.createElement("div",null,t&&J.default.createElement(ce.Anchor,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs"},"Register")),!n&&J.default.createElement(ce.Button,{type:"submit"},"Next")))}function cm(e){let{onForgotPassword:o,handleAuthResponse:t,children:r,...a}=e,n=T(),[f,s]=(0,J.useState)(),l=Br(f,void 0),i=(0,J.useCallback)(u=>{n.startLogin({...a,password:u.password,remember:u.remember==="on"}).then(t).catch(c=>s((0,Ui.normalizeOperationOutcome)(c)))},[n,a,t]);return J.default.createElement(se,{style:{maxWidth:400},onSubmit:i},J.default.createElement(ce.Center,{sx:{flexDirection:"column"}},r),J.default.createElement(Mt,{issues:l}),J.default.createElement(ce.Stack,{spacing:"xl"},J.default.createElement(ce.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:Fe(f,"password")})),J.default.createElement(ce.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},o&&J.default.createElement(ce.Anchor,{component:"button",type:"button",color:"dimmed",onClick:o,size:"xs"},"Forgot password"),J.default.createElement(ce.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),J.default.createElement(ce.Button,{type:"submit"},"Sign in")))}var qe=require("@mantine/core"),zi=require("@medplum/core"),Je=m(require("react"),1);function Wi(e){let o=T(),[t,r]=(0,Je.useState)();return Je.default.createElement(qe.Stack,null,Je.default.createElement(qe.Center,{sx:{flexDirection:"column"}},Je.default.createElement($o,{size:32}),Je.default.createElement(qe.Title,{order:3},"Choose profile")),Je.default.createElement(Mt,{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,zi.normalizeOperationOutcome)(n)))}},Je.default.createElement(qe.Group,null,Je.default.createElement(qe.Avatar,{radius:"xl"}),Je.default.createElement("div",{style:{flex:1}},Je.default.createElement(qe.Text,{size:"sm",weight:500},a.profile?.display),Je.default.createElement(qe.Text,{color:"dimmed",size:"xs"},a.project?.display))))))}var to=require("@mantine/core"),ko=m(require("react"),1);function Xi(e){let o=T();return ko.default.createElement(se,{style:{maxWidth:400},onSubmit:t=>{o.post("auth/scope",{login:e.login,scope:Object.keys(t).join(" ")}).then(e.handleAuthResponse).catch(console.log)}},ko.default.createElement(to.Stack,null,ko.default.createElement(to.Center,{sx:{flexDirection:"column"}},ko.default.createElement($o,{size:32}),ko.default.createElement(to.Title,null,"Choose scope")),ko.default.createElement(to.Stack,null,(e.scope??"openid").split(" ").map(t=>ko.default.createElement(to.Checkbox,{key:t,id:t,name:t,label:t,defaultChecked:!0}))),ko.default.createElement(to.Group,{position:"right",mt:"xl"},ko.default.createElement(to.Button,{type:"submit"},"Set scope"))))}var Ge=require("@mantine/core"),Ji=require("@medplum/core");var $e=m(require("react"),1);function $i(e){let o=T(),[t,r]=(0,$e.useState)();return $e.default.createElement(se,{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,Ji.normalizeErrorString)(n)))}},$e.default.createElement(Ge.Stack,null,$e.default.createElement(Ge.Center,{sx:{flexDirection:"column"}},$e.default.createElement($o,{size:32}),$e.default.createElement(Ge.Title,null,"Enter MFA code")),t&&$e.default.createElement(Ge.Alert,{icon:$e.default.createElement(xt,{size:16}),title:"Error",color:"red"},t),$e.default.createElement(Ge.Stack,null,$e.default.createElement(Ge.TextInput,{name:"token",label:"MFA code",required:!0})),$e.default.createElement(Ge.Group,{position:"right",mt:"xl"},$e.default.createElement(Ge.Button,{type:"submit"},"Submit code"))))}function mm(e){let{login:o,chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:n,onCode:f,...s}=e,l=T(),[i,u]=(0,Ae.useState)(),[c,d]=(0,Ae.useState)(!1),[g,P]=(0,Ae.useState)(),v=(0,Ae.useCallback)(A=>{f?f(A):l.processCode(A).then(()=>{r&&r()}).catch(w=>(0,hl.showNotification)({color:"red",message:(0,Cl.normalizeErrorString)(w)}))},[l,f,r]),k=(0,Ae.useCallback)(A=>{d(!!A.mfaRequired),A.login&&u(A.login),A.memberships&&P(A.memberships),A.code&&(t?P(void 0):v(A.code))},[t,v]),M=(0,Ae.useCallback)(A=>{v(A.code)},[v]);return(0,Ae.useEffect)(()=>{o&&!i&&l.get("auth/login/"+o).then(k).catch(A=>(0,hl.showNotification)({color:"red",message:(0,Cl.normalizeErrorString)(A)}))},[l,o,i,k]),Ae.default.createElement(Vr,{width:450},(()=>i?c?Ae.default.createElement($i,{login:i,handleAuthResponse:k}):g?Ae.default.createElement(Wi,{login:i,memberships:g,handleAuthResponse:k}):e.projectId==="new"?Ae.default.createElement(rn,{login:i,handleAuthResponse:k}):e.chooseScopes?Ae.default.createElement(Xi,{login:i,scope:e.scope,handleAuthResponse:M}):Ae.default.createElement("div",null,"Success"):Ae.default.createElement(Qi,{onForgotPassword:a,onRegister:n,handleAuthResponse:k,disableGoogleAuth:e.disableGoogleAuth,disableEmailAuth:e.disableEmailAuth,...s},e.children))())}
|
|
68
68
|
//# sourceMappingURL=index.cjs.map
|