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