@medplum/react 2.2.4 → 2.2.5
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 +11 -5
- package/dist/cjs/index.cjs.map +4 -4
- package/dist/cjs/index.d.ts +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.mjs +11 -5
- package/dist/esm/index.mjs.map +4 -4
- package/package.json +2 -2
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var dd=Object.create;var Na=Object.defineProperty;var md=Object.getOwnPropertyDescriptor;var pd=Object.getOwnPropertyNames;var xd=Object.getPrototypeOf,Id=Object.prototype.hasOwnProperty;var Hr=(e,o)=>()=>(o||e((o={exports:{}}).exports,o),o.exports),gd=(e,o)=>{for(var t in o)Na(e,t,{get:o[t],enumerable:!0})},Es=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of pd(o))!Id.call(e,a)&&a!==t&&Na(e,a,{get:()=>o[a],enumerable:!(r=md(o,a))||r.enumerable});return e};var dl=(e,o,t)=>(t=e!=null?dd(xd(e)):{},Es(o||!e||!e.__esModule?Na(t,"default",{value:e,enumerable:!0}):t,e)),hd=e=>Es(Na({},"__esModule",{value:!0}),e);var wf=Hr(wn=>{"use strict";Object.defineProperty(wn,"__esModule",{value:!0});wn.Pointer=void 0;function Nm(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function Vm(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}var Hm=function(){function e(o){o===void 0&&(o=[""]),this.tokens=o}return e.fromJSON=function(o){var t=o.split("/").map(Nm);if(t[0]!=="")throw new Error("Invalid JSON Pointer: ".concat(o));return new e(t)},e.prototype.toString=function(){return this.tokens.map(Vm).join("/")},e.prototype.evaluate=function(o){for(var t=null,r="",a=o,n=1,l=this.tokens.length;n<l;n++)t=a,r=this.tokens[n],!(r=="__proto__"||r=="constructor"||r=="prototype")&&(a=(t||{})[r]);return{parent:t,key:r,value:a}},e.prototype.get=function(o){return this.evaluate(o).value},e.prototype.set=function(o,t){var r=this.evaluate(o);r.parent&&(r.parent[r.key]=t)},e.prototype.push=function(o){this.tokens.push(o)},e.prototype.add=function(o){var t=this.tokens.concat(String(o));return new e(t)},e}();wn.Pointer=Hm});var Ef=Hr(Jo=>{"use strict";Object.defineProperty(Jo,"__esModule",{value:!0});Jo.clone=Jo.objectType=Jo.hasOwnProperty=void 0;Jo.hasOwnProperty=Object.prototype.hasOwnProperty;function qm(e){return e===void 0?"undefined":e===null?"null":Array.isArray(e)?"array":typeof e}Jo.objectType=qm;function Gm(e){return e!=null&&typeof e=="object"}function Of(e){if(!Gm(e))return e;if(e.constructor==Array){for(var o=e.length,t=new Array(o),r=0;r<o;r++)t[r]=Of(e[r]);return t}if(e.constructor==Date){var a=new Date(+e);return a}var n={};for(var l in e)Jo.hasOwnProperty.call(e,l)&&(n[l]=Of(e[l]));return n}Jo.clone=Of});var Vf=Hr(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.diffAny=Qe.diffObjects=Qe.diffArrays=Qe.intersection=Qe.subtract=Qe.isDestructive=void 0;var va=Ef();function Um(e){var o=e.op;return o==="remove"||o==="replace"||o==="copy"||o==="move"}Qe.isDestructive=Um;function Nf(e,o){var t={};for(var r in e)va.hasOwnProperty.call(e,r)&&e[r]!==void 0&&(t[r]=1);for(var a in o)va.hasOwnProperty.call(o,a)&&o[a]!==void 0&&delete t[a];return Object.keys(t)}Qe.subtract=Nf;function Pu(e){for(var o=e.length,t={},r=0;r<o;r++){var a=e[r];for(var n in a)va.hasOwnProperty.call(a,n)&&a[n]!==void 0&&(t[n]=(t[n]||0)+1)}for(var n in t)t[n]<o&&delete t[n];return Object.keys(t)}Qe.intersection=Pu;function Qm(e){return e.op==="add"}function zm(e){return e.op==="remove"}function Lf(e,o){return{operations:e.operations.concat(o),cost:e.cost+1}}function Tu(e,o,t,r){r===void 0&&(r=On);var a={"0,0":{operations:[],cost:0}};function n(u,c){var d="".concat(u,",").concat(c),m=a[d];if(m===void 0){if(u>0&&c>0&&!r(e[u-1],o[c-1],t.add(String(u-1))).length)m=n(u-1,c-1);else{var x=[];if(u>0){var p=n(u-1,c),y={op:"remove",index:u-1};x.push(Lf(p,y))}if(c>0){var C=n(u,c-1),v={op:"add",index:u-1,value:o[c-1]};x.push(Lf(C,v))}if(u>0&&c>0){var R=n(u-1,c-1),V={op:"replace",index:u-1,original:e[u-1],value:o[c-1]};x.push(Lf(R,V))}var b=x.sort(function(O,ie){return O.cost-ie.cost})[0];m=b}a[d]=m}return m}var l=isNaN(e.length)||e.length<=0?0:e.length,f=isNaN(o.length)||o.length<=0?0:o.length,s=n(l,f).operations,i=s.reduce(function(u,c){var d=u[0],m=u[1];if(Qm(c)){var x=c.index+1+m,p=x<l+m?String(x):"-",y={op:c.op,path:t.add(p).toString(),value:c.value};return[d.concat(y),m+1]}else if(zm(c)){var y={op:c.op,path:t.add(String(c.index+m)).toString()};return[d.concat(y),m-1]}else{var C=t.add(String(c.index+m)),v=r(c.original,c.value,C);return[d.concat.apply(d,v),m]}},[[],0])[0];return i}Qe.diffArrays=Tu;function Du(e,o,t,r){r===void 0&&(r=On);var a=[];return Nf(e,o).forEach(function(n){a.push({op:"remove",path:t.add(n).toString()})}),Nf(o,e).forEach(function(n){a.push({op:"add",path:t.add(n).toString(),value:o[n]})}),Pu([e,o]).forEach(function(n){a.push.apply(a,r(e[n],o[n],t.add(n)))}),a}Qe.diffObjects=Du;function On(e,o,t,r){if(r===void 0&&(r=On),e===o)return[];var a=(0,va.objectType)(e),n=(0,va.objectType)(o);return a=="array"&&n=="array"?Tu(e,o,t,r):a=="object"&&n=="object"?Du(e,o,t,r):[{op:"replace",path:t.toString(),value:o}]}Qe.diffAny=On});var Nu=Hr(se=>{"use strict";var Hf=se&&se.__extends||function(){var e=function(o,t){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,a){r.__proto__=a}||function(r,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(r[n]=a[n])},e(o,t)};return function(o,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");e(o,t);function r(){this.constructor=o}o.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}}();Object.defineProperty(se,"__esModule",{value:!0});se.apply=se.InvalidOperationError=se.test=se.copy=se.move=se.replace=se.remove=se.add=se.TestError=se.MissingError=void 0;var $o=wf(),qf=Ef(),Wm=Vf(),Ro=function(e){Hf(o,e);function o(t){var r=e.call(this,"Value required at path: ".concat(t))||this;return r.path=t,r.name="MissingError",r}return o}(Error);se.MissingError=Ro;var ku=function(e){Hf(o,e);function o(t,r){var a=e.call(this,"Test failed: ".concat(t," != ").concat(r))||this;return a.actual=t,a.expected=r,a.name="TestError",a}return o}(Error);se.TestError=ku;function Gf(e,o,t){if(Array.isArray(e))if(o=="-")e.push(t);else{var r=parseInt(o,10);e.splice(r,0,t)}else e[o]=t}function Bu(e,o){if(Array.isArray(e)){var t=parseInt(o,10);e.splice(t,1)}else delete e[o]}function Au(e,o){var t=$o.Pointer.fromJSON(o.path).evaluate(e);return t.parent===void 0?new Ro(o.path):(Gf(t.parent,t.key,(0,qf.clone)(o.value)),null)}se.add=Au;function Mu(e,o){var t=$o.Pointer.fromJSON(o.path).evaluate(e);return t.value===void 0?new Ro(o.path):(Bu(t.parent,t.key),null)}se.remove=Mu;function Fu(e,o){var t=$o.Pointer.fromJSON(o.path).evaluate(e);if(t.parent===null)return new Ro(o.path);if(Array.isArray(t.parent)){if(parseInt(t.key,10)>=t.parent.length)return new Ro(o.path)}else if(t.value===void 0)return new Ro(o.path);return t.parent[t.key]=(0,qf.clone)(o.value),null}se.replace=Fu;function wu(e,o){var t=$o.Pointer.fromJSON(o.from).evaluate(e);if(t.value===void 0)return new Ro(o.from);var r=$o.Pointer.fromJSON(o.path).evaluate(e);return r.parent===void 0?new Ro(o.path):(Bu(t.parent,t.key),Gf(r.parent,r.key,t.value),null)}se.move=wu;function Ou(e,o){var t=$o.Pointer.fromJSON(o.from).evaluate(e);if(t.value===void 0)return new Ro(o.from);var r=$o.Pointer.fromJSON(o.path).evaluate(e);return r.parent===void 0?new Ro(o.path):(Gf(r.parent,r.key,(0,qf.clone)(t.value)),null)}se.copy=Ou;function Eu(e,o){var t=$o.Pointer.fromJSON(o.path).evaluate(e);return(0,Wm.diffAny)(t.value,o.value,new $o.Pointer).length?new ku(t.value,o.value):null}se.test=Eu;var Lu=function(e){Hf(o,e);function o(t){var r=e.call(this,"Invalid operation: ".concat(t.op))||this;return r.operation=t,r.name="InvalidOperationError",r}return o}(Error);se.InvalidOperationError=Lu;function Xm(e,o){switch(o.op){case"add":return Au(e,o);case"remove":return Mu(e,o);case"replace":return Fu(e,o);case"move":return wu(e,o);case"copy":return Ou(e,o);case"test":return Eu(e,o)}return new Lu(o)}se.apply=Xm});var Hu=Hr(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.createTests=Po.createPatch=Po.applyPatch=Po.Pointer=void 0;var Uf=wf();Object.defineProperty(Po,"Pointer",{enumerable:!0,get:function(){return Uf.Pointer}});var Jm=Nu(),Qf=Vf();function $m(e,o){return o.map(function(t){return(0,Jm.apply)(e,t)})}Po.applyPatch=$m;function _m(e){function o(t,r,a){var n=e(t,r,a);return Array.isArray(n)?n:(0,Qf.diffAny)(t,r,a,o)}return o}function Km(e,o,t){var r=new Uf.Pointer;return(t?_m(t):Qf.diffAny)(e,o,r)}Po.createPatch=Km;function Vu(e,o){var t=Uf.Pointer.fromJSON(o).evaluate(e);if(t!==void 0)return{op:"test",path:o,value:t.value}}function Zm(e,o){var t=new Array;return o.filter(Qf.isDestructive).forEach(function(r){var a=Vu(e,r.path);if(a&&t.push(a),"from"in r){var n=Vu(e,r.from);n&&t.push(n)}}),t}Po.createTests=Zm});var Kx={};gd(Kx,{AddressDisplay:()=>gl,AddressInput:()=>hl,AnnotationInput:()=>yl,AppShell:()=>jd,AsyncAutocomplete:()=>Ft,AttachmentArrayDisplay:()=>nf,AttachmentArrayInput:()=>ff,AttachmentButton:()=>Ot,AttachmentDisplay:()=>io,AttachmentInput:()=>Zr,BackboneElementDisplay:()=>dr,BackboneElementInput:()=>Gt,CalendarInput:()=>Bf,CheckboxFormSection:()=>oa,CodeInput:()=>Kr,CodeableConceptDisplay:()=>Et,CodeableConceptInput:()=>gf,CodingDisplay:()=>df,CodingInput:()=>aa,ContactDetailDisplay:()=>mf,ContactDetailInput:()=>hf,ContactPointDisplay:()=>Yr,ContactPointInput:()=>na,Container:()=>Wo,DateTimeInput:()=>ao,DefaultResourceTimeline:()=>sp,DescriptionList:()=>uf,DescriptionListEntry:()=>cf,DiagnosticReportDisplay:()=>Fn,Document:()=>Sa,ElementDefinitionInputSelector:()=>uu,ElementDefinitionTypeInput:()=>xa,EncounterTimeline:()=>ip,ErrorBoundary:()=>Mt,FhirPathTable:()=>ic,Form:()=>te,FormSection:()=>we,Header:()=>ef,HumanNameDisplay:()=>Jr,HumanNameInput:()=>Cf,IdentifierDisplay:()=>pf,IdentifierInput:()=>bf,Loading:()=>$a,Logo:()=>rt,MeasureReportDisplay:()=>Np,MedplumLink:()=>Pe,MedplumProvider:()=>yd,MemoizedFhirPathTable:()=>wp,MemoizedSearchControl:()=>Dp,MoneyDisplay:()=>xf,MoneyInput:()=>Rf,Navbar:()=>af,ObservationTable:()=>Cu,OperationOutcomeAlert:()=>Yt,Panel:()=>$t,PatientTimeline:()=>Vp,PlanDefinitionBuilder:()=>Hp,QuantityDisplay:()=>Ho,QuantityInput:()=>We,QuestionnaireBuilder:()=>nx,QuestionnaireForm:()=>Ds,QuestionnaireItemType:()=>Ta,RangeDisplay:()=>jr,RangeInput:()=>yr,ReferenceDisplay:()=>st,ReferenceInput:()=>zt,ReferenceRangeEditor:()=>yx,ReferenceRangeGroupEditor:()=>qc,RegisterForm:()=>Xx,RequestGroupDisplay:()=>Tx,ResourceArrayDisplay:()=>If,ResourceArrayInput:()=>Tf,ResourceAvatar:()=>Fe,ResourceBadge:()=>Xo,ResourceBlame:()=>wx,ResourceDiff:()=>Ex,ResourceForm:()=>Nx,ResourceHistoryTable:()=>Vx,ResourceInput:()=>pa,ResourceName:()=>co,ResourcePropertyDisplay:()=>De,ResourcePropertyInput:()=>Qo,ResourceTable:()=>Nn,ResourceTimeline:()=>Zo,Scheduler:()=>Ux,SearchChangeEvent:()=>Wn,SearchClickEvent:()=>St,SearchControl:()=>fc,SearchFieldEditor:()=>is,SearchFilterEditor:()=>us,SearchLoadEvent:()=>Xn,ServiceRequestTimeline:()=>Wx,SignInForm:()=>_x,StatusBadge:()=>ya,Timeline:()=>zf,TimelineItem:()=>_o,TimingInput:()=>Df,addDateFilterBetween:()=>Hn,addField:()=>mp,addFilter:()=>Kt,addLastMonthFilter:()=>jf,addMissingFilter:()=>qn,addNextMonthFilter:()=>os,addThisMonthFilter:()=>es,addTodayFilter:()=>Kf,addTomorrowFilter:()=>Zf,addYearToDateFilter:()=>rs,addYesterdayFilter:()=>_f,buildFieldNameString:()=>Je,buildInitialResponse:()=>ys,buildInitialResponseItem:()=>Kn,clearFilters:()=>dp,clearFiltersOnField:()=>ba,convertIsoToLocal:()=>vf,convertLocalToIso:()=>Sf,createScriptTag:()=>Oa,deleteFilter:()=>$f,formatReferenceString:()=>vs,getErrorsForInput:()=>$,getFieldDefinitions:()=>cs,getIssuesForExpression:()=>ta,getNewMultiSelectValues:()=>gs,getNumberOfPages:()=>Ss,getOpString:()=>Dr,getQuestionnaireItemReferenceFilter:()=>hs,getQuestionnaireItemReferenceTargetTypes:()=>Da,getRecaptcha:()=>As,getSearchOperators:()=>fs,getSortField:()=>ns,initRecaptcha:()=>Bs,isChoiceQuestion:()=>xs,isQuestionEnabled:()=>Is,isSortDescending:()=>ls,isSupportedProfileStructureDefinition:()=>rm,parseForm:()=>of,reactContext:()=>ml,renderValue:()=>ss,setFilters:()=>Tr,setOffset:()=>tc,setPage:()=>as,setPropertyValue:()=>pr,setQuestionnaireItemReferenceTargetTypes:()=>ka,setSort:()=>Gn,sortByDateAndPriority:()=>Wf,toggleSort:()=>pp,useMedplum:()=>P,useMedplumContext:()=>rr,useMedplumNavigate:()=>Oo,useMedplumProfile:()=>qr,useResource:()=>Z,useSearch:()=>Sd,useSearchOne:()=>pl,useSearchResources:()=>xl});module.exports=hd(Kx);var kt=require("react"),Va=require("react"),Ns=require("react/jsx-runtime"),Eo=require("@medplum/core"),Bt=require("react"),Ha=require("@medplum/core"),Dt=require("react"),ml=(0,Va.createContext)(void 0);function rr(){return(0,Va.useContext)(ml)}function P(){return rr().medplum}function Oo(){return rr().navigate}function qr(){return rr().profile}function yd(e){let o=e.medplum,t=e.navigate??vd,[r,a]=(0,kt.useState)({profile:o.getProfile(),loading:!o.isInitialized});(0,kt.useEffect)(()=>{o&&(o.isInitialized||(a(l=>({...l,loading:!0})),o.getInitPromise().then(()=>a(l=>({...l,loading:!1}))).catch(console.error)))},[o,o.isInitialized]),(0,kt.useEffect)(()=>{function l(){a({...r,profile:o.getProfile()})}return o.addEventListener("change",l),()=>o.removeEventListener("change",l)},[o,r]);let n=(0,kt.useMemo)(()=>({...r,medplum:o,navigate:t}),[r,o,t]);return(0,Ns.jsx)(ml.Provider,{value:n,children:e.children})}function vd(e){window.location.assign(e)}function Z(e,o){let t=P(),[r,a]=(0,Bt.useState)(Ls(t,e)),n=(0,Bt.useCallback)(l=>{(0,Eo.deepEquals)(l,r)||a(l)},[r,a]);return(0,Bt.useEffect)(()=>{n(Ls(t,e))},[t,e,n]),(0,Bt.useEffect)(()=>{let l=!0;return(0,Eo.isReference)(e)&&t.readReference(e).then(f=>{l&&n(f)}).catch(f=>{l&&(n(void 0),o&&o((0,Eo.normalizeOperationOutcome)(f)))}),()=>l=!1},[t,r,e,n,o]),r}function Ls(e,o){if(o){if((0,Eo.isResource)(o))return o;if((0,Eo.isReference)(o))return e.getCachedReference(o)}}function Sd(e,o){return Il("search",e,o)}function pl(e,o){return Il("searchOne",e,o)}function xl(e,o){return Il("searchResources",e,o)}function Il(e,o,t){let r=P(),[a,n]=(0,Dt.useState)(),[l,f]=(0,Dt.useState)(!1),[s,i]=(0,Dt.useState)(),[u,c]=(0,Dt.useState)();return(0,Dt.useEffect)(()=>{let d=r.fhirSearchUrl(o,t).toString();d!==a&&(n(d),r[e](o,t).then(m=>{f(!1),i(m),c(Ha.allOk)}).catch(m=>{f(!1),i(void 0),c((0,Ha.normalizeOperationOutcome)(m))}))},[r,e,o,t,a,i]),[s,l,u]}var Vs=require("@medplum/core"),qa=require("react/jsx-runtime");function gl(e){let o=e.value;return o?(0,qa.jsx)(qa.Fragment,{children:(0,Vs.formatAddress)(o)}):null}var so=require("@mantine/core"),Ga=require("react"),yo=require("react/jsx-runtime");function Hs(e,o){return e.line&&e.line.length>o?e.line[o]:""}function qs(e,o,t){let r=e.line||[];for(;r.length<=o;)r.push("");return r[o]=t,{...e,line:r}}function hl(e){let[o,t]=(0,Ga.useState)(e.defaultValue||{}),r=(0,Ga.useRef)();r.current=o;function a(d){t(d),e.onChange&&e.onChange(d)}function n(d){a({...r.current,use:d})}function l(d){a({...r.current,type:d})}function f(d){a(qs(r.current||{},0,d))}function s(d){a(qs(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(0,yo.jsxs)(so.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,yo.jsx)(so.NativeSelect,{"data-testid":"address-use",defaultValue:o.use,onChange:d=>n(d.currentTarget.value),data:["","home","work","temp","old","billing"]}),(0,yo.jsx)(so.NativeSelect,{"data-testid":"address-type",defaultValue:o.type,onChange:d=>l(d.currentTarget.value),data:["","postal","physical","both"]}),(0,yo.jsx)(so.TextInput,{placeholder:"Line 1",defaultValue:Hs(o,0),onChange:d=>f(d.currentTarget.value)}),(0,yo.jsx)(so.TextInput,{placeholder:"Line 2",defaultValue:Hs(o,1),onChange:d=>s(d.currentTarget.value)}),(0,yo.jsx)(so.TextInput,{placeholder:"City",defaultValue:o.city,onChange:d=>i(d.currentTarget.value)}),(0,yo.jsx)(so.TextInput,{placeholder:"State",defaultValue:o.state,onChange:d=>u(d.currentTarget.value)}),(0,yo.jsx)(so.TextInput,{placeholder:"Postal Code",defaultValue:o.postalCode,onChange:d=>c(d.currentTarget.value)})]})}var Gs=require("@mantine/core"),Us=require("@medplum/core");var Ua=require("react"),Qs=require("react/jsx-runtime");function yl(e){let o=qr(),[t,r]=(0,Ua.useState)(e.defaultValue||{}),a=(0,Ua.useRef)();a.current=t;function n(l){let f=l?{text:l,authorReference:o&&(0,Us.createReference)(o),time:new Date().toISOString()}:{};r(f),e.onChange&&e.onChange(f)}return(0,Qs.jsx)(Gs.TextInput,{name:e.name,placeholder:"Annotation text",defaultValue:t.text,onChange:l=>n(l.currentTarget.value)})}var an=require("@mantine/core"),Ii=require("@mantine/notifications");var ir=require("react");var _s=require("@mantine/core"),Ks=require("@medplum/core");var Gr=require("react"),at=dl(require("prop-types"));var zs={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 Cd=Object.defineProperty,bd=Object.defineProperties,Rd=Object.getOwnPropertyDescriptors,Qa=Object.getOwnPropertySymbols,Js=Object.prototype.hasOwnProperty,$s=Object.prototype.propertyIsEnumerable,Ws=(e,o,t)=>o in e?Cd(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,Xs=(e,o)=>{for(var t in o||(o={}))Js.call(o,t)&&Ws(e,t,o[t]);if(Qa)for(var t of Qa(o))$s.call(o,t)&&Ws(e,t,o[t]);return e},Pd=(e,o)=>bd(e,Rd(o)),Td=(e,o)=>{var t={};for(var r in e)Js.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Qa)for(var r of Qa(e))o.indexOf(r)<0&&$s.call(e,r)&&(t[r]=e[r]);return t},g=(e,o,t)=>{let r=(0,Gr.forwardRef)((a,n)=>{var l=a,{color:f="currentColor",size:s=24,stroke:i=2,children:u}=l,c=Td(l,["color","size","stroke","children"]);return(0,Gr.createElement)("svg",Xs(Pd(Xs({ref:n},zs),{width:s,height:s,stroke:f,strokeWidth:i,className:`tabler-icon tabler-icon-${e}`}),c),[...t.map(([d,m])=>(0,Gr.createElement)(d,m)),...u||[]])});return r.propTypes={color:at.default.string,size:at.default.oneOfType([at.default.string,at.default.number]),stroke:at.default.oneOfType([at.default.string,at.default.number])},r.displayName=`${o}`,r};var vl=g("adjustments-horizontal","IconAdjustmentsHorizontal",[["path",{d:"M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M4 6l8 0",key:"svg-1"}],["path",{d:"M16 6l4 0",key:"svg-2"}],["path",{d:"M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M4 12l2 0",key:"svg-4"}],["path",{d:"M10 12l10 0",key:"svg-5"}],["path",{d:"M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-6"}],["path",{d:"M4 18l11 0",key:"svg-7"}],["path",{d:"M19 18l1 0",key:"svg-8"}]]);var At=g("alert-circle","IconAlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);var Sl=g("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 Cl=g("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 bl=g("bleach-off","IconBleachOff",[["path",{d:"M5 19h14m1.986 -1.977a2 2 0 0 0 -.146 -.773l-7.1 -12.25a2 2 0 0 0 -3.5 0l-.815 1.405m-1.488 2.568l-4.797 8.277a2 2 0 0 0 1.75 2.75",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]);var Rl=g("bleach","IconBleach",[["path",{d:"M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75",key:"svg-0"}]]);var Pl=g("box-multiple","IconBoxMultiple",[["path",{d:"M7 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M17 17v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h2",key:"svg-1"}]]);var Tl=g("brackets-contain","IconBracketsContain",[["path",{d:"M7 4h-4v16h4",key:"svg-0"}],["path",{d:"M17 4h4v16h-4",key:"svg-1"}],["path",{d:"M8 16h.01",key:"svg-2"}],["path",{d:"M12 16h.01",key:"svg-3"}],["path",{d:"M16 16h.01",key:"svg-4"}]]);var Dl=g("bucket-off","IconBucketOff",[["path",{d:"M5.029 5.036c-.655 .58 -1.029 1.25 -1.029 1.964c0 2.033 3.033 3.712 6.96 3.967m3.788 -.21c3.064 -.559 5.252 -2.029 5.252 -3.757c0 -2.21 -3.582 -4 -8 -4c-1.605 0 -3.1 .236 -4.352 .643",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.1 -.3 .252 -.812 .457 -1.535m.862 -3.146c.262 -.975 .735 -2.76 1.418 -5.354a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]]);var kl=g("bucket","IconBucket",[["path",{d:"M12 7m-8 0a8 4 0 1 0 16 0a8 4 0 1 0 -16 0",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.333 -1 1.246 -4.345 2.737 -10.035a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}]]);var Lo=g("calendar","IconCalendar",[["path",{d:"M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z",key:"svg-0"}],["path",{d:"M16 3v4",key:"svg-1"}],["path",{d:"M8 3v4",key:"svg-2"}],["path",{d:"M4 11h16",key:"svg-3"}],["path",{d:"M11 15h1",key:"svg-4"}],["path",{d:"M12 15v3",key:"svg-5"}]]);var Ur=g("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]);var Bl=g("checkbox","IconCheckbox",[["path",{d:"M9 11l3 3l8 -8",key:"svg-0"}],["path",{d:"M20 12v6a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h9",key:"svg-1"}]]);var Al=g("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]);var vo=g("circle-minus","IconCircleMinus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}]]);var nt=g("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 Qr=g("cloud-upload","IconCloudUpload",[["path",{d:"M7 18a4.6 4.4 0 0 1 0 -9a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-1",key:"svg-0"}],["path",{d:"M9 15l3 -3l3 3",key:"svg-1"}],["path",{d:"M12 12l0 9",key:"svg-2"}]]);var Ml=g("columns","IconColumns",[["path",{d:"M4 6l5.5 0",key:"svg-0"}],["path",{d:"M4 10l5.5 0",key:"svg-1"}],["path",{d:"M4 14l5.5 0",key:"svg-2"}],["path",{d:"M4 18l5.5 0",key:"svg-3"}],["path",{d:"M14.5 6l5.5 0",key:"svg-4"}],["path",{d:"M14.5 10l5.5 0",key:"svg-5"}],["path",{d:"M14.5 14l5.5 0",key:"svg-6"}],["path",{d:"M14.5 18l5.5 0",key:"svg-7"}]]);var Fl=g("copy","IconCopy",[["path",{d:"M7 7m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]]);var wl=g("currency-dollar","IconCurrencyDollar",[["path",{d:"M16.7 8a3 3 0 0 0 -2.7 -2h-4a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6h-4a3 3 0 0 1 -2.7 -2",key:"svg-0"}],["path",{d:"M12 3v3m0 12v3",key:"svg-1"}]]);var Ol=g("dots","IconDots",[["path",{d:"M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var El=g("edit","IconEdit",[["path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1",key:"svg-0"}],["path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]]);var ar=g("equal-not","IconEqualNot",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}],["path",{d:"M5 19l14 -14",key:"svg-2"}]]);var nr=g("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);var za=g("file-alert","IconFileAlert",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 17l.01 0",key:"svg-2"}],["path",{d:"M12 11l0 3",key:"svg-3"}]]);var Ll=g("file-plus","IconFilePlus",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 11l0 6",key:"svg-2"}],["path",{d:"M9 14l6 0",key:"svg-3"}]]);var Nl=g("filter","IconFilter",[["path",{d:"M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z",key:"svg-0"}]]);var Vl=g("list-details","IconListDetails",[["path",{d:"M13 5h8",key:"svg-0"}],["path",{d:"M13 9h5",key:"svg-1"}],["path",{d:"M13 15h8",key:"svg-2"}],["path",{d:"M13 19h5",key:"svg-3"}],["path",{d:"M3 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-4"}],["path",{d:"M3 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-5"}]]);var Hl=g("logout","IconLogout",[["path",{d:"M14 8v-2a2 2 0 0 0 -2 -2h-7a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M9 12h12l-3 -3",key:"svg-1"}],["path",{d:"M18 15l3 -3",key:"svg-2"}]]);var Wa=g("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]);var Xa=g("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]);var ql=g("message","IconMessage",[["path",{d:"M8 9h8",key:"svg-0"}],["path",{d:"M8 13h6",key:"svg-1"}],["path",{d:"M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z",key:"svg-2"}]]);var Gl=g("pin","IconPin",[["path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4",key:"svg-0"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-1"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-2"}]]);var Ul=g("pinned-off","IconPinnedOff",[["path",{d:"M3 3l18 18",key:"svg-0"}],["path",{d:"M15 4.5l-3.249 3.249m-2.57 1.433l-2.181 .818l-1.5 1.5l7 7l1.5 -1.5l.82 -2.186m1.43 -2.563l3.25 -3.251",key:"svg-1"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-2"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-3"}]]);var Ql=g("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);var zl=g("refresh","IconRefresh",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]]);var Wl=g("search","IconSearch",[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]);var lr=g("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]);var zr=g("sort-ascending","IconSortAscending",[["path",{d:"M4 6l7 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l9 0",key:"svg-2"}],["path",{d:"M15 9l3 -3l3 3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]);var Wr=g("sort-descending","IconSortDescending",[["path",{d:"M4 6l9 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l7 0",key:"svg-2"}],["path",{d:"M15 15l3 3l3 -3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]);var Xl=g("square","IconSquare",[["path",{d:"M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z",key:"svg-0"}]]);var Jl=g("switch-horizontal","IconSwitchHorizontal",[["path",{d:"M16 3l4 4l-4 4",key:"svg-0"}],["path",{d:"M10 7l10 0",key:"svg-1"}],["path",{d:"M8 13l-4 4l4 4",key:"svg-2"}],["path",{d:"M4 17l9 0",key:"svg-3"}]]);var $l=g("table-export","IconTableExport",[["path",{d:"M12.5 21h-7.5a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5",key:"svg-0"}],["path",{d:"M3 10h18",key:"svg-1"}],["path",{d:"M10 3v18",key:"svg-2"}],["path",{d:"M16 19h6",key:"svg-3"}],["path",{d:"M19 16l3 3l-3 3",key:"svg-4"}]]);var Xr=g("trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]);var _l=g("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);var Zs=require("react"),Kl=require("react/jsx-runtime"),Mt=class extends Zs.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?(0,Kl.jsx)(_s.Alert,{icon:(0,Kl.jsx)(At,{size:16}),title:"Something went wrong",color:"red",children:(0,Ks.normalizeErrorString)(this.state.error)}):this.props.children}};var Ja=require("@mantine/core"),Zl=require("react/jsx-runtime");function $a(){return(0,Zl.jsx)(Ja.Center,{style:{width:"100%",height:"100vh"},children:(0,Zl.jsx)(Ja.Loader,{})})}var X=require("@mantine/core"),_r=require("@medplum/core");var fi=require("react");var Ys=require("@medplum/core"),_a=require("react/jsx-runtime");function Jr(e){let o=e.value;return o?(0,_a.jsx)(_a.Fragment,{children:(0,Ys.formatHumanName)(o,e.options)}):null}var Yl=require("@mantine/core"),ja=require("@medplum/core");var ei=require("@mantine/core"),Za=require("@medplum/core");function N(e){e.preventDefault(),e.stopPropagation()}function Ka(e){if(js(e))return!0;if(e instanceof HTMLTableCellElement){let o=e.children;if(o.length===1&&js(o[0]))return!0}return!1}function js(e){return e instanceof HTMLInputElement&&e.type==="checkbox"}var oi=require("react/jsx-runtime");function Pe(e){let o=Oo(),{to:t,suffix:r,label:a,onClick:n,children:l,...f}=e,s=Dd(t);return r&&(s+="/"+r),(0,oi.jsx)(ei.Anchor,{href:s,"aria-label":a,onClick:i=>{N(i),n?n(i):t&&o(s)},...f,children:l})}function Dd(e){if(e){if(typeof e=="string")return kd(e);if((0,Za.isResource)(e))return Bd(e);if((0,Za.isReference)(e))return Ad(e)}return"#"}function kd(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e}function Bd(e){return`/${e.resourceType}/${e.id}`}function Ad(e){return`/${e.reference}`}var Ya=require("react/jsx-runtime");function Fe(e){let o=Z(e.value),t=o?(0,ja.getDisplayString)(o):e.alt??"",r=(o&&(0,ja.getImageSrc)(o))??e.src,a=e.radius??"xl",n={...e};return delete n.value,delete n.link,e.link?(0,Ya.jsx)(Pe,{to:o,children:(0,Ya.jsx)(Yl.Avatar,{src:r,alt:t,radius:a,...n})}):(0,Ya.jsx)(Yl.Avatar,{src:r,alt:t,radius:a,...n})}var wt=require("@mantine/core"),No=require("@medplum/core");var $r=require("react");var en=require("@mantine/core"),ti=require("@mantine/notifications"),ri=require("@medplum/core"),ue=require("react");var jl=require("react/jsx-runtime");function Ft(e){let{defaultValue:o,toKey:t,toOption:r,loadOptions:a,onChange:n,onCreate:l,creatable:f,...s}=e,i=Md(o),u=(0,ue.useRef)(null),[c,d]=(0,ue.useState)(),[m,x]=(0,ue.useState)(),[p,y]=(0,ue.useState)(),[C,v]=(0,ue.useState)(),[R,V]=(0,ue.useState)(i.map(r)),[b,O]=(0,ue.useState)([]),ie=(0,ue.useRef)();ie.current=c;let be=(0,ue.useRef)();be.current=m;let Fo=(0,ue.useRef)();Fo.current=p;let Tt=(0,ue.useRef)();Tt.current=C;let Me=(0,ue.useRef)();Me.current=b;let S=(0,ue.useCallback)(()=>{x(void 0);let Re=u.current?.value.trim()||"";if(Re===ie.current)return;d(Re);let ve=new AbortController;y(ve),a(Re,ve.signal).then(to=>{ve.signal.aborted||(O(to.map(r)),y(void 0),Tt.current&&(to.length>0&&n(to.slice(0,1)),v(!1)))}).catch(to=>{ve.signal.aborted||to.message.includes("aborted")||(0,ti.showNotification)({color:"red",message:(0,ri.normalizeErrorString)(to)})})},[a,n,r]),Q=(0,ue.useCallback)(()=>{Fo.current&&(Fo.current.abort(),y(void 0)),be.current!==void 0&&window.clearTimeout(be.current);let Re=window.setTimeout(()=>S(),100);x(Re)},[S]),ho=(0,ue.useCallback)(Re=>{let ve=[],to=[];for(let Os of Re){let La=Me.current?.find(cd=>cd.value===Os),Vr=La?.resource;!Vr&&f!==!1&&l&&(Vr=l(Os),La=r(Vr)),Vr&&ve.push(Vr),La&&to.push(La)}n(ve),V(to)},[f,n,l,r]),T=(0,ue.useCallback)(Re=>{Re.key==="Enter"&&(!be.current&&!Fo.current?(N(Re),Me.current&&Me.current.length>0&&(O(Me.current.slice(0,1)),ho([Me.current[0].value]))):v(!0))},[ho]),J=(0,ue.useCallback)(Re=>{let ve=r(l(Re));return O([...Me.current,ve]),ve},[l,O,r]),wo=(0,ue.useCallback)((Re,ve)=>!ve,[]);return(0,ue.useEffect)(()=>()=>{Fo.current&&Fo.current.abort()},[]),(0,jl.jsx)(en.MultiSelect,{...s,ref:u,defaultValue:i.map(t),searchable:!0,onKeyDown:T,onSearchChange:Q,data:[...R,...b],onFocus:S,onChange:ho,onCreate:J,rightSectionWidth:40,rightSection:p?(0,jl.jsx)(en.Loader,{size:16}):null,filter:wo,creatable:!0,withinPortal:!0})}function Md(e){return e?Array.isArray(e)?e:[e]:[]}var So=require("react/jsx-runtime"),Fd=(0,wt.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 wd(e){return e.id}function Od(e){return{value:e.id,label:(0,No.getDisplayString)(e),resource:e}}function li(e){let{classes:o}=Fd(),t=Oo(),r=P(),a=(0,$r.useCallback)(async(l,f)=>{let s=Ld(l),i={signal:f},u=await r.graphql(s,void 0,void 0,i);return Nd(u,l)},[r]),n=(0,$r.useCallback)(l=>{l.length>0&&t(`/${(0,No.getReferenceString)(l[0])}`)},[t]);return(0,So.jsx)(Ft,{size:"sm",radius:"md",className:o.searchInput,icon:(0,So.jsx)(Wl,{size:16}),placeholder:"Search",itemComponent:Ed,toKey:wd,toOption:Od,onChange:n,loadOptions:a,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1},`${e.pathname}?${e.searchParams}`)}var Ed=(0,$r.forwardRef)(({resource:e,...o},t)=>{let r;return e.resourceType==="Patient"?r=e.birthDate:e.resourceType==="ServiceRequest"&&(r=e.subject?.display),(0,So.jsx)("div",{ref:t,...o,children:(0,So.jsxs)(wt.Group,{noWrap:!0,children:[(0,So.jsx)(Fe,{value:e}),(0,So.jsxs)("div",{children:[(0,So.jsx)(wt.Text,{children:(0,No.getDisplayString)(e)}),(0,So.jsx)(wt.Text,{size:"xs",color:"dimmed",children:r})]})]})})});function Ld(e){let o=JSON.stringify(e);return(0,No.isUUID)(e)?`{
|
|
1
|
+
"use strict";var cd=Object.create;var Ha=Object.defineProperty;var dd=Object.getOwnPropertyDescriptor;var md=Object.getOwnPropertyNames;var pd=Object.getPrototypeOf,xd=Object.prototype.hasOwnProperty;var qr=(e,o)=>()=>(o||e((o={exports:{}}).exports,o),o.exports),Id=(e,o)=>{for(var t in o)Ha(e,t,{get:o[t],enumerable:!0})},Es=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of md(o))!xd.call(e,a)&&a!==t&&Ha(e,a,{get:()=>o[a],enumerable:!(r=dd(o,a))||r.enumerable});return e};var ml=(e,o,t)=>(t=e!=null?cd(pd(e)):{},Es(o||!e||!e.__esModule?Ha(t,"default",{value:e,enumerable:!0}):t,e)),gd=e=>Es(Ha({},"__esModule",{value:!0}),e);var Of=qr(On=>{"use strict";Object.defineProperty(On,"__esModule",{value:!0});On.Pointer=void 0;function Gm(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function Um(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}var Qm=function(){function e(o){o===void 0&&(o=[""]),this.tokens=o}return e.fromJSON=function(o){var t=o.split("/").map(Gm);if(t[0]!=="")throw new Error("Invalid JSON Pointer: ".concat(o));return new e(t)},e.prototype.toString=function(){return this.tokens.map(Um).join("/")},e.prototype.evaluate=function(o){for(var t=null,r="",a=o,n=1,l=this.tokens.length;n<l;n++)t=a,r=this.tokens[n],!(r=="__proto__"||r=="constructor"||r=="prototype")&&(a=(t||{})[r]);return{parent:t,key:r,value:a}},e.prototype.get=function(o){return this.evaluate(o).value},e.prototype.set=function(o,t){var r=this.evaluate(o);r.parent&&(r.parent[r.key]=t)},e.prototype.push=function(o){this.tokens.push(o)},e.prototype.add=function(o){var t=this.tokens.concat(String(o));return new e(t)},e}();On.Pointer=Qm});var Lf=qr(Xo=>{"use strict";Object.defineProperty(Xo,"__esModule",{value:!0});Xo.clone=Xo.objectType=Xo.hasOwnProperty=void 0;Xo.hasOwnProperty=Object.prototype.hasOwnProperty;function zm(e){return e===void 0?"undefined":e===null?"null":Array.isArray(e)?"array":typeof e}Xo.objectType=zm;function Wm(e){return e!=null&&typeof e=="object"}function Ef(e){if(!Wm(e))return e;if(e.constructor==Array){for(var o=e.length,t=new Array(o),r=0;r<o;r++)t[r]=Ef(e[r]);return t}if(e.constructor==Date){var a=new Date(+e);return a}var n={};for(var l in e)Xo.hasOwnProperty.call(e,l)&&(n[l]=Ef(e[l]));return n}Xo.clone=Ef});var Hf=qr(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.diffAny=Ue.diffObjects=Ue.diffArrays=Ue.intersection=Ue.subtract=Ue.isDestructive=void 0;var Ca=Lf();function Xm(e){var o=e.op;return o==="remove"||o==="replace"||o==="copy"||o==="move"}Ue.isDestructive=Xm;function Vf(e,o){var t={};for(var r in e)Ca.hasOwnProperty.call(e,r)&&e[r]!==void 0&&(t[r]=1);for(var a in o)Ca.hasOwnProperty.call(o,a)&&o[a]!==void 0&&delete t[a];return Object.keys(t)}Ue.subtract=Vf;function Ru(e){for(var o=e.length,t={},r=0;r<o;r++){var a=e[r];for(var n in a)Ca.hasOwnProperty.call(a,n)&&a[n]!==void 0&&(t[n]=(t[n]||0)+1)}for(var n in t)t[n]<o&&delete t[n];return Object.keys(t)}Ue.intersection=Ru;function Jm(e){return e.op==="add"}function $m(e){return e.op==="remove"}function Nf(e,o){return{operations:e.operations.concat(o),cost:e.cost+1}}function Pu(e,o,t,r){r===void 0&&(r=En);var a={"0,0":{operations:[],cost:0}};function n(u,c){var d="".concat(u,",").concat(c),m=a[d];if(m===void 0){if(u>0&&c>0&&!r(e[u-1],o[c-1],t.add(String(u-1))).length)m=n(u-1,c-1);else{var p=[];if(u>0){var x=n(u-1,c),C={op:"remove",index:u-1};p.push(Nf(x,C))}if(c>0){var v=n(u,c-1),S={op:"add",index:u-1,value:o[c-1]};p.push(Nf(v,S))}if(u>0&&c>0){var b=n(u-1,c-1),A={op:"replace",index:u-1,original:e[u-1],value:o[c-1]};p.push(Nf(b,A))}var h=p.sort(function(w,j){return w.cost-j.cost})[0];m=h}a[d]=m}return m}var l=isNaN(e.length)||e.length<=0?0:e.length,f=isNaN(o.length)||o.length<=0?0:o.length,i=n(l,f).operations,s=i.reduce(function(u,c){var d=u[0],m=u[1];if(Jm(c)){var p=c.index+1+m,x=p<l+m?String(p):"-",C={op:c.op,path:t.add(x).toString(),value:c.value};return[d.concat(C),m+1]}else if($m(c)){var C={op:c.op,path:t.add(String(c.index+m)).toString()};return[d.concat(C),m-1]}else{var v=t.add(String(c.index+m)),S=r(c.original,c.value,v);return[d.concat.apply(d,S),m]}},[[],0])[0];return s}Ue.diffArrays=Pu;function Tu(e,o,t,r){r===void 0&&(r=En);var a=[];return Vf(e,o).forEach(function(n){a.push({op:"remove",path:t.add(n).toString()})}),Vf(o,e).forEach(function(n){a.push({op:"add",path:t.add(n).toString(),value:o[n]})}),Ru([e,o]).forEach(function(n){a.push.apply(a,r(e[n],o[n],t.add(n)))}),a}Ue.diffObjects=Tu;function En(e,o,t,r){if(r===void 0&&(r=En),e===o)return[];var a=(0,Ca.objectType)(e),n=(0,Ca.objectType)(o);return a=="array"&&n=="array"?Pu(e,o,t,r):a=="object"&&n=="object"?Tu(e,o,t,r):[{op:"replace",path:t.toString(),value:o}]}Ue.diffAny=En});var Lu=qr(ue=>{"use strict";var qf=ue&&ue.__extends||function(){var e=function(o,t){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,a){r.__proto__=a}||function(r,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(r[n]=a[n])},e(o,t)};return function(o,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");e(o,t);function r(){this.constructor=o}o.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}}();Object.defineProperty(ue,"__esModule",{value:!0});ue.apply=ue.InvalidOperationError=ue.test=ue.copy=ue.move=ue.replace=ue.remove=ue.add=ue.TestError=ue.MissingError=void 0;var Jo=Of(),Gf=Lf(),_m=Hf(),To=function(e){qf(o,e);function o(t){var r=e.call(this,"Value required at path: ".concat(t))||this;return r.path=t,r.name="MissingError",r}return o}(Error);ue.MissingError=To;var Du=function(e){qf(o,e);function o(t,r){var a=e.call(this,"Test failed: ".concat(t," != ").concat(r))||this;return a.actual=t,a.expected=r,a.name="TestError",a}return o}(Error);ue.TestError=Du;function Uf(e,o,t){if(Array.isArray(e))if(o=="-")e.push(t);else{var r=parseInt(o,10);e.splice(r,0,t)}else e[o]=t}function ku(e,o){if(Array.isArray(e)){var t=parseInt(o,10);e.splice(t,1)}else delete e[o]}function Bu(e,o){var t=Jo.Pointer.fromJSON(o.path).evaluate(e);return t.parent===void 0?new To(o.path):(Uf(t.parent,t.key,(0,Gf.clone)(o.value)),null)}ue.add=Bu;function Au(e,o){var t=Jo.Pointer.fromJSON(o.path).evaluate(e);return t.value===void 0?new To(o.path):(ku(t.parent,t.key),null)}ue.remove=Au;function Mu(e,o){var t=Jo.Pointer.fromJSON(o.path).evaluate(e);if(t.parent===null)return new To(o.path);if(Array.isArray(t.parent)){if(parseInt(t.key,10)>=t.parent.length)return new To(o.path)}else if(t.value===void 0)return new To(o.path);return t.parent[t.key]=(0,Gf.clone)(o.value),null}ue.replace=Mu;function Fu(e,o){var t=Jo.Pointer.fromJSON(o.from).evaluate(e);if(t.value===void 0)return new To(o.from);var r=Jo.Pointer.fromJSON(o.path).evaluate(e);return r.parent===void 0?new To(o.path):(ku(t.parent,t.key),Uf(r.parent,r.key,t.value),null)}ue.move=Fu;function wu(e,o){var t=Jo.Pointer.fromJSON(o.from).evaluate(e);if(t.value===void 0)return new To(o.from);var r=Jo.Pointer.fromJSON(o.path).evaluate(e);return r.parent===void 0?new To(o.path):(Uf(r.parent,r.key,(0,Gf.clone)(t.value)),null)}ue.copy=wu;function Ou(e,o){var t=Jo.Pointer.fromJSON(o.path).evaluate(e);return(0,_m.diffAny)(t.value,o.value,new Jo.Pointer).length?new Du(t.value,o.value):null}ue.test=Ou;var Eu=function(e){qf(o,e);function o(t){var r=e.call(this,"Invalid operation: ".concat(t.op))||this;return r.operation=t,r.name="InvalidOperationError",r}return o}(Error);ue.InvalidOperationError=Eu;function Km(e,o){switch(o.op){case"add":return Bu(e,o);case"remove":return Au(e,o);case"replace":return Mu(e,o);case"move":return Fu(e,o);case"copy":return wu(e,o);case"test":return Ou(e,o)}return new Eu(o)}ue.apply=Km});var Vu=qr(Do=>{"use strict";Object.defineProperty(Do,"__esModule",{value:!0});Do.createTests=Do.createPatch=Do.applyPatch=Do.Pointer=void 0;var Qf=Of();Object.defineProperty(Do,"Pointer",{enumerable:!0,get:function(){return Qf.Pointer}});var Zm=Lu(),zf=Hf();function Ym(e,o){return o.map(function(t){return(0,Zm.apply)(e,t)})}Do.applyPatch=Ym;function jm(e){function o(t,r,a){var n=e(t,r,a);return Array.isArray(n)?n:(0,zf.diffAny)(t,r,a,o)}return o}function ep(e,o,t){var r=new Qf.Pointer;return(t?jm(t):zf.diffAny)(e,o,r)}Do.createPatch=ep;function Nu(e,o){var t=Qf.Pointer.fromJSON(o).evaluate(e);if(t!==void 0)return{op:"test",path:o,value:t.value}}function op(e,o){var t=new Array;return o.filter(zf.isDestructive).forEach(function(r){var a=Nu(e,r.path);if(a&&t.push(a),"from"in r){var n=Nu(e,r.from);n&&t.push(n)}}),t}Do.createTests=op});var eI={};Id(eI,{AddressDisplay:()=>hl,AddressInput:()=>yl,AnnotationInput:()=>vl,AppShell:()=>Yd,AsyncAutocomplete:()=>Ft,AttachmentArrayDisplay:()=>lf,AttachmentArrayInput:()=>sf,AttachmentButton:()=>Ot,AttachmentDisplay:()=>co,AttachmentInput:()=>Yr,BackboneElementDisplay:()=>cr,BackboneElementInput:()=>Gt,CalendarInput:()=>Af,CheckboxFormSection:()=>ta,CodeInput:()=>Zr,CodeableConceptDisplay:()=>Et,CodeableConceptInput:()=>hf,CodingDisplay:()=>mf,CodingInput:()=>na,ContactDetailDisplay:()=>pf,ContactDetailInput:()=>yf,ContactPointDisplay:()=>jr,ContactPointInput:()=>la,Container:()=>zo,DateTimeInput:()=>no,DefaultResourceTimeline:()=>dp,DescriptionList:()=>cf,DescriptionListEntry:()=>df,DiagnosticReportDisplay:()=>wn,Document:()=>ba,ElementDefinitionInputSelector:()=>uu,ElementDefinitionTypeInput:()=>Ia,EncounterTimeline:()=>mp,ErrorBoundary:()=>Mt,FhirPathTable:()=>sc,Form:()=>ae,FormSection:()=>Oe,Header:()=>of,HumanNameDisplay:()=>$r,HumanNameInput:()=>bf,IdentifierDisplay:()=>xf,IdentifierInput:()=>Rf,Loading:()=>Ka,Logo:()=>tt,MeasureReportDisplay:()=>Gp,MedplumLink:()=>Pe,MedplumProvider:()=>hd,MemoizedFhirPathTable:()=>Np,MemoizedSearchControl:()=>Mp,MoneyDisplay:()=>If,MoneyInput:()=>Pf,Navbar:()=>nf,ObservationTable:()=>Su,OperationOutcomeAlert:()=>Zt,Panel:()=>Jt,PatientTimeline:()=>Up,PlanDefinitionBuilder:()=>Qp,QuantityDisplay:()=>Ho,QuantityInput:()=>ze,QuestionnaireBuilder:()=>ix,QuestionnaireForm:()=>ks,QuestionnaireItemType:()=>ka,RangeDisplay:()=>ea,RangeInput:()=>hr,ReferenceDisplay:()=>st,ReferenceInput:()=>zt,ReferenceRangeEditor:()=>bx,ReferenceRangeGroupEditor:()=>Hc,RegisterForm:()=>Kx,RequestGroupDisplay:()=>Ax,ResourceArrayDisplay:()=>gf,ResourceArrayInput:()=>Df,ResourceAvatar:()=>we,ResourceBadge:()=>Wo,ResourceBlame:()=>Nx,ResourceDiff:()=>Hx,ResourceForm:()=>Gx,ResourceHistoryTable:()=>Ux,ResourceInput:()=>xa,ResourceName:()=>po,ResourcePropertyDisplay:()=>ke,ResourcePropertyInput:()=>Uo,ResourceTable:()=>Vn,ResourceTimeline:()=>Ko,Scheduler:()=>Xx,SearchChangeEvent:()=>Xn,SearchClickEvent:()=>St,SearchControl:()=>lc,SearchFieldEditor:()=>us,SearchFilterEditor:()=>cs,SearchLoadEvent:()=>Jn,ServiceRequestTimeline:()=>_x,SignInForm:()=>jx,StatusBadge:()=>Sa,Timeline:()=>Wf,TimelineItem:()=>$o,TimingInput:()=>kf,addDateFilterBetween:()=>qn,addField:()=>gp,addFilter:()=>_t,addLastMonthFilter:()=>es,addMissingFilter:()=>Gn,addNextMonthFilter:()=>ts,addThisMonthFilter:()=>os,addTodayFilter:()=>Zf,addTomorrowFilter:()=>Yf,addYearToDateFilter:()=>as,addYesterdayFilter:()=>Kf,buildFieldNameString:()=>Je,buildInitialResponse:()=>vs,buildInitialResponseItem:()=>Zn,clearFilters:()=>Ip,clearFiltersOnField:()=>Pa,convertIsoToLocal:()=>Sf,convertLocalToIso:()=>Cf,createScriptTag:()=>La,deleteFilter:()=>_f,formatReferenceString:()=>Ss,getErrorsForInput:()=>$,getFieldDefinitions:()=>ds,getIssuesForExpression:()=>ra,getNewMultiSelectValues:()=>hs,getNumberOfPages:()=>Cs,getOpString:()=>Tr,getQuestionnaireItemReferenceFilter:()=>ys,getQuestionnaireItemReferenceTargetTypes:()=>Ba,getRecaptcha:()=>Ms,getSearchOperators:()=>ss,getSortField:()=>ls,initRecaptcha:()=>As,isChoiceQuestion:()=>Is,isQuestionEnabled:()=>gs,isSortDescending:()=>fs,isSupportedProfileStructureDefinition:()=>tm,parseForm:()=>tf,reactContext:()=>pl,renderValue:()=>is,setFilters:()=>Pr,setOffset:()=>oc,setPage:()=>ns,setPropertyValue:()=>mr,setQuestionnaireItemReferenceTargetTypes:()=>Aa,setSort:()=>Un,sortByDateAndPriority:()=>Xf,toggleSort:()=>hp,useMedplum:()=>P,useMedplumContext:()=>tr,useMedplumNavigate:()=>Oo,useMedplumProfile:()=>Gr,useResource:()=>Z,useSearch:()=>vd,useSearchOne:()=>xl,useSearchResources:()=>Il});module.exports=gd(eI);var Dt=require("react"),qa=require("react"),Ns=require("react/jsx-runtime"),Eo=require("@medplum/core"),kt=require("react"),Ga=require("@medplum/core"),Tt=require("react"),pl=(0,qa.createContext)(void 0);function tr(){return(0,qa.useContext)(pl)}function P(){return tr().medplum}function Oo(){return tr().navigate}function Gr(){return tr().profile}function hd(e){let o=e.medplum,t=e.navigate??yd,[r,a]=(0,Dt.useState)({profile:o.getProfile(),loading:!o.isInitialized});(0,Dt.useEffect)(()=>{o&&(o.isInitialized||(a(l=>({...l,loading:!0})),o.getInitPromise().then(()=>a(l=>({...l,loading:!1}))).catch(console.error)))},[o,o.isInitialized]),(0,Dt.useEffect)(()=>{function l(){a({...r,profile:o.getProfile()})}return o.addEventListener("change",l),()=>o.removeEventListener("change",l)},[o,r]);let n=(0,Dt.useMemo)(()=>({...r,medplum:o,navigate:t}),[r,o,t]);return(0,Ns.jsx)(pl.Provider,{value:n,children:e.children})}function yd(e){window.location.assign(e)}function Z(e,o){let t=P(),[r,a]=(0,kt.useState)(Ls(t,e)),n=(0,kt.useCallback)(l=>{(0,Eo.deepEquals)(l,r)||a(l)},[r,a]);return(0,kt.useEffect)(()=>{n(Ls(t,e))},[t,e,n]),(0,kt.useEffect)(()=>{let l=!0;return(0,Eo.isReference)(e)&&t.readReference(e).then(f=>{l&&n(f)}).catch(f=>{l&&(n(void 0),o&&o((0,Eo.normalizeOperationOutcome)(f)))}),()=>l=!1},[t,r,e,n,o]),r}function Ls(e,o){if(o){if((0,Eo.isResource)(o))return o;if((0,Eo.isReference)(o))return e.getCachedReference(o)}}function vd(e,o){return gl("search",e,o)}function xl(e,o){return gl("searchOne",e,o)}function Il(e,o){return gl("searchResources",e,o)}function gl(e,o,t){let r=P(),[a,n]=(0,Tt.useState)(),[l,f]=(0,Tt.useState)(!1),[i,s]=(0,Tt.useState)(),[u,c]=(0,Tt.useState)();return(0,Tt.useEffect)(()=>{let d=r.fhirSearchUrl(o,t).toString();d!==a&&(n(d),r[e](o,t).then(m=>{f(!1),s(m),c(Ga.allOk)}).catch(m=>{f(!1),s(void 0),c((0,Ga.normalizeOperationOutcome)(m))}))},[r,e,o,t,a,s]),[i,l,u]}var Vs=require("@medplum/core"),Ua=require("react/jsx-runtime");function hl(e){let o=e.value;return o?(0,Ua.jsx)(Ua.Fragment,{children:(0,Vs.formatAddress)(o)}):null}var uo=require("@mantine/core"),Qa=require("react"),vo=require("react/jsx-runtime");function Hs(e,o){return e.line&&e.line.length>o?e.line[o]:""}function qs(e,o,t){let r=e.line||[];for(;r.length<=o;)r.push("");return r[o]=t,{...e,line:r}}function yl(e){let[o,t]=(0,Qa.useState)(e.defaultValue||{}),r=(0,Qa.useRef)();r.current=o;function a(d){t(d),e.onChange&&e.onChange(d)}function n(d){a({...r.current,use:d})}function l(d){a({...r.current,type:d})}function f(d){a(qs(r.current||{},0,d))}function i(d){a(qs(r.current||{},1,d))}function s(d){a({...r.current,city:d})}function u(d){a({...r.current,state:d})}function c(d){a({...r.current,postalCode:d})}return(0,vo.jsxs)(uo.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,vo.jsx)(uo.NativeSelect,{"data-testid":"address-use",defaultValue:o.use,onChange:d=>n(d.currentTarget.value),data:["","home","work","temp","old","billing"]}),(0,vo.jsx)(uo.NativeSelect,{"data-testid":"address-type",defaultValue:o.type,onChange:d=>l(d.currentTarget.value),data:["","postal","physical","both"]}),(0,vo.jsx)(uo.TextInput,{placeholder:"Line 1",defaultValue:Hs(o,0),onChange:d=>f(d.currentTarget.value)}),(0,vo.jsx)(uo.TextInput,{placeholder:"Line 2",defaultValue:Hs(o,1),onChange:d=>i(d.currentTarget.value)}),(0,vo.jsx)(uo.TextInput,{placeholder:"City",defaultValue:o.city,onChange:d=>s(d.currentTarget.value)}),(0,vo.jsx)(uo.TextInput,{placeholder:"State",defaultValue:o.state,onChange:d=>u(d.currentTarget.value)}),(0,vo.jsx)(uo.TextInput,{placeholder:"Postal Code",defaultValue:o.postalCode,onChange:d=>c(d.currentTarget.value)})]})}var Gs=require("@mantine/core"),Us=require("@medplum/core");var za=require("react"),Qs=require("react/jsx-runtime");function vl(e){let o=Gr(),[t,r]=(0,za.useState)(e.defaultValue||{}),a=(0,za.useRef)();a.current=t;function n(l){let f=l?{text:l,authorReference:o&&(0,Us.createReference)(o),time:new Date().toISOString()}:{};r(f),e.onChange&&e.onChange(f)}return(0,Qs.jsx)(Gs.TextInput,{name:e.name,placeholder:"Annotation text",defaultValue:t.text,onChange:l=>n(l.currentTarget.value)})}var ln=require("@mantine/core"),Ii=require("@mantine/notifications");var sr=require("react");var _s=require("@mantine/core"),Ks=require("@medplum/core");var Ur=require("react"),at=ml(require("prop-types"));var zs={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 Sd=Object.defineProperty,Cd=Object.defineProperties,bd=Object.getOwnPropertyDescriptors,Wa=Object.getOwnPropertySymbols,Js=Object.prototype.hasOwnProperty,$s=Object.prototype.propertyIsEnumerable,Ws=(e,o,t)=>o in e?Sd(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,Xs=(e,o)=>{for(var t in o||(o={}))Js.call(o,t)&&Ws(e,t,o[t]);if(Wa)for(var t of Wa(o))$s.call(o,t)&&Ws(e,t,o[t]);return e},Rd=(e,o)=>Cd(e,bd(o)),Pd=(e,o)=>{var t={};for(var r in e)Js.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Wa)for(var r of Wa(e))o.indexOf(r)<0&&$s.call(e,r)&&(t[r]=e[r]);return t},g=(e,o,t)=>{let r=(0,Ur.forwardRef)((a,n)=>{var l=a,{color:f="currentColor",size:i=24,stroke:s=2,children:u}=l,c=Pd(l,["color","size","stroke","children"]);return(0,Ur.createElement)("svg",Xs(Rd(Xs({ref:n},zs),{width:i,height:i,stroke:f,strokeWidth:s,className:`tabler-icon tabler-icon-${e}`}),c),[...t.map(([d,m])=>(0,Ur.createElement)(d,m)),...u||[]])});return r.propTypes={color:at.default.string,size:at.default.oneOfType([at.default.string,at.default.number]),stroke:at.default.oneOfType([at.default.string,at.default.number])},r.displayName=`${o}`,r};var Sl=g("adjustments-horizontal","IconAdjustmentsHorizontal",[["path",{d:"M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M4 6l8 0",key:"svg-1"}],["path",{d:"M16 6l4 0",key:"svg-2"}],["path",{d:"M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M4 12l2 0",key:"svg-4"}],["path",{d:"M10 12l10 0",key:"svg-5"}],["path",{d:"M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-6"}],["path",{d:"M4 18l11 0",key:"svg-7"}],["path",{d:"M19 18l1 0",key:"svg-8"}]]);var Bt=g("alert-circle","IconAlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);var Cl=g("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 bl=g("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 Rl=g("bleach-off","IconBleachOff",[["path",{d:"M5 19h14m1.986 -1.977a2 2 0 0 0 -.146 -.773l-7.1 -12.25a2 2 0 0 0 -3.5 0l-.815 1.405m-1.488 2.568l-4.797 8.277a2 2 0 0 0 1.75 2.75",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]);var Pl=g("bleach","IconBleach",[["path",{d:"M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75",key:"svg-0"}]]);var Tl=g("box-multiple","IconBoxMultiple",[["path",{d:"M7 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M17 17v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h2",key:"svg-1"}]]);var Dl=g("brackets-contain","IconBracketsContain",[["path",{d:"M7 4h-4v16h4",key:"svg-0"}],["path",{d:"M17 4h4v16h-4",key:"svg-1"}],["path",{d:"M8 16h.01",key:"svg-2"}],["path",{d:"M12 16h.01",key:"svg-3"}],["path",{d:"M16 16h.01",key:"svg-4"}]]);var kl=g("bucket-off","IconBucketOff",[["path",{d:"M5.029 5.036c-.655 .58 -1.029 1.25 -1.029 1.964c0 2.033 3.033 3.712 6.96 3.967m3.788 -.21c3.064 -.559 5.252 -2.029 5.252 -3.757c0 -2.21 -3.582 -4 -8 -4c-1.605 0 -3.1 .236 -4.352 .643",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.1 -.3 .252 -.812 .457 -1.535m.862 -3.146c.262 -.975 .735 -2.76 1.418 -5.354a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]]);var Bl=g("bucket","IconBucket",[["path",{d:"M12 7m-8 0a8 4 0 1 0 16 0a8 4 0 1 0 -16 0",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.333 -1 1.246 -4.345 2.737 -10.035a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}]]);var Lo=g("calendar","IconCalendar",[["path",{d:"M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z",key:"svg-0"}],["path",{d:"M16 3v4",key:"svg-1"}],["path",{d:"M8 3v4",key:"svg-2"}],["path",{d:"M4 11h16",key:"svg-3"}],["path",{d:"M11 15h1",key:"svg-4"}],["path",{d:"M12 15v3",key:"svg-5"}]]);var Qr=g("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]);var Al=g("checkbox","IconCheckbox",[["path",{d:"M9 11l3 3l8 -8",key:"svg-0"}],["path",{d:"M20 12v6a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h9",key:"svg-1"}]]);var Ml=g("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]);var nt=g("circle-minus","IconCircleMinus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}]]);var At=g("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 zr=g("cloud-upload","IconCloudUpload",[["path",{d:"M7 18a4.6 4.4 0 0 1 0 -9a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-1",key:"svg-0"}],["path",{d:"M9 15l3 -3l3 3",key:"svg-1"}],["path",{d:"M12 12l0 9",key:"svg-2"}]]);var Fl=g("columns","IconColumns",[["path",{d:"M4 6l5.5 0",key:"svg-0"}],["path",{d:"M4 10l5.5 0",key:"svg-1"}],["path",{d:"M4 14l5.5 0",key:"svg-2"}],["path",{d:"M4 18l5.5 0",key:"svg-3"}],["path",{d:"M14.5 6l5.5 0",key:"svg-4"}],["path",{d:"M14.5 10l5.5 0",key:"svg-5"}],["path",{d:"M14.5 14l5.5 0",key:"svg-6"}],["path",{d:"M14.5 18l5.5 0",key:"svg-7"}]]);var wl=g("copy","IconCopy",[["path",{d:"M7 7m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]]);var Ol=g("currency-dollar","IconCurrencyDollar",[["path",{d:"M16.7 8a3 3 0 0 0 -2.7 -2h-4a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6h-4a3 3 0 0 1 -2.7 -2",key:"svg-0"}],["path",{d:"M12 3v3m0 12v3",key:"svg-1"}]]);var El=g("dots","IconDots",[["path",{d:"M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var Ll=g("edit","IconEdit",[["path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1",key:"svg-0"}],["path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]]);var rr=g("equal-not","IconEqualNot",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}],["path",{d:"M5 19l14 -14",key:"svg-2"}]]);var ar=g("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);var Xa=g("file-alert","IconFileAlert",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 17l.01 0",key:"svg-2"}],["path",{d:"M12 11l0 3",key:"svg-3"}]]);var Nl=g("file-plus","IconFilePlus",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 11l0 6",key:"svg-2"}],["path",{d:"M9 14l6 0",key:"svg-3"}]]);var Vl=g("filter","IconFilter",[["path",{d:"M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z",key:"svg-0"}]]);var Hl=g("list-details","IconListDetails",[["path",{d:"M13 5h8",key:"svg-0"}],["path",{d:"M13 9h5",key:"svg-1"}],["path",{d:"M13 15h8",key:"svg-2"}],["path",{d:"M13 19h5",key:"svg-3"}],["path",{d:"M3 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-4"}],["path",{d:"M3 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-5"}]]);var ql=g("logout","IconLogout",[["path",{d:"M14 8v-2a2 2 0 0 0 -2 -2h-7a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M9 12h12l-3 -3",key:"svg-1"}],["path",{d:"M18 15l3 -3",key:"svg-2"}]]);var Ja=g("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]);var $a=g("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]);var Gl=g("message","IconMessage",[["path",{d:"M8 9h8",key:"svg-0"}],["path",{d:"M8 13h6",key:"svg-1"}],["path",{d:"M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z",key:"svg-2"}]]);var Ul=g("pin","IconPin",[["path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4",key:"svg-0"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-1"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-2"}]]);var Ql=g("pinned-off","IconPinnedOff",[["path",{d:"M3 3l18 18",key:"svg-0"}],["path",{d:"M15 4.5l-3.249 3.249m-2.57 1.433l-2.181 .818l-1.5 1.5l7 7l1.5 -1.5l.82 -2.186m1.43 -2.563l3.25 -3.251",key:"svg-1"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-2"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-3"}]]);var zl=g("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);var Wl=g("refresh","IconRefresh",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]]);var Xl=g("search","IconSearch",[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]);var nr=g("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]);var Wr=g("sort-ascending","IconSortAscending",[["path",{d:"M4 6l7 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l9 0",key:"svg-2"}],["path",{d:"M15 9l3 -3l3 3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]);var Xr=g("sort-descending","IconSortDescending",[["path",{d:"M4 6l9 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l7 0",key:"svg-2"}],["path",{d:"M15 15l3 3l3 -3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]);var Jl=g("square","IconSquare",[["path",{d:"M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z",key:"svg-0"}]]);var $l=g("switch-horizontal","IconSwitchHorizontal",[["path",{d:"M16 3l4 4l-4 4",key:"svg-0"}],["path",{d:"M10 7l10 0",key:"svg-1"}],["path",{d:"M8 13l-4 4l4 4",key:"svg-2"}],["path",{d:"M4 17l9 0",key:"svg-3"}]]);var _l=g("table-export","IconTableExport",[["path",{d:"M12.5 21h-7.5a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5",key:"svg-0"}],["path",{d:"M3 10h18",key:"svg-1"}],["path",{d:"M10 3v18",key:"svg-2"}],["path",{d:"M16 19h6",key:"svg-3"}],["path",{d:"M19 16l3 3l-3 3",key:"svg-4"}]]);var Jr=g("trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]);var Kl=g("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);var Zs=require("react"),Zl=require("react/jsx-runtime"),Mt=class extends Zs.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?(0,Zl.jsx)(_s.Alert,{icon:(0,Zl.jsx)(Bt,{size:16}),title:"Something went wrong",color:"red",children:(0,Ks.normalizeErrorString)(this.state.error)}):this.props.children}};var _a=require("@mantine/core"),Yl=require("react/jsx-runtime");function Ka(){return(0,Yl.jsx)(_a.Center,{style:{width:"100%",height:"100vh"},children:(0,Yl.jsx)(_a.Loader,{})})}var X=require("@mantine/core"),Kr=require("@medplum/core");var fi=require("react");var Ys=require("@medplum/core"),Za=require("react/jsx-runtime");function $r(e){let o=e.value;return o?(0,Za.jsx)(Za.Fragment,{children:(0,Ys.formatHumanName)(o,e.options)}):null}var jl=require("@mantine/core"),on=require("@medplum/core");var ei=require("@mantine/core"),ja=require("@medplum/core");function V(e){e.preventDefault(),e.stopPropagation()}function Ya(e){if(js(e))return!0;if(e instanceof HTMLTableCellElement){let o=e.children;if(o.length===1&&js(o[0]))return!0}return!1}function js(e){return e instanceof HTMLInputElement&&e.type==="checkbox"}var oi=require("react/jsx-runtime");function Pe(e){let o=Oo(),{to:t,suffix:r,label:a,onClick:n,children:l,...f}=e,i=Td(t);return r&&(i+="/"+r),(0,oi.jsx)(ei.Anchor,{href:i,"aria-label":a,onClick:s=>{V(s),n?n(s):t&&o(i)},...f,children:l})}function Td(e){if(e){if(typeof e=="string")return Dd(e);if((0,ja.isResource)(e))return kd(e);if((0,ja.isReference)(e))return Bd(e)}return"#"}function Dd(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e}function kd(e){return`/${e.resourceType}/${e.id}`}function Bd(e){return`/${e.reference}`}var en=require("react/jsx-runtime");function we(e){let o=Z(e.value),t=o?(0,on.getDisplayString)(o):e.alt??"",r=(o&&(0,on.getImageSrc)(o))??e.src,a=e.radius??"xl",n={...e};return delete n.value,delete n.link,e.link?(0,en.jsx)(Pe,{to:o,children:(0,en.jsx)(jl.Avatar,{src:r,alt:t,radius:a,...n})}):(0,en.jsx)(jl.Avatar,{src:r,alt:t,radius:a,...n})}var wt=require("@mantine/core"),No=require("@medplum/core");var _r=require("react");var tn=require("@mantine/core"),ti=require("@mantine/notifications"),ri=require("@medplum/core"),ce=require("react");var ef=require("react/jsx-runtime");function Ft(e){let{defaultValue:o,toKey:t,toOption:r,loadOptions:a,onChange:n,onCreate:l,creatable:f,...i}=e,s=Ad(o),u=(0,ce.useRef)(null),[c,d]=(0,ce.useState)(),[m,p]=(0,ce.useState)(),[x,C]=(0,ce.useState)(),[v,S]=(0,ce.useState)(s.map(r)),[b,A]=(0,ce.useState)([]),h=(0,ce.useRef)(),w=(0,ce.useRef)(),j=(0,ce.useRef)();j.current=c;let pe=(0,ce.useRef)();pe.current=m;let Nr=(0,ce.useRef)();Nr.current=x;let to=(0,ce.useRef)();to.current=b;let ro=(0,ce.useCallback)(()=>{d(void 0);let ge=u.current?.value.trim()||"";if(ge===w.current&&a===h.current)return;w.current=ge,h.current=a;let De=new AbortController;p(De),a(ge,De.signal).then(Fe=>{De.signal.aborted||(A(Fe.map(r)),p(void 0),Nr.current&&(Fe.length>0&&n(Fe.slice(0,1)),C(!1)))}).catch(Fe=>{De.signal.aborted||Fe.message.includes("aborted")||(0,ti.showNotification)({color:"red",message:(0,ri.normalizeErrorString)(Fe)})})},[a,n,r]),R=(0,ce.useCallback)(()=>{pe.current&&(pe.current.abort(),p(void 0)),j.current!==void 0&&window.clearTimeout(j.current);let ge=window.setTimeout(()=>ro(),100);d(ge)},[ro]),H=(0,ce.useCallback)(ge=>{let De=[],Fe=[];for(let Vr of ge){let Va=to.current?.find(ud=>ud.value===Vr),Hr=Va?.resource;!Hr&&f!==!1&&l&&(Hr=l(Vr),Va=r(Hr)),Hr&&De.push(Hr),Va&&Fe.push(Va)}n(De),S(Fe)},[f,n,l,r]),rt=(0,ce.useCallback)(ge=>{ge.key==="Enter"&&(!j.current&&!pe.current?(V(ge),to.current&&to.current.length>0&&(A(to.current.slice(0,1)),H([to.current[0].value]))):C(!0))},[H]),T=(0,ce.useCallback)(ge=>{let De=r(l(ge));return A([...to.current,De]),De},[l,A,r]),J=(0,ce.useCallback)((ge,De)=>!De,[]);return(0,ce.useEffect)(()=>()=>{pe.current&&pe.current.abort()},[]),(0,ef.jsx)(tn.MultiSelect,{...i,ref:u,defaultValue:s.map(t),searchable:!0,onKeyDown:rt,onSearchChange:R,data:[...v,...b],onFocus:ro,onChange:H,onCreate:T,rightSectionWidth:40,rightSection:m?(0,ef.jsx)(tn.Loader,{size:16}):null,filter:J,creatable:!0,withinPortal:!0})}function Ad(e){return e?Array.isArray(e)?e:[e]:[]}var So=require("react/jsx-runtime"),Md=(0,wt.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 Fd(e){return e.id}function wd(e){return{value:e.id,label:(0,No.getDisplayString)(e),resource:e}}function li(e){let{classes:o}=Md(),t=Oo(),r=P(),a=(0,_r.useCallback)(async(l,f)=>{let i=Ed(l),s={signal:f},u=await r.graphql(i,void 0,void 0,s);return Ld(u,l)},[r]),n=(0,_r.useCallback)(l=>{l.length>0&&t(`/${(0,No.getReferenceString)(l[0])}`)},[t]);return(0,So.jsx)(Ft,{size:"sm",radius:"md",className:o.searchInput,icon:(0,So.jsx)(Xl,{size:16}),placeholder:"Search",itemComponent:Od,toKey:Fd,toOption:wd,onChange:n,loadOptions:a,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1},`${e.pathname}?${e.searchParams}`)}var Od=(0,_r.forwardRef)(({resource:e,...o},t)=>{let r;return e.resourceType==="Patient"?r=e.birthDate:e.resourceType==="ServiceRequest"&&(r=e.subject?.display),(0,So.jsx)("div",{ref:t,...o,children:(0,So.jsxs)(wt.Group,{noWrap:!0,children:[(0,So.jsx)(we,{value:e}),(0,So.jsxs)("div",{children:[(0,So.jsx)(wt.Text,{children:(0,No.getDisplayString)(e)}),(0,So.jsx)(wt.Text,{size:"xs",color:"dimmed",children:r})]})]})})});function Ed(e){let o=JSON.stringify(e);return(0,No.isUUID)(e)?`{
|
|
2
2
|
Patients1: PatientList(_id: ${o}, _count: 1) {
|
|
3
3
|
resourceType
|
|
4
4
|
id
|
|
@@ -61,8 +61,14 @@
|
|
|
61
61
|
display
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
}`.replace(/\s+/g," ")}function Nd(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),Hd(Vd(t),o).slice(0,5)}function Vd(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 Hd(e,o){return e.sort((t,r)=>ai(r,o)-ai(t,o))}function ai(e,o){let t=0;if(e.identifier)for(let r of e.identifier)t=Math.max(t,ni(r.value,o));if(e.resourceType==="Patient"&&e.name)for(let r of e.name)t=Math.max(t,ni((0,No.formatHumanName)(r),o));return t}function ni(e,o){if(!e)return 0;let t=e.toLowerCase().indexOf(o.toLowerCase());return t<0?0:100-t}var z=require("react/jsx-runtime"),qd=(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 ef(e){let o=rr(),{medplum:t,profile:r,navigate:a}=o,n=t.getLogins(),{classes:l,cx:f}=qd(),[s,i]=(0,fi.useState)(!1);return(0,z.jsx)(X.Header,{height:60,p:8,style:{zIndex:101},children:(0,z.jsxs)(X.Group,{position:"apart",children:[(0,z.jsxs)(X.Group,{spacing:"xs",children:[(0,z.jsx)(X.UnstyledButton,{className:l.logoButton,onClick:e.navbarToggle,children:e.logo}),!e.headerSearchDisabled&&(0,z.jsx)(li,{pathname:e.pathname,searchParams:e.searchParams})]}),(0,z.jsxs)(X.Menu,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:s,onClose:()=>i(!1),children:[(0,z.jsx)(X.Menu.Target,{children:(0,z.jsx)(X.UnstyledButton,{className:f(l.user,{[l.userActive]:s}),onClick:()=>i(u=>!u),children:(0,z.jsxs)(X.Group,{spacing:7,children:[(0,z.jsx)(Fe,{value:r,radius:"xl",size:24}),(0,z.jsx)(X.Text,{size:"sm",className:l.userName,children:(0,_r.formatHumanName)(r?.name?.[0])}),(0,z.jsx)(Al,{size:12,stroke:1.5})]})})}),(0,z.jsxs)(X.Menu.Dropdown,{children:[(0,z.jsxs)(X.Stack,{align:"center",p:"xl",children:[(0,z.jsx)(Fe,{size:"xl",radius:100,value:o.profile}),(0,z.jsx)(Jr,{value:o.profile?.name?.[0]}),(0,z.jsx)(X.Text,{color:"dimmed",size:"xs",children:t.getActiveLogin()?.project.display})]}),n.length>1&&(0,z.jsx)(X.Menu.Divider,{}),n.map(u=>u.profile.reference!==(0,_r.getReferenceString)(o.profile)&&(0,z.jsx)(X.Menu.Item,{onClick:()=>{t.setActiveLogin(u).then(()=>window.location.reload()).catch(console.log)},children:(0,z.jsxs)(X.Group,{children:[(0,z.jsx)(X.Avatar,{radius:"xl"}),(0,z.jsxs)("div",{style:{flex:1},children:[(0,z.jsx)(X.Text,{size:"sm",weight:500,children:u.profile.display}),(0,z.jsx)(X.Text,{color:"dimmed",size:"xs",children:u.project.display})]})]})},u.profile.reference)),(0,z.jsx)(X.Menu.Divider,{}),(0,z.jsx)(X.Menu.Item,{icon:(0,z.jsx)(Jl,{size:14,stroke:1.5}),onClick:()=>a("/signin"),children:"Add another account"}),(0,z.jsx)(X.Menu.Item,{icon:(0,z.jsx)(lr,{size:14,stroke:1.5}),onClick:()=>a(`/${(0,_r.getReferenceString)(r)}`),children:"Account settings"}),(0,z.jsx)(X.Menu.Item,{icon:(0,z.jsx)(Hl,{size:14,stroke:1.5}),onClick:async()=>{await t.signOut(),a("/signin")},children:"Sign out"}),(0,z.jsx)(X.Text,{size:"xs",color:"dimmed",align:"center",children:e.version})]})]})]})})}var Ue=require("@mantine/core");var rn=require("react");var ro=require("@mantine/core"),tf=require("@mantine/notifications"),on=require("@medplum/core");function of(e){let o={};for(let t of Array.from(e.elements))t instanceof HTMLInputElement?Gd(o,t):t instanceof HTMLTextAreaElement?o[t.name]=t.value:t instanceof HTMLSelectElement&&Ud(o,t);return o}function Gd(e,o){o.disabled||(o.type==="checkbox"||o.type==="radio")&&!o.checked||(e[o.name]=o.value)}function Ud(e,o){e[o.name]=o.value}var si=require("react/jsx-runtime");function te(e){return(0,si.jsx)("form",{style:e.style,"data-testid":e.testid,onSubmit:o=>{o.preventDefault();let t=of(o.target);e.onSubmit&&e.onSubmit(t)},children:e.children})}var Co=require("react/jsx-runtime");function ii(e){let o=P(),t=o.getUserConfiguration();function r(a){let{menuname:n,bookmarkname:l}=a,f=`${e.pathname}?${e.searchParams.toString()}`,s=(0,on.deepClone)(t);s.menu?.find(({title:u})=>u===n)?.link?.push({name:l,target:f}),o.updateResource(s).then(u=>{t.menu=u.menu,o.dispatchEvent({type:"change"}),(0,tf.showNotification)({color:"green",message:"Success"}),e.onOk()}).catch(u=>{(0,tf.showNotification)({color:"red",message:(0,on.normalizeErrorString)(u)})})}return(0,Co.jsx)(ro.Modal,{title:"Add Bookmark",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel,children:(0,Co.jsx)(te,{onSubmit:r,children:(0,Co.jsxs)(ro.Stack,{children:[(0,Co.jsx)(Qd,{config:t}),(0,Co.jsx)(ro.TextInput,{label:"Bookmark Name",type:"text",name:"bookmarkname",placeholder:"Bookmark Name",withAsterisk:!0}),(0,Co.jsx)(ro.Group,{position:"right",children:(0,Co.jsx)(ro.Button,{mt:"sm",type:"submit",children:"OK"})})]})})})}function Qd(e){function o(r){return r?.menu?.map(a=>a.title)}let t=o(e.config);return(0,Co.jsx)(ro.NativeSelect,{name:"menuname",defaultValue:t[0],label:"Select Menu Option",placeholder:"Menu",data:t,withAsterisk:!0})}var tn=require("react");var di=require("react");var ui=require("react");var ci=require("react/jsx-runtime");function rf(e){return typeof e.code=="string"?e.code:JSON.stringify(e)}function zd(e){return typeof e.display=="string"?e.display:rf(e)}function Wd(e){return{value:rf(e),label:zd(e),resource:e}}function Xd(e){return{code:e,display:e}}function fr(e){let o=P(),{binding:t,creatable:r,clearable:a,...n}=e,l=(0,ui.useCallback)(async(f,s)=>{if(!t)return[];let u=(await o.searchValueSet(t,f,{signal:s})).expansion?.contains,c=[];for(let d of u)d.code&&!c.some(m=>m.code===d.code)&&c.push(d);return c},[o,t]);return(0,ci.jsx)(Ft,{...n,creatable:r??!0,clearable:a??!0,toKey:rf,toOption:Wd,loadOptions:l,onCreate:Xd,getCreateLabel:r===!1?void 0:f=>`+ Create ${f}`})}var mi=require("react/jsx-runtime");function Kr(e){let[o,t]=(0,di.useState)(e.defaultValue);function r(a){let n=a[0],l=$d(n);t(l),e.onChange&&e.onChange(l)}return(0,mi.jsx)(fr,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:Jd(o),onChange:r,creatable:e.creatable,maxSelectedValues:e.maxSelectedValues??1,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable})}function Jd(e){return e?{code:e}:void 0}function $d(e){return e?.code}var pi=require("react/jsx-runtime");function sr(e){let[o,t]=(0,tn.useState)(e.defaultValue),r=e.onChange,a=(0,tn.useCallback)(n=>{t(n),r&&r(n)},[r]);return(0,pi.jsx)(Kr,{"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 ge=require("react/jsx-runtime"),xi=(0,Ue.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 af(e){let{classes:o}=xi(),t=Oo(),r=Zd(e.pathname,e.searchParams,e.menus),[a,n]=(0,rn.useState)(!1);function l(s,i){s.stopPropagation(),s.preventDefault(),t(i),window.innerWidth<768&&e.closeNavbar()}function f(s){s&&t(`/${s}`)}return(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(Ue.Navbar,{width:{sm:250},p:"xs",children:(0,ge.jsxs)(Ue.ScrollArea,{children:[!e.resourceTypeSearchDisabled&&(0,ge.jsx)(Ue.Navbar.Section,{mb:"sm",children:(0,ge.jsx)(sr,{name:"resourceType",placeholder:"Resource Type",onChange:s=>f(s)},window.location.pathname)}),(0,ge.jsxs)(Ue.Navbar.Section,{grow:!0,children:[e.menus?.map(s=>(0,ge.jsxs)(rn.Fragment,{children:[(0,ge.jsx)(Ue.Text,{className:o.menuTitle,children:s.title}),s.links?.map(i=>(0,ge.jsxs)(_d,{to:i.href,active:i.href===r?.href,onClick:u=>l(u,i.href),children:[(0,ge.jsx)(Kd,{to:i.href,icon:i.icon}),(0,ge.jsx)("span",{children:i.label})]},i.href))]},`menu-${s.title}`)),e.displayAddBookmark&&(0,ge.jsx)(Ue.Button,{variant:"subtle",size:"xs",mt:"xl",leftIcon:(0,ge.jsx)(Ql,{size:"0.75rem"}),onClick:()=>n(!0),children:"Add Bookmark"})]})]})}),e.pathname&&e.searchParams&&(0,ge.jsx)(ii,{pathname:e.pathname,searchParams:e.searchParams,visible:a,onOk:()=>n(!1),onCancel:()=>n(!1)})]})}function _d(e){let{classes:o,cx:t}=xi();return(0,ge.jsx)(Pe,{onClick:e.onClick,to:e.to,className:t(o.link,{[o.linkActive]:e.active}),children:e.children})}function Kd(e){return e.icon?e.icon:(0,ge.jsx)(Ue.Space,{w:30})}function Zd(e,o,t){if(!e||!o||!t)return;let r,a=0;for(let n of t)if(n.links)for(let l of n.links){let f=Yd(e,o,l.href);f>a&&(a=f,r=l)}return r}function Yd(e,o,t){let r=new URL(t,"https://example.com");if(e!==r.pathname)return 0;let a=["_count","_offset"];for(let[l,f]of r.searchParams.entries())if(!a.includes(l)&&o.get(l)!==f)return 0;let n=1;for(let[l,f]of o.entries())a.includes(l)||r.searchParams.get(l)===f&&n++;return n}var lt=require("react/jsx-runtime");function jd(e){let o=(0,an.useMantineTheme)(),[t,r]=(0,ir.useState)(localStorage.navbarOpen==="true"),a=P(),n=qr();(0,ir.useEffect)(()=>{function i(){(0,Ii.showNotification)({color:"red",message:"No connection to server",autoClose:!1})}return a.addEventListener("offline",i),()=>a.removeEventListener("offline",i)},[a]);function l(i){localStorage.navbarOpen=i.toString(),r(i)}function f(){l(!1)}function s(){l(!t)}return a.isLoading()?(0,lt.jsx)($a,{}):(0,lt.jsx)(an.AppShell,{styles:{main:{background:o.colorScheme==="dark"?o.colors.dark[8]:o.colors.gray[0]}},padding:0,fixed:!0,header:n&&(0,lt.jsx)(ef,{pathname:e.pathname,searchParams:e.searchParams,headerSearchDisabled:e.headerSearchDisabled,logo:e.logo,version:e.version,navbarToggle:s}),navbar:n&&t?(0,lt.jsx)(af,{pathname:e.pathname,searchParams:e.searchParams,menus:e.menus,closeNavbar:f,displayAddBookmark:e.displayAddBookmark,resourceTypeSearchDisabled:e.resourceTypeSearchDisabled}):void 0,children:(0,lt.jsx)(Mt,{children:(0,lt.jsx)(ir.Suspense,{fallback:(0,lt.jsx)($a,{}),children:e.children})},`${e.pathname}?${e.searchParams?.toString()}`)})}var gi=require("@mantine/core"),bo=require("react/jsx-runtime");function io(e){let{contentType:o,url:t,title:r}=e.value??{};return t?(0,bo.jsxs)("div",{"data-testid":"attachment-display",children:[o?.startsWith("image/")&&(0,bo.jsx)("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:t,alt:r}),o?.startsWith("video/")&&(0,bo.jsx)("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0,children:(0,bo.jsx)("source",{type:o,src:t})}),o==="application/pdf"&&(0,bo.jsx)("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400},children:(0,bo.jsx)("iframe",{width:"100%",height:"400",src:t+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})}),(0,bo.jsx)("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"},children:(0,bo.jsx)(gi.Anchor,{href:t,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer",download:em(r),children:r||"Download"})})]}):null}function em(e){return e?.includes(".")?e:void 0}var nn=require("react/jsx-runtime");function nf(e){return(0,nn.jsx)("div",{children:e.values?.map((o,t)=>(0,nn.jsx)("div",{children:(0,nn.jsx)(io,{value:o,maxWidth:e.maxWidth})},"attatchment-"+t))})}var lf=require("@mantine/core");var ln=require("react");var hi=require("react");var yi=require("@medplum/core"),ur=require("react/jsx-runtime");function Ot(e){let o=P(),t=(0,hi.useRef)(null);function r(l){N(l),t.current?.click()}function a(l){N(l);let f=l.target.files;f&&Array.from(f).forEach(n)}function n(l){if(!l||!l.name)return;e.onUploadStart&&e.onUploadStart();let s=l.name,i=l.type||"application/octet-stream";o.createBinary(l,s,i,e.onUploadProgress).then(u=>{e.onUpload({contentType:u.contentType,url:u.url,title:s})}).catch(u=>{e.onUploadError&&e.onUploadError((0,yi.normalizeOperationOutcome)(u))})}return(0,ur.jsxs)(ur.Fragment,{children:[(0,ur.jsx)("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:t,onChange:l=>a(l)}),e.children({onClick:r})]})}var Se=require("react/jsx-runtime");function ff(e){let[o,t]=(0,ln.useState)(e.defaultValue??[]),r=(0,ln.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return(0,Se.jsxs)("table",{style:{width:"100%"},children:[(0,Se.jsxs)("colgroup",{children:[(0,Se.jsx)("col",{width:"97%"}),(0,Se.jsx)("col",{width:"3%"})]}),(0,Se.jsxs)("tbody",{children:[o.map((n,l)=>(0,Se.jsxs)("tr",{children:[(0,Se.jsx)("td",{children:(0,Se.jsx)(io,{value:n,maxWidth:200})}),(0,Se.jsx)("td",{children:(0,Se.jsx)(lf.ActionIcon,{title:"Remove",size:"sm",onClick:f=>{N(f);let s=o.slice();s.splice(l,1),a(s)},children:(0,Se.jsx)(vo,{})})})]},`${l}-${o.length}`)),(0,Se.jsxs)("tr",{children:[(0,Se.jsx)("td",{}),(0,Se.jsx)("td",{children:(0,Se.jsx)(Ot,{onUpload:n=>{a([...r.current,n])},children:n=>(0,Se.jsx)(lf.ActionIcon,{...n,title:"Add",size:"sm",color:"green",children:(0,Se.jsx)(Qr,{size:16})})})})]})]})]})}var sf=require("@mantine/core"),vi=require("react");var Vo=require("react/jsx-runtime");function Zr(e){let[o,t]=(0,vi.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return o?(0,Vo.jsxs)(Vo.Fragment,{children:[(0,Vo.jsx)(io,{value:o,maxWidth:200}),(0,Vo.jsx)(sf.Button,{onClick:a=>{N(a),r(void 0)},children:"Remove"})]}):(0,Vo.jsx)(Ot,{onUpload:r,children:a=>(0,Vo.jsx)(sf.Button,{...a,children:"Upload..."})})}var gn=require("@medplum/core");var fn=["meta","implicitRules","contained","extension","modifierExtension"],sn=["language","text"];var Si=require("@mantine/core"),ft=require("react/jsx-runtime"),om=(0,Si.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 uf(e){let{children:o,compact:t}=e,{classes:r,cx:a}=om();return(0,ft.jsx)("dl",{className:a(r.root,{[r.compact]:t}),children:o})}function cf(e){return(0,ft.jsxs)(ft.Fragment,{children:[(0,ft.jsx)("dt",{children:e.term}),(0,ft.jsx)("dd",{children:e.children})]})}var ut=require("@mantine/core"),F=require("@medplum/core");var Ci=require("@medplum/core"),un=require("react/jsx-runtime");function Et(e){return(0,un.jsx)(un.Fragment,{children:(0,Ci.formatCodeableConcept)(e.value)})}var bi=require("@medplum/core"),cn=require("react/jsx-runtime");function df(e){return(0,cn.jsx)(cn.Fragment,{children:(0,bi.formatCoding)(e.value)})}var dn=require("react/jsx-runtime");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("]")),(0,dn.jsx)(dn.Fragment,{children:t.join("").trim()})}var cr=require("react/jsx-runtime");function mf(e){let o=e.value;return o?(0,cr.jsxs)(cr.Fragment,{children:[o.name,o.name&&": ",o.telecom?.map(t=>(0,cr.jsx)(Yr,{value:t},`telecom-${o.name}-${t.value}`))]}):null}var Ri=require("react/jsx-runtime");function pf(e){return(0,Ri.jsxs)("div",{children:[e.value?.system,": ",e.value?.value]})}var Pi=require("@medplum/core"),mn=require("react/jsx-runtime");function xf(e){return(0,mn.jsx)(mn.Fragment,{children:(0,Pi.formatMoney)(e.value)})}var Ti=require("@medplum/core"),pn=require("react/jsx-runtime");function Ho(e){return(0,pn.jsx)(pn.Fragment,{children:(0,Ti.formatQuantity)(e.value)})}var Di=require("@medplum/core"),xn=require("react/jsx-runtime");function jr(e){return(0,xn.jsx)(xn.Fragment,{children:(0,Di.formatRange)(e.value)})}var Lt=require("react/jsx-runtime");function ki(e){let o=e.value;return o?(0,Lt.jsxs)(Lt.Fragment,{children:[(0,Lt.jsx)(Ho,{value:o.numerator}),"\xA0/\xA0",(0,Lt.jsx)(Ho,{value:o.denominator})]}):null}var Bi=require("@medplum/core");var ea=require("react/jsx-runtime");function st(e){if(!e.value)return null;let o=e.value.display||e.value.reference||(0,Bi.stringify)(e.value);return e.link!==!1&&e.value.reference?(0,ea.jsx)(Pe,{to:e.value,children:o}):(0,ea.jsx)(ea.Fragment,{children:o})}var it=require("react/jsx-runtime");function If(e){let{property:o,values:t}=e,r=o.type[0].code;return e.values?(0,it.jsx)(it.Fragment,{children:t.map((a,n)=>(0,it.jsx)("div",{children:(0,it.jsx)(De,{arrayElement:!0,property:o,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link})},`${n}-${t.length}`))}):(0,it.jsx)(it.Fragment,{})}var E=require("react/jsx-runtime");function De(e){let{property:o,propertyType:t,value:r}=e;if(o?.path?.endsWith(".id"))return(0,E.jsxs)(ut.Box,{component:"div",sx:{display:"flex",gap:3,alignItems:"center"},children:[r,!(0,F.isEmpty)(r)&&(0,E.jsx)(ut.CopyButton,{value:r,timeout:2e3,children:({copied:n,copy:l})=>(0,E.jsx)(ut.Tooltip,{label:n?"Copied":"Copy",withArrow:!0,position:"right",children:(0,E.jsx)(ut.ActionIcon,{color:n?"teal":"gray",onClick:l,children:n?(0,E.jsx)(Ur,{size:"1rem"}):(0,E.jsx)(Fl,{size:"1rem"})})})})]});if(o?.max&&o.max>1&&!e.arrayElement)return t===F.PropertyType.Attachment?(0,E.jsx)(nf,{values:r,maxWidth:e.maxWidth}):(0,E.jsx)(If,{property:o,values:r,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(t){case F.PropertyType.boolean:return(0,E.jsx)(E.Fragment,{children:r===void 0?"":(!!r).toString()});case F.PropertyType.SystemString:case F.PropertyType.string:return(0,E.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:r});case F.PropertyType.code:case F.PropertyType.date:case F.PropertyType.decimal:case F.PropertyType.id:case F.PropertyType.integer:case F.PropertyType.positiveInt:case F.PropertyType.unsignedInt:case F.PropertyType.uri:case F.PropertyType.url:return(0,E.jsx)(E.Fragment,{children:r});case F.PropertyType.canonical:return(0,E.jsx)(st,{value:{reference:r},link:e.link});case F.PropertyType.dateTime:case F.PropertyType.instant:return(0,E.jsx)(E.Fragment,{children:(0,F.formatDateTime)(r)});case F.PropertyType.markdown:return(0,E.jsx)("pre",{children:r});case F.PropertyType.Address:return(0,E.jsx)(gl,{value:r});case F.PropertyType.Annotation:return(0,E.jsx)(E.Fragment,{children:r?.text});case F.PropertyType.Attachment:return(0,E.jsx)(io,{value:r,maxWidth:e.maxWidth});case F.PropertyType.CodeableConcept:return(0,E.jsx)(Et,{value:r});case F.PropertyType.Coding:return(0,E.jsx)(df,{value:r});case F.PropertyType.ContactDetail:return(0,E.jsx)(mf,{value:r});case F.PropertyType.ContactPoint:return(0,E.jsx)(Yr,{value:r});case F.PropertyType.HumanName:return(0,E.jsx)(Jr,{value:r});case F.PropertyType.Identifier:return(0,E.jsx)(pf,{value:r});case F.PropertyType.Money:return(0,E.jsx)(xf,{value:r});case F.PropertyType.Period:return(0,E.jsx)(E.Fragment,{children:(0,F.formatPeriod)(r)});case F.PropertyType.Quantity:case F.PropertyType.Duration:return(0,E.jsx)(Ho,{value:r});case F.PropertyType.Range:return(0,E.jsx)(jr,{value:r});case F.PropertyType.Ratio:return(0,E.jsx)(ki,{value:r});case F.PropertyType.Reference:return(0,E.jsx)(st,{value:r,link:e.link});case F.PropertyType.Timing:return(0,E.jsx)(E.Fragment,{children:(0,F.formatTiming)(r)});case F.PropertyType.Dosage:case F.PropertyType.UsageContext:return(0,E.jsx)(dr,{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(0,E.jsx)(dr,{value:{type:o.type[0].code,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}var In=require("@medplum/core");function ct(e,o){let t=(0,In.getTypedPropertyValue)(e,o);return t?Array.isArray(t)?[t.map(r=>r.value),t[0].type]:[t.value,t.type]:[void 0,"undefined"]}function Ai(e,o,t){let r=(0,In.getTypedPropertyValueWithSchema)(e,o,t);return r?Array.isArray(r)?[r.map(a=>a.value),r[0].type]:[r.value,r.type]:[void 0,"undefined"]}var Nt=require("react/jsx-runtime");function dr(e){let o=e.value,t=o.value;if(!t)return null;let r=o.type,a=(0,gn.tryGetDataType)(r);return a?typeof t=="object"&&"name"in t&&Object.keys(t).length===1&&typeof t.name=="string"?(0,Nt.jsx)("div",{children:t.name}):(0,Nt.jsx)(uf,{compact:e.compact,children:Object.entries(a.elements).map(n=>{let[l,f]=n;if(fn.includes(l)||sn.includes(l)&&f.path.split(".").length===2)return null;let[s,i]=ct(o,l);return e.ignoreMissingValues&&(!s||Array.isArray(s)&&s.length===0)?null:(0,Nt.jsx)(cf,{term:(0,gn.getPathDisplayName)(l),children:(0,Nt.jsx)(De,{property:f,propertyType:i,value:s,ignoreMissingValues:e.ignoreMissingValues,link:e.link})},l)})}):(0,Nt.jsxs)("div",{children:[r,"\xA0not implemented"]})}var mu=require("@medplum/core"),Jt=require("react");var du=require("@mantine/core"),kf=require("@medplum/core"),Dn=require("react");var hn=require("@mantine/core"),wi=require("react");var Mi=dl(require("react"),1);function tm(e,o){let t=e.lastIndexOf(o);if(t===-1)return["",e];let r=e.substring(0,t),a=e.substring(t+o.length);return[r,a]}var uo=Mi.default.createContext({profileUrl:void 0,debugMode:!1,getModifiedNestedElement:()=>{}});function Fi(e,o,t){let r=Object.create(null);function a(l){return r[l]}let n=e?.elements;if(n){let l=new Set;for(let[f,s]of Object.entries(n)){let[i,u]=tm(f,".");l.has(i)&&(r[e.type+"."+f]=s),l.add(f)}}return{debugMode:t??!1,profileUrl:o,getModifiedNestedElement:a}}var mr=require("react/jsx-runtime");function oa(e){let{debugMode:o}=(0,wi.useContext)(uo),t;return o&&e.fhirPath?t=`${e.title} - ${e.fhirPath}`:t=e.title,(0,mr.jsxs)(hn.Group,{noWrap:!0,"data-testid":e.testId,children:[(0,mr.jsx)("div",{children:e.children}),(0,mr.jsx)("div",{children:(0,mr.jsx)(hn.Input.Wrapper,{id:e.htmlFor,label:t,description:e.description,withAsterisk:e.withAsterisk,children:null})})]})}var Ei=require("@mantine/core"),Li=require("react");function $(e,o){return e?.issue?.filter(t=>Oi(t.expression?.[0],o))?.map(t=>t.details?.text)?.join(`
|
|
65
|
-
`)}function ta(e,o){return e?.issue?.filter(t=>Oi(t.expression?.[0],o))}function Oi(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}var Ni=require("react/jsx-runtime");function we(e){let{debugMode:o}=(0,Li.useContext)(uo),t;return o&&e.fhirPath?t=`${e.title} - ${e.fhirPath}`:t=e.title,(0,Ni.jsx)(Ei.Input.Wrapper,{id:e.htmlFor,label:t,description:e.description,withAsterisk:e.withAsterisk,error:$(e.outcome,e.htmlFor),"data-testid":e.testId,children:e.children})}var ra=require("@medplum/core");function pr(e,o,t,r,a){let n=r.type;if(n.length>1)for(let l of n){let f=o.replace("[x]",(0,ra.capitalize)(l.code));f in e&&delete e[f]}return e[t]=a,e}function rm(e){return!!e&&!(0,ra.isEmpty)(e.url)&&!(0,ra.isEmpty)(e.name)}var no=require("@mantine/core"),w=require("@medplum/core"),iu=require("react");var Vi=require("react");var Hi=require("react/jsx-runtime");function gf(e){let[o,t]=(0,Vi.useState)(e.defaultValue);function r(a){let n=nm(a);t(n),e.onChange&&e.onChange(n)}return(0,Hi.jsx)(fr,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&am(o),maxSelectedValues:1,onChange:r})}function am(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function nm(e){if(e.length!==0)return{coding:e.map(o=>({system:o.system,code:o.code,display:o.display}))}}var qi=require("react");var Gi=require("react/jsx-runtime");function aa(e){let[o,t]=(0,qi.useState)(e.defaultValue);function r(a){let n=a[0],l=n&&fm(n);t(l),e.onChange&&e.onChange(l)}return(0,Gi.jsx)(fr,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&lm(o),maxSelectedValues:1,onChange:r})}function lm(e){return{system:e.system,code:e.code,display:e.display}}function fm(e){return{system:e.system,code:e.code,display:e.display}}var yn=require("@mantine/core"),vn=require("react");var Vt=require("@mantine/core"),dt=require("react");var xr=require("react/jsx-runtime");function na(e){let{path:o,outcome:t}=e,{getModifiedNestedElement:r}=(0,dt.useContext)(uo),[a,n]=(0,dt.useState)(e.defaultValue),l=(0,dt.useRef)();l.current=a;let[f,s,i]=(0,dt.useMemo)(()=>["system","use","value"].map(x=>r(o+"."+x)),[r,o]);function u(x){x&&Object.keys(x).length===0&&(x=void 0),n(x),e.onChange&&e.onChange(x)}function c(x){let p={...l.current,system:x};x||delete p.system,u(p)}function d(x){let p={...l.current,use:x};x||delete p.use,u(p)}function m(x){let p={...l.current,value:x};x||delete p.value,u(p)}return(0,xr.jsxs)(Vt.Group,{spacing:"xs",grow:!0,noWrap:!0,align:"flex-start",children:[(0,xr.jsx)(Vt.NativeSelect,{"data-testid":"system",defaultValue:a?.system,required:(f?.min??0)>0,onChange:x=>c(x.currentTarget.value),data:["","email","phone","fax","pager","sms","other"],error:$(t,o+".system")}),(0,xr.jsx)(Vt.NativeSelect,{"data-testid":"use",defaultValue:a?.use,required:(s?.min??0)>0,onChange:x=>d(x.currentTarget.value),data:["","home","work","temp","old","mobile"],error:$(t,o+".use")}),(0,xr.jsx)(Vt.TextInput,{placeholder:"Value",defaultValue:a?.value,required:(i?.min??0)>0,onChange:x=>m(x.currentTarget.value),error:$(t,o+".value")})]})}var la=require("react/jsx-runtime");function hf(e){let[o,t]=(0,vn.useState)(e.defaultValue),r=(0,vn.useRef)();r.current=o;function a(f){t(f),e.onChange&&e.onChange(f)}function n(f){let s={...r.current,name:f};f||delete s.name,a(s)}function l(f){let s={...r.current,telecom:f&&[f]};f||delete s.telecom,a(s)}return(0,la.jsxs)(yn.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,la.jsx)(yn.TextInput,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:o?.name,onChange:f=>n(f.currentTarget.value)}),(0,la.jsx)(na,{name:e.name+"-telecom",path:e.path+".telecom",defaultValue:o?.telecom?.[0],onChange:l,outcome:e.outcome})]})}var Ui=require("@mantine/core");var yf=require("@medplum/core");function vf(e){if(!e)return"";let o=new Date(e);return(0,yf.isValidDate)(o)?o.toLocaleDateString("sv")+"T"+o.toLocaleTimeString("sv"):""}function Sf(e){if(!e)return"";let o=new Date(e);return(0,yf.isValidDate)(o)?o.toISOString():""}var Qi=require("react/jsx-runtime");function ao(e){return(0,Qi.jsx)(Ui.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:sm(),defaultValue:vf(e.defaultValue),autoFocus:e.autoFocus,error:$(e.outcome,e.name),onChange:o=>{if(e.onChange){let t=o.currentTarget.value;e.onChange(Sf(t))}}})}function sm(){return"datetime-local"}var zi=require("@mantine/core"),Sn=require("@medplum/core");var Ht=require("react");var qt=require("react/jsx-runtime");function Wi(e){let{propertyType:o}=e,t=P(),[r,a]=(0,Ht.useState)(!1),[n,l]=(0,Ht.useState)(),f=(0,Ht.useMemo)(()=>{if(!(!o.profile||o.profile.length===0))return o.profile[0]},[o]);(0,Ht.useEffect)(()=>{f&&(a(!0),t.requestProfileSchema(f).then(()=>{let i=(0,Sn.tryGetProfile)(f);a(!1),l(i)}).catch(i=>{a(!1),console.warn(i)}))},[t,f]);function s(i){e.onChange&&(console.log("Extension",i),e.onChange(i))}return f?r?(0,qt.jsxs)("div",{children:["Loading ",f,"..."]}):n?(0,qt.jsx)(Gt,{profileUrl:f,typeName:n.name,defaultValue:e.defaultValue,onChange:s}):(0,qt.jsxs)("div",{children:["StructureDefinition for ",f," not found"]}):(0,qt.jsx)(im,{...e})}function im(e){return(0,qt.jsx)(zi.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-json-input",defaultValue:(0,Sn.stringify)(e.defaultValue),deserialize:JSON.parse,onChange:o=>{e.onChange&&e.onChange(JSON.parse(o))}})}var qo=require("@mantine/core"),Xi=require("react");var mt=require("react/jsx-runtime");function Cf(e){let{outcome:o,path:t}=e,[r,a]=(0,Xi.useState)(e.defaultValue);function n(c){a(c),e.onChange&&e.onChange(c)}function l(c){n({...r,use:c||void 0})}function f(c){n({...r,prefix:c?c.split(" "):void 0})}function s(c){n({...r,given:c?c.split(" "):void 0})}function i(c){n({...r,family:c||void 0})}function u(c){n({...r,suffix:c?c.split(" "):void 0})}return(0,mt.jsxs)(qo.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,mt.jsx)(qo.NativeSelect,{defaultValue:r?.use,name:e.name+"-use","data-testid":"use",onChange:c=>l(c.currentTarget.value),data:["","temp","old","usual","official","nickname","anonymous","maiden"],error:$(o,t+".use")}),(0,mt.jsx)(qo.TextInput,{placeholder:"Prefix",name:e.name+"-prefix",defaultValue:r?.prefix?.join(" "),onChange:c=>f(c.currentTarget.value),error:$(o,t+".prefix")}),(0,mt.jsx)(qo.TextInput,{placeholder:"Given",name:e.name+"-given",defaultValue:r?.given?.join(" "),onChange:c=>s(c.currentTarget.value),error:$(o,t+".given")}),(0,mt.jsx)(qo.TextInput,{name:e.name+"-family",placeholder:"Family",defaultValue:r?.family,onChange:c=>i(c.currentTarget.value),error:$(o,t+".family")}),(0,mt.jsx)(qo.TextInput,{placeholder:"Suffix",name:e.name+"-suffix",defaultValue:r?.suffix?.join(" "),onChange:c=>u(c.currentTarget.value),error:$(o,t+".suffix")})]})}var fa=require("@mantine/core"),Ir=require("react");var sa=require("react/jsx-runtime");function bf(e){let{path:o,outcome:t}=e,[r,a]=(0,Ir.useState)(e.defaultValue),{getModifiedNestedElement:n}=(0,Ir.useContext)(uo),[l,f]=(0,Ir.useMemo)(()=>["system","value"].map(i=>n(o+"."+i)),[n,o]);function s(i){a(i),e.onChange&&e.onChange(i)}return(0,sa.jsxs)(fa.Group,{spacing:"xs",grow:!0,noWrap:!0,align:"flex-start",children:[(0,sa.jsx)(fa.TextInput,{placeholder:"System",required:(l?.min??0)>0,defaultValue:r?.system,onChange:i=>s({...r,system:i.currentTarget.value}),error:$(t,o+".system")}),(0,sa.jsx)(fa.TextInput,{placeholder:"Value",required:(f?.min??0)>0,defaultValue:r?.value,onChange:i=>s({...r,value:i.currentTarget.value}),error:$(t,o+".value")})]})}var bn=require("@mantine/core");var gr=require("react"),Cn=require("react/jsx-runtime"),um=["USD","EUR","CAD","GBP","AUD"];function Rf(e){let{onChange:o}=e,[t,r]=(0,gr.useState)(e.defaultValue),a=(0,gr.useCallback)(s=>{r(s),o&&o(s)},[o]),n=(0,gr.useCallback)(s=>{a({...t,currency:s.currentTarget.value})},[t,a]),l=(0,gr.useCallback)(s=>{a({...t,value:s.currentTarget.valueAsNumber})},[t,a]),f=(0,Cn.jsx)(bn.NativeSelect,{defaultValue:t?.currency,data:um,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:n});return(0,Cn.jsx)(bn.TextInput,{type:"number",label:e.label,placeholder:e.placeholder??"Value",defaultValue:t?.value?.toString()??"USD",icon:(0,Cn.jsx)(wl,{size:14}),rightSection:f,rightSectionWidth:92,onChange:l})}var Ji=require("@mantine/core"),$i=require("react");var ia=require("react/jsx-runtime");function _i(e){let[o,t]=(0,$i.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return(0,ia.jsxs)(Ji.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,ia.jsx)(ao,{name:e.name+".start",placeholder:"Start",defaultValue:o?.start,onChange:a=>r({...o,start:a})}),(0,ia.jsx)(ao,{name:e.name+".end",placeholder:"End",defaultValue:o?.end,onChange:a=>r({...o,end:a})})]})}var Ut=require("@mantine/core"),Ki=require("react"),hr=require("react/jsx-runtime");function We(e){let[o,t]=(0,Ki.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return(0,hr.jsxs)(Ut.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,hr.jsx)(Ut.NativeSelect,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:o?.comparator,data:["","<","<=",">=",">"],onChange:a=>r({...o,comparator:a.currentTarget.value})}),(0,hr.jsx)(Ut.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:cm(a.currentTarget.value)})}}),(0,hr.jsx)(Ut.TextInput,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:o?.unit,onChange:a=>r({...o,unit:a.currentTarget.value})})]})}function cm(e){if(e)return parseFloat(e)}var Zi=require("@mantine/core"),Yi=require("react");var ua=require("react/jsx-runtime");function yr(e){let[o,t]=(0,Yi.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return(0,ua.jsxs)(Zi.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,ua.jsx)(We,{name:e.name+"-low",defaultValue:o?.low,onChange:a=>r({...o,low:a})}),(0,ua.jsx)(We,{name:e.name+"-high",defaultValue:o?.high,onChange:a=>r({...o,high:a})})]})}var ji=require("@mantine/core"),eu=require("react");var ca=require("react/jsx-runtime");function ou(e){let[o,t]=(0,eu.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return(0,ca.jsxs)(ji.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,ca.jsx)(We,{name:e.name+"-numerator",defaultValue:o?.numerator,onChange:a=>r({...o,numerator:a})}),(0,ca.jsx)(We,{name:e.name+"-denominator",defaultValue:o?.denominator,onChange:a=>r({...o,denominator:a})})]})}var Rn=require("@mantine/core"),tu=require("@medplum/core"),Pf=require("react");var da=require("@mantine/core"),ma=require("@medplum/core");var Qt=require("react");var Go=require("react/jsx-runtime"),dm={Observation:"code",User:"email:contains"},mm=["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 pm(e){return{value:(0,ma.getReferenceString)(e),label:(0,ma.getDisplayString)(e),resource:e}}function pa(e){let o=P(),{resourceType:t,searchCriteria:r}=e,[a,n]=(0,Qt.useState)(),l=Z(e.defaultValue,n),f=e.onChange,s=(0,Qt.useCallback)(async(u,c)=>{let d=Im(t),m=new URLSearchParams({[d]:u,_count:"10",...r});return await o.searchResources(t,m,{signal:c})},[o,t,r]),i=(0,Qt.useCallback)(u=>{f&&f(u[0])},[f]);return e.defaultValue&&!a&&!l?null:(0,Go.jsx)(Ft,{name:e.name,required:e.required,itemComponent:xm,defaultValue:l,placeholder:e.placeholder,maxSelectedValues:1,toKey:ma.getReferenceString,toOption:pm,loadOptions:s,onChange:i,clearable:!0})}var xm=(0,Qt.forwardRef)(({label:e,resource:o,...t},r)=>(0,Go.jsx)("div",{ref:r,...t,children:(0,Go.jsxs)(da.Group,{noWrap:!0,children:[(0,Go.jsx)(Fe,{value:o}),(0,Go.jsxs)("div",{children:[(0,Go.jsx)(da.Text,{children:e}),(0,Go.jsx)(da.Text,{size:"xs",color:"dimmed",children:o.birthDate})]})]})}));function Im(e){return dm[e]??(mm.includes(e)?"name":"_id")}var vr=require("react/jsx-runtime");function zt(e){let o=gm(e.targetTypes),t=hm(e.defaultValue,o),[r,a]=(0,Pf.useState)(e.defaultValue),[n,l]=(0,Pf.useState)(t);function f(s){a(s),e.onChange&&e.onChange(s)}return(0,vr.jsxs)(Rn.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[o&&o.length>1&&(0,vr.jsx)(Rn.NativeSelect,{"data-autofocus":e.autoFocus,"data-testid":"reference-input-resource-type-select",defaultValue:n,autoFocus:e.autoFocus,onChange:s=>l(s.currentTarget.value),data:o}),!o&&(0,vr.jsx)(sr,{autoFocus:e.autoFocus,testId:"reference-input-resource-type-input",defaultValue:n,onChange:l,name:e.name+"-resourceType",placeholder:"Resource Type"}),(0,vr.jsx)(pa,{resourceType:n,name:e.name+"-id",required:e.required,placeholder:e.placeholder,defaultValue:r,searchCriteria:e.searchCriteria,onChange:s=>{f(s?(0,tu.createReference)(s):void 0)}})]})}function gm(e){if(!(!e||e.length===0||e.length===1&&e[0]==="Resource"))return e}function hm(e,o){let t=e?.reference?.split("/")[0];if(t)return t;if(o&&o.length>0)return o[0]}var pt=require("@mantine/core"),Ee=require("@medplum/core");var Wt=require("react");var Uo=require("@mantine/core"),Pn=require("@medplum/core");var ru=require("react");var Oe=require("react/jsx-runtime");function au(e){let{slice:o,property:t}=e,[r,a]=(0,ru.useState)(()=>e.defaultValue.map(s=>s??{}));function n(s){a(s),e.onChange&&e.onChange(s)}let l=o.min>0,f=Object.keys(o.elements).length>0?void 0:{marginTop:"1rem",marginLeft:"1rem"};return(0,Oe.jsx)(we,{title:(0,Pn.getPropertyDisplayName)(o.name),description:o.definition,withAsterisk:l,fhirPath:`${t.path}:${o.name}`,testId:e.testId,children:(0,Oe.jsxs)(Uo.Stack,{style:f,children:[r.map((s,i)=>(0,Oe.jsxs)(Uo.Group,{noWrap:!0,children:[(0,Oe.jsx)("div",{style:{flexGrow:1},children:(0,Oe.jsx)(Uo.Stack,{children:(0,Pn.isEmpty)(o.elements)?(0,Oe.jsx)(xa,{elementDefinitionType:o.type[0],name:o.name,defaultValue:s,onChange:u=>{let c=[...r];c[i]=u,n(c)},outcome:void 0,min:o.min,max:o.max,binding:void 0,path:o.path}):(0,Oe.jsx)(Tn,{type:o.type[0].code,elements:o.elements,defaultValue:s,outcome:e.outcome,onChange:u=>{let c=[...r];c[i]=u,n(c)},testId:e.testId&&`${e.testId}-elements-${i}`})})}),r.length>o.min&&(0,Oe.jsx)("div",{children:(0,Oe.jsx)(Uo.ActionIcon,{title:"Remove",size:"sm","data-testid":e.testId&&`${e.testId}-remove-${i}`,onClick:u=>{N(u);let c=[...r];c.splice(i,1),n(c)},children:(0,Oe.jsx)(vo,{})})})]},`${i}-${r.length}`)),r.length<o.max&&(0,Oe.jsx)(Uo.Group,{noWrap:!0,style:{justifyContent:"flex-end"},children:(0,Oe.jsx)("div",{children:(0,Oe.jsx)(Uo.ActionIcon,{title:"Add",size:"sm",color:"green","data-testid":e.testId&&`${e.testId}-add`,onClick:s=>{N(s);let i=[...r,void 0];n(i)},children:(0,Oe.jsx)(nt,{})})})})]})})}function nu(e){return e.type!==void 0&&e.type.length>0}var Le=require("react/jsx-runtime");function ym(e,o,t){if(e)for(let r of o){let a;if(r.typeSchema?a={type:r.typeSchema.name,value:e}:a={type:r.type[0].code,value:e},t.every(n=>{let l,f=r.elements;if(!(0,Ee.isEmpty)(r.elements)){let s=(0,Ee.getElementDefinitionFromElements)(r.elements,n.path);s&&(l=(0,Ee.getTypedPropertyValueWithSchema)(a.value,n.path,s))}if(!l&&r.typeSchema&&!(0,Ee.isEmpty)(r.typeSchema?.elements)){f=r.typeSchema.elements;let s=(0,Ee.getElementDefinitionFromElements)(r.typeSchema.elements,n.path);s&&(l=(0,Ee.getTypedPropertyValueWithSchema)(a.value,n.path,s))}if(l)return(0,Ee.arrayify)(l)?.some(s=>(0,Ee.matchDiscriminant)(s,n,r,f))}))return r.name}}function lu(e,o,t){if(!t||t.slices.length===0)return[e];let r=new Array(o.length+1);for(let a=0;a<r.length;a++)r[a]=[];for(let a of e){let n=ym(a,o,t.discriminator),l=n?o.findIndex(f=>f.name===n):-1;l===-1&&(l=o.length),r[l].push(a)}for(let a=0;a<o.length;a++)r[a].length===0&&r[a].push(void 0);return r}function Tf(e){let{property:o}=e,t=P(),[r,a]=(0,Wt.useState)(!0),[n,l]=(0,Wt.useState)([]),[f]=(0,Wt.useState)(()=>Array.isArray(e.defaultValue)?e.defaultValue:[]),[s,i]=(0,Wt.useState)([[]]),u=o.type[0]?.code;(0,Wt.useEffect)(()=>{if(!o.slicing){let v=[];l(v);let R=lu(f,v,o.slicing);i(R),a(!1);return}let p=[],y=[],C=[];for(let v of o.slicing.slices){if(!nu(v))continue;let R=v.type[0],V;(0,Ee.isEmpty)(v.elements)&&R.profile&&(V=R.profile[0]),p.push(v),y.push(V),V?C.push(t.requestProfileSchema(V)):C.push(Promise.resolve())}Promise.all(C).then(()=>{for(let R=0;R<p.length;R++){let V=p[R],b=y[R];if(b){let O=(0,Ee.tryGetProfile)(b);V.typeSchema=O}}l(p);let v=lu(f,p,o.slicing);i(v),a(!1)}).catch(v=>{console.error(v),a(!1)})},[t,o.slicing,u,f]);function c(p,y){let C=[...s];if(C[y]=p,i(C),e.onChange){let v=C.flat().filter(R=>R!==void 0);e.onChange(v)}}if(r)return(0,Le.jsx)("div",{children:"Loading..."});let d=n.length,m=s[d],x=!(e.hideNonSliceValues??(u==="Extension"&&n.length>0));return(0,Le.jsxs)(pt.Stack,{style:e.indent?{marginTop:"1rem",marginLeft:"1rem"}:void 0,children:[n.map((p,y)=>(0,Le.jsx)(au,{slice:p,property:o,defaultValue:s[y],onChange:C=>{c(C,y)},testId:`slice-${p.name}`},p.name)),x&&m.map((p,y)=>(0,Le.jsxs)(pt.Group,{noWrap:!0,style:{flexGrow:1},children:[(0,Le.jsx)("div",{style:{flexGrow:1},children:(0,Le.jsx)(Qo,{arrayElement:!0,property:e.property,name:e.name+"."+y,defaultValue:p,onChange:C=>{let v=[...m];v[y]=C,c(v,d)},defaultPropertyType:void 0,outcome:e.outcome})}),(0,Le.jsx)("div",{children:(0,Le.jsx)(pt.ActionIcon,{title:"Remove",size:"sm","data-testid":`nonsliced-remove-${y}`,onClick:C=>{N(C);let v=[...m];v.splice(y,1),c(v,d)},children:(0,Le.jsx)(vo,{})})})]},`${y}-${m.length}`)),x&&s.flat().length<o.max&&(0,Le.jsx)(pt.Group,{noWrap:!0,style:{justifyContent:"flex-end"},children:(0,Le.jsx)("div",{children:(0,Le.jsx)(pt.ActionIcon,{title:"Add",size:"sm",color:"green","data-testid":"nonsliced-add",onClick:p=>{N(p);let y=[...m];y.push(void 0),c(y,d)},children:(0,Le.jsx)(nt,{})})})})]})}var xe=require("@mantine/core"),su=require("@medplum/core"),Xt=require("react");var re=require("react/jsx-runtime"),vm=["sun","mon","tue","wed","thu","fri","sat"];function Df(e){let[o,t]=(0,Xt.useState)(e.defaultValue),[r,a]=(0,Xt.useState)(!1),n=(0,Xt.useRef)();return n.current=o,(0,re.jsxs)(re.Fragment,{children:[(0,re.jsxs)(xe.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,re.jsx)("span",{children:(0,su.formatTiming)(n.current)||"No repeat"}),(0,re.jsx)(xe.Button,{onClick:()=>a(!0),children:"Edit"})]}),(0,re.jsx)(Sm,{visible:r,defaultValue:n.current,onOk:l=>{e.onChange&&e.onChange(l),t(l),a(!1)},onCancel:()=>a(!1)})]})}var fu={repeat:{period:1,periodUnit:"d"}};function Sm(e){let[o,t]=(0,Xt.useState)(e.defaultValue||fu),r=(0,Xt.useRef)();r.current=o;function a(i){t({...r.current,event:[i]})}function n(i){t({...r.current,repeat:i})}function l(i){n({...r.current?.repeat,period:i})}function f(i){n({...r.current?.repeat,periodUnit:i})}function s(i){n({...r.current?.repeat,dayOfWeek:i})}return(0,re.jsx)(xe.Modal,{title:"Timing",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>e.onCancel(),children:(0,re.jsxs)(xe.Stack,{children:[(0,re.jsx)(we,{title:"Starts on",htmlFor:"timing-dialog-start",children:(0,re.jsx)(ao,{name:"timing-dialog-start",onChange:i=>a(i)})}),(0,re.jsx)(xe.Switch,{label:"Repeat",checked:!!o.repeat,onChange:i=>n(i.currentTarget.checked?fu.repeat:void 0)}),o.repeat&&(0,re.jsxs)(re.Fragment,{children:[(0,re.jsx)(we,{title:"Repeat every",htmlFor:"timing-dialog-period",children:(0,re.jsxs)(xe.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,re.jsx)(xe.TextInput,{type:"number",step:1,id:"timing-dialog-period",name:"timing-dialog-period",defaultValue:o.repeat.period||1,onChange:i=>l(parseInt(i.currentTarget.value,10)||1)}),(0,re.jsx)(xe.NativeSelect,{id:"timing-dialog-periodUnit",name:"timing-dialog-periodUnit",defaultValue:o.repeat.periodUnit,onChange:i=>f(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"&&(0,re.jsx)(we,{title:"Repeat on",children:(0,re.jsx)(xe.Chip.Group,{multiple:!0,onChange:s,children:(0,re.jsx)(xe.Group,{position:"apart",mt:"md",spacing:"xs",children:vm.map(i=>(0,re.jsx)(xe.Chip,{value:i,size:"xs",radius:"xl",children:i.charAt(0).toUpperCase()},i))})})})]}),(0,re.jsx)(xe.Group,{position:"right",children:(0,re.jsx)(xe.Button,{onClick:()=>e.onOk(o),children:"OK"})})]})})}var G=require("react/jsx-runtime");function Qo(e){let{property:o,name:t,defaultValue:r,onChange:a}=e,n=e.defaultPropertyType&&e.defaultPropertyType!=="undefined"?e.defaultPropertyType:o.type[0].code,l=o.type;if(o.max>1&&!e.arrayElement){if(n===w.PropertyType.Attachment)return(0,G.jsx)(ff,{name:t,defaultValue:r,onChange:a});let f=l[0]?.code!==w.PropertyType.Extension;return(0,G.jsx)(Tf,{property:o,name:t,defaultValue:r,indent:f,onChange:a,outcome:e.outcome})}return l.length>1?(0,G.jsx)(uu,{elementDefinitionTypes:l,...e}):(0,G.jsx)(xa,{name:t,defaultValue:r,onChange:f=>{if(e.onChange){let s=e.name.replace("[x]",(0,w.capitalize)(l[0].code));e.onChange(f,s)}},outcome:e.outcome,elementDefinitionType:l[0],min:o.min,max:o.min,binding:o.binding,path:o.path})}function uu(e){let o=e.elementDefinitionTypes,t;e.defaultPropertyType&&(t=o.find(n=>n.code===e.defaultPropertyType)),t||(t=o[0]);let[r,a]=(0,iu.useState)(t);return(0,G.jsxs)(no.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,G.jsx)(no.NativeSelect,{style:{width:"200px"},defaultValue:r.code,onChange:n=>{a(o.find(l=>l.code===n.currentTarget.value))},data:o.map(n=>({value:n.code,label:n.code}))}),(0,G.jsx)(xa,{name:e.name,defaultValue:e.defaultValue,outcome:e.outcome,elementDefinitionType:r,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",(0,w.capitalize)(r.code)))},min:e.property.min,max:e.property.max,binding:e.property.binding,path:e.property.path})]})}function xa(e){let{name:o,defaultValue:t,onChange:r,outcome:a,binding:n,path:l}=e,f=e.min!==void 0&&e.min>0,s=e.elementDefinitionType.code;if(!s)return(0,G.jsx)("div",{children:"Property type not specified "});let i={name:o,defaultValue:t,onChange:r,outcome:a,path:l};switch(s){case w.PropertyType.SystemString:case w.PropertyType.canonical:case w.PropertyType.string:case w.PropertyType.time:case w.PropertyType.uri:case w.PropertyType.url:return(0,G.jsx)(no.TextInput,{id:o,name:o,"data-testid":o,defaultValue:t,required:f,onChange:u=>{r&&r(u.currentTarget.value)},error:$(a,o)});case w.PropertyType.date:return(0,G.jsx)(no.TextInput,{type:"date",id:o,name:o,"data-testid":o,defaultValue:t,required:f,onChange:u=>{r&&r(u.currentTarget.value)},error:$(a,o)});case w.PropertyType.dateTime:case w.PropertyType.instant:return(0,G.jsx)(ao,{name:o,defaultValue:t,onChange:r,outcome:a});case w.PropertyType.decimal:case w.PropertyType.integer:case w.PropertyType.positiveInt:case w.PropertyType.unsignedInt:return(0,G.jsx)(no.TextInput,{type:"number",step:s===w.PropertyType.decimal?"any":"1",id:o,name:o,"data-testid":o,defaultValue:t,required:f,onChange:u=>{r&&r(u.currentTarget.valueAsNumber)}});case w.PropertyType.code:return(0,G.jsx)(Kr,{...i,binding:n?.valueSet});case w.PropertyType.boolean:return(0,G.jsx)(no.Checkbox,{id:o,name:o,"data-testid":o,defaultChecked:!!t,onChange:u=>{r&&r(u.currentTarget.checked)}});case w.PropertyType.markdown:return(0,G.jsx)(no.Textarea,{id:o,name:o,"data-testid":o,defaultValue:t,required:f,onChange:u=>{r&&r(u.currentTarget.value)}});case w.PropertyType.Address:return(0,G.jsx)(hl,{...i});case w.PropertyType.Annotation:return(0,G.jsx)(yl,{...i});case w.PropertyType.Attachment:return(0,G.jsx)(Zr,{...i});case w.PropertyType.CodeableConcept:return(0,G.jsx)(gf,{binding:n?.valueSet,...i});case w.PropertyType.Coding:return(0,G.jsx)(aa,{binding:n?.valueSet,...i});case w.PropertyType.ContactDetail:return(0,G.jsx)(hf,{...i});case w.PropertyType.ContactPoint:return(0,G.jsx)(na,{...i});case w.PropertyType.Extension:return(0,G.jsx)(Wi,{...i,propertyType:e.elementDefinitionType});case w.PropertyType.HumanName:return(0,G.jsx)(Cf,{...i});case w.PropertyType.Identifier:return(0,G.jsx)(bf,{...i});case w.PropertyType.Money:return(0,G.jsx)(Rf,{...i});case w.PropertyType.Period:return(0,G.jsx)(_i,{...i});case w.PropertyType.Duration:case w.PropertyType.Quantity:return(0,G.jsx)(We,{...i});case w.PropertyType.Range:return(0,G.jsx)(yr,{...i});case w.PropertyType.Ratio:return(0,G.jsx)(ou,{...i});case w.PropertyType.Reference:return(0,G.jsx)(zt,{...i,targetTypes:Cm(e.elementDefinitionType)});case w.PropertyType.Timing:return(0,G.jsx)(Df,{...i});case w.PropertyType.Dosage:case w.PropertyType.UsageContext:default:return(0,G.jsx)(Gt,{typeName:s,defaultValue:t,onChange:r,outcome:a})}}function Cm(e){return e?.targetProfile?.map(o=>o.split("/").pop())}var Ia=require("react/jsx-runtime"),cu=["extension","modifierExtension"];function Tn(e){let{elements:o}=e,[t,r]=(0,Dn.useState)(e.defaultValue??{}),a=(0,Dn.useMemo)(()=>{let l=Object.create(null);for(let[f,s]of Object.entries(o))s.fixed&&(l[f]=s);return l},[o]);function n(l){for(let[f,s]of Object.entries(a))pr(l,f,f,s,s.fixed.value);r(l),e.onChange&&e.onChange(l)}return(0,Ia.jsx)(du.Stack,{style:{flexGrow:1},"data-testid":e.testId,children:Object.entries(o).map(([l,f])=>{if(!f.type||f.max===0||l==="url"&&f.fixed)return null;if(cu.includes(l)){if(!f.slicing||f.slicing.slices.length===0)return null}else{if(l==="id"||fn.includes(l))return null;if(sn.includes(l)&&f.path.split(".").length===2)return null}if(l.includes("."))return null;let[s,i]=Ai(t,l,f),u=f.min!==void 0&&f.min>0,c=(0,Ia.jsx)(Qo,{property:f,name:l,defaultValue:s,defaultPropertyType:i,onChange:(d,m)=>{n(pr({...t},l,m??l,f,d))},arrayElement:void 0,outcome:e.outcome},l);return e.type==="Extension"||cu.includes(l)?c:f.type.length===1&&f.type[0].code==="boolean"?(0,Ia.jsx)(oa,{title:(0,kf.getPathDisplayName)(l),description:f.description,htmlFor:l,fhirPath:f.path,withAsterisk:u,children:c},l):(0,Ia.jsx)(we,{title:(0,kf.getPathDisplayName)(l),description:f.description,withAsterisk:u,htmlFor:l,outcome:e.outcome,fhirPath:f.path,children:c},l)})})}var ga=require("react/jsx-runtime");function Gt(e){let{typeName:o}=e,[t,r]=(0,Jt.useState)(e.defaultValue??{}),a=(0,Jt.useContext)(uo),n=e.profileUrl??a.profileUrl,l=(0,Jt.useMemo)(()=>(0,mu.tryGetDataType)(o,n),[o,n]),f=(0,Jt.useMemo)(()=>Fi(l,n),[l,n]);if(!l)return(0,ga.jsxs)("div",{children:[o,"\xA0not implemented"]});function s(i){r(i),e.onChange&&e.onChange(i)}return(0,ga.jsx)(uo.Provider,{value:f,children:(0,ga.jsx)(Tn,{type:l.type,elements:l.elements,defaultValue:t,onChange:s,outcome:e.outcome})})}var zo=require("@mantine/core"),Bn=require("react");function pu(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function kn(){let e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}var me=require("react/jsx-runtime"),bm=(0,zo.createStyles)(e=>({table:{width:350,"& th":{fontWeight:"normal",fontSize:11,padding:8,textAlign:"center"},"& td":{padding:"2px 4px"},"& td button":{width:44,height:44,color:e.colors[e.primaryColor][5],fontSize:16,fontWeight:500,textAlign:"center",padding:0,backgroundColor:e.colors[e.primaryColor][0],border:0,borderRadius:"50%",cursor:"pointer"},"& td button:hover":{backgroundColor:e.colors[e.primaryColor][1]},"& td button:disabled":{backgroundColor:"transparent",cursor:"default",color:e.colors.gray[4],fontWeight:"normal"}}}));function Bf(e){let{classes:o}=bm(),{onChangeMonth:t,onClick:r}=e,[a,n]=(0,Bn.useState)(kn);function l(s){n(i=>{let u=new Date(i.getTime());return u.setMonth(i.getMonth()+s),t(u),u})}let f=(0,Bn.useMemo)(()=>Rm(a,e.slots),[a,e.slots]);return(0,me.jsxs)("div",{children:[(0,me.jsxs)(zo.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0,children:[(0,me.jsx)("p",{style:{flex:1},children:pu(a)}),(0,me.jsxs)(zo.Group,{position:"right",spacing:"xs",children:[(0,me.jsx)(zo.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>l(-1),children:"<"}),(0,me.jsx)(zo.Button,{variant:"outline","aria-label":"Next month",onClick:()=>l(1),children:">"})]})]}),(0,me.jsxs)("table",{className:o.table,children:[(0,me.jsx)("thead",{children:(0,me.jsxs)("tr",{children:[(0,me.jsx)("th",{children:"SUN"}),(0,me.jsx)("th",{children:"MON"}),(0,me.jsx)("th",{children:"TUE"}),(0,me.jsx)("th",{children:"WED"}),(0,me.jsx)("th",{children:"THU"}),(0,me.jsx)("th",{children:"FRI"}),(0,me.jsx)("th",{children:"SAT"})]})}),(0,me.jsx)("tbody",{children:f.map((s,i)=>(0,me.jsx)("tr",{children:s.map((u,c)=>(0,me.jsx)("td",{children:u&&(0,me.jsx)(zo.Button,{disabled:!u.available,onClick:()=>r(u.date),children:u.date.getDate()})},"day-"+c))},"week-"+i))})]})]})}function Rm(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:Pm(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 Pm(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 An=require("@mantine/core"),xu=require("react/jsx-runtime"),Tm=(0,An.createStyles)(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function Wo(e){let{children:o,...t}=e,{classes:r}=Tm();return(0,xu.jsx)(An.Container,{className:r.root,...t,children:o})}var le=require("@mantine/core"),_t=require("@mantine/notifications"),Ko=require("@medplum/core");var Xe=require("react");var Y=require("@mantine/core"),lo=require("@medplum/core");var Mn=require("react");var Sr=require("@mantine/core"),Af=require("react/jsx-runtime"),Dm=(0,Sr.createStyles)(e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));function Mf({value:e}){let{classes:o}=Dm();return e?(0,Af.jsx)(Sr.Stack,{justify:"flex-start",spacing:"xs",children:e.map(t=>t.text&&(0,Af.jsx)(Sr.Blockquote,{classNames:{cite:o.noteCite,body:o.noteBody,root:o.noteRoot},cite:t.authorReference?.display||t.authorString,icon:null,children:t.text},`note-${t.text}`))}):null}var hu=require("@mantine/core");var Iu=require("@mantine/core"),Cr=require("@medplum/core");var gu=require("react");var Ff=require("react/jsx-runtime");function co(e){let{value:o,link:t,...r}=e,[a,n]=(0,gu.useState)(),l=Z(o,n),f;if(a&&!(0,Cr.isOk)(a))f=`[${(0,Cr.normalizeErrorString)(a)}]`;else if(l)f=(0,Cr.getDisplayString)(l);else return null;return t?(0,Ff.jsx)(Pe,{to:o,...r,children:f}):(0,Ff.jsx)(Iu.Text,{component:"span",...r,children:f})}var ha=require("react/jsx-runtime");function Xo(e){return(0,ha.jsxs)(hu.Group,{spacing:"xs",children:[(0,ha.jsx)(Fe,{size:24,radius:12,value:e.value,link:e.link}),(0,ha.jsx)(co,{value:e.value,link:e.link})]})}var yu=require("@mantine/core"),vu=require("react/jsx-runtime"),km={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 ya(e){return(0,vu.jsx)(yu.Badge,{color:km[e.status],children:e.status})}var h=require("react/jsx-runtime"),Su=(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}}));Fn.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};function Fn(e){let o=P(),t=Z(e.value),[r,a]=(0,Mn.useState)();if((0,Mn.useEffect)(()=>{t?.specimen&&Promise.allSettled(t.specimen.map(l=>o.readReference(l))).then(l=>l.filter(f=>f.status==="fulfilled").map(f=>f.value)).then(a).catch(console.error)},[o,t]),!t)return null;let n=r?.flatMap(l=>l.note||[])||[];if(t.presentedForm&&t.presentedForm.length>0){let l=t.presentedForm[0];l.contentType?.startsWith("text/plain")&&l.data&&n.push({text:window.atob(l.data)})}return(0,h.jsxs)(Y.Stack,{children:[(0,h.jsx)(Y.Title,{children:"Diagnostic Report"}),(0,h.jsx)(Bm,{value:t}),r&&!e.hideSpecimenInfo&&Am(r),t.result&&(0,h.jsx)(Cu,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&(0,h.jsx)(Mf,{value:n})]})}function Bm({value:e}){return(0,h.jsxs)(Y.Group,{mt:"md",spacing:30,children:[e.subject&&(0,h.jsxs)("div",{children:[(0,h.jsx)(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed",children:"Subject"}),(0,h.jsx)(Y.Text,{children:(0,h.jsx)(Xo,{value:e.subject,link:!0})})]}),e.resultsInterpreter?.map(o=>(0,h.jsxs)("div",{children:[(0,h.jsx)(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed",children:"Interpreter"}),(0,h.jsx)(Y.Text,{children:(0,h.jsx)(Xo,{value:o,link:!0})})]},o.reference)),e.performer?.map(o=>(0,h.jsxs)("div",{children:[(0,h.jsx)(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed",children:"Performer"}),(0,h.jsx)(Y.Text,{children:(0,h.jsx)(Xo,{value:o,link:!0})})]},o.reference)),e.issued&&(0,h.jsxs)("div",{children:[(0,h.jsx)(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed",children:"Issued"}),(0,h.jsx)(Y.Text,{children:(0,lo.formatDateTime)(e.issued)})]}),e.status&&(0,h.jsxs)("div",{children:[(0,h.jsx)(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed",children:"Status"}),(0,h.jsx)(Y.Text,{children:(0,lo.capitalize)(e.status)})]})]})}function Am(e){return(0,h.jsxs)(Y.Stack,{spacing:"xs",children:[(0,h.jsx)(Y.Title,{order:2,size:"h6",children:"Specimens"}),(0,h.jsx)(Y.List,{type:"ordered",children:e?.map(o=>(0,h.jsx)(Y.List.Item,{ml:"sm",children:(0,h.jsxs)(Y.Group,{spacing:20,children:[(0,h.jsxs)(Y.Group,{spacing:5,children:[(0,h.jsx)(Y.Text,{fw:500,children:"Collected:"})," ",(0,lo.formatDateTime)(o.collection?.collectedDateTime)]}),(0,h.jsxs)(Y.Group,{spacing:5,children:[(0,h.jsx)(Y.Text,{fw:500,children:"Received:"})," ",(0,lo.formatDateTime)(o.receivedTime)]})]})},`specimen-${o.id}`))})]})}function Cu(e){let{classes:o}=Su();return(0,h.jsxs)("table",{className:o.table,children:[(0,h.jsx)("thead",{children:(0,h.jsxs)("tr",{children:[(0,h.jsx)("th",{children:"Test"}),(0,h.jsx)("th",{children:"Value"}),(0,h.jsx)("th",{children:"Reference Range"}),(0,h.jsx)("th",{children:"Interpretation"}),(0,h.jsx)("th",{children:"Category"}),(0,h.jsx)("th",{children:"Performer"}),(0,h.jsx)("th",{children:"Status"})]})}),(0,h.jsx)("tbody",{children:(0,h.jsx)(bu,{value:e.value,ancestorIds:e.ancestorIds,hideObservationNotes:e.hideObservationNotes})})]})}function bu(e){return(0,h.jsx)(h.Fragment,{children:e.value?.map(o=>(0,h.jsx)(Mm,{value:o,ancestorIds:e.ancestorIds,hideObservationNotes:e.hideObservationNotes},`obs-${(0,lo.isReference)(o)?o.reference:o.id}`))})}function Mm(e){let{classes:o,cx:t}=Su(),r=Z(e.value);if(!r||e.ancestorIds?.includes(r.id))return null;let a=!e.hideObservationNotes&&r.note,n=Om(r);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)("tr",{className:t({[o.criticalRow]:n}),children:[(0,h.jsx)("td",{rowSpan:a?2:1,children:(0,h.jsx)(Pe,{to:r,children:(0,h.jsx)(Et,{value:r.code})})}),(0,h.jsx)("td",{children:(0,h.jsx)(Fm,{value:r})}),(0,h.jsx)("td",{children:(0,h.jsx)(wm,{value:r.referenceRange})}),(0,h.jsx)("td",{children:r.interpretation&&r.interpretation.length>0&&(0,h.jsx)(Et,{value:r.interpretation[0]})}),(0,h.jsx)("td",{children:r.category&&r.category.length>0&&(0,h.jsx)(h.Fragment,{children:r.category.map(l=>(0,h.jsx)("div",{children:(0,h.jsx)(Et,{value:l})},`category-${(0,lo.formatCodeableConcept)(l)}`))})}),(0,h.jsx)("td",{children:r.performer?.map(l=>(0,h.jsx)(st,{value:l},l.reference))}),(0,h.jsx)("td",{children:r.status&&(0,h.jsx)(ya,{status:r.status})})]}),r.hasMember&&(0,h.jsx)(bu,{value:r.hasMember,ancestorIds:e.ancestorIds?[...e.ancestorIds,r.id]:[r.id],hideObservationNotes:e.hideObservationNotes}),a&&(0,h.jsx)("tr",{children:(0,h.jsx)("td",{colSpan:6,children:(0,h.jsx)(Mf,{value:r.note})})})]})}function Fm(e){let o=e.value;return(0,h.jsx)(h.Fragment,{children:(0,lo.formatObservationValue)(o)})}function wm(e){let o=e.value&&e.value.length>0&&e.value[0];return o?o.text?(0,h.jsx)(h.Fragment,{children:o.text}):(0,h.jsx)(jr,{value:o}):null}function Om(e){let o=e.interpretation?.[0]?.coding?.[0]?.code;return o==="AA"||o==="LL"||o==="HH"||o==="A"}var br=require("@mantine/core"),Ru=require("react/jsx-runtime"),Em=(0,br.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%"}}})),Lm={shadow:"xs",radius:"md",withBorder:!0};function $t(e){let{className:o,children:t,width:r,fill:a,unstyled:n,...l}=(0,br.useComponentDefaultProps)("Panel",Lm,e),{classes:f,cx:s}=Em({width:r,fill:a},{name:"Panel",unstyled:n});return(0,Ru.jsx)(br.Paper,{className:s(f.paper,o),...l,children:t})}var Gu=require("@mantine/core"),To=require("@medplum/core");var En=require("react"),Uu=dl(Hu(),1);var Ne=require("react/jsx-runtime"),Ym=(0,Gu.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],fontFamily:"monospace",textDecoration:"line-through",whiteSpace:"pre-wrap"},added:{color:e.colors.green[7],fontFamily:"monospace",whiteSpace:"pre-wrap"}}));function Qu(e){let{classes:o}=Ym(),t=P(),[r,a]=(0,En.useState)(!1);if((0,En.useEffect)(()=>{t.requestSchema(e.original.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.original.resourceType]),!r)return null;let n=(0,Uu.createPatch)(e.original,e.revised),l=[(0,To.toTypedValue)(e.original)],f=[(0,To.toTypedValue)(e.revised)];return(0,Ne.jsxs)("table",{className:o.root,children:[(0,Ne.jsx)("thead",{children:(0,Ne.jsxs)("tr",{children:[(0,Ne.jsx)("th",{}),(0,Ne.jsx)("th",{children:"Before"}),(0,Ne.jsx)("th",{children:"After"})]})}),(0,Ne.jsx)("tbody",{children:n.map(s=>{if(s.path.startsWith("/meta"))return null;let i=s.path,u=jm(i),d=(0,To.getSearchParameterDetails)(e.original.resourceType,{resourceType:"SearchParameter",base:[e.original.resourceType],code:e.original.resourceType+"."+u,expression:e.original.resourceType+"."+u})?.elementDefinitions?.[0],m=!!d?.isArray,x=s.op==="add"?void 0:(0,To.evalFhirPathTyped)(u,l)?.[0],p=s.op==="remove"?void 0:(0,To.evalFhirPathTyped)(u,f)?.[0];return(0,Ne.jsxs)("tr",{children:[(0,Ne.jsxs)("td",{children:[(0,To.capitalize)(s.op)," ",u]}),(0,Ne.jsx)("td",{className:o.removed,children:x&&(0,Ne.jsx)(De,{property:d,propertyType:x.type,value:qu(x.value,m),ignoreMissingValues:!0})}),(0,Ne.jsx)("td",{className:o.added,children:p&&(0,Ne.jsx)(De,{property:d,propertyType:p.type,value:qu(p.value,m),ignoreMissingValues:!0})})]},`op-${s.op}-${s.path}`)})})]})}function jm(e){let o=e.split("/").filter(Boolean),t="";for(let r=0;r<o.length;r++){let a=o[r];a==="-"?t+=".last()":/^\d+$/.test(a)?t+=`[${a}]`:(r>0&&(t+="."),t+=a)}return t}function qu(e,o){return Array.isArray(e)&&!o?e[0]:!Array.isArray(e)&&o?[e]:e}var Ln=require("react");var zu=require("react/jsx-runtime");function Nn(e){let o=P(),t=Z(e.value),[r,a]=(0,Ln.useState)(!1);return(0,Ln.useEffect)(()=>{t&&o.requestSchema(t.resourceType).then(()=>a(!0)).catch(console.log)},[o,t]),!r||!t?null:(0,zu.jsx)(dr,{value:{type:t.resourceType,value:e.forceUseInput?e.value:t},ignoreMissingValues:e.ignoreMissingValues})}var mo=require("@mantine/core"),Vn=require("@medplum/core");var pe=require("react/jsx-runtime");function zf(e){return(0,pe.jsx)(Wo,{children:e.children})}function _o(e){let{resource:o,profile:t,padding:r,popupMenuItems:a,...n}=e,l=t??o.meta?.author,f=e.dateTime??o.meta?.lastUpdated;return(0,pe.jsxs)($t,{"data-testid":"timeline-item",fill:!0,...n,children:[(0,pe.jsxs)(mo.Group,{position:"apart",spacing:8,mx:"xs",my:"sm",children:[(0,pe.jsx)(Fe,{value:l,link:!0,size:"md"}),(0,pe.jsxs)("div",{style:{flex:1},children:[(0,pe.jsx)(mo.Text,{size:"sm",children:(0,pe.jsx)(co,{color:"dark",weight:500,value:l,link:!0})}),(0,pe.jsxs)(mo.Text,{size:"xs",children:[(0,pe.jsx)(Pe,{color:"dimmed",to:e.resource,children:(0,Vn.formatDateTime)(f)}),(0,pe.jsx)(mo.Text,{component:"span",color:"dimmed",mx:8,children:"\xB7"}),(0,pe.jsx)(Pe,{color:"dimmed",to:e.resource,children:e.resource.resourceType})]})]}),a&&(0,pe.jsxs)(mo.Menu,{position:"bottom-end",shadow:"md",width:200,children:[(0,pe.jsx)(mo.Menu.Target,{children:(0,pe.jsx)(mo.ActionIcon,{radius:"xl","aria-label":`Actions for ${(0,Vn.getReferenceString)(e.resource)}`,children:(0,pe.jsx)(Ol,{})})}),a]})]}),(0,pe.jsxs)(Mt,{children:[r&&(0,pe.jsx)("div",{style:{padding:"0 16px 16px 16px"},children:e.children}),!r&&(0,pe.jsx)(pe.Fragment,{children:e.children})]})]})}function Wf(e,o){e.sort((t,r)=>{let a=Wu(t,o),n=Wu(r,o);return a>n?1:a<n?-1:Xu(t,o)-Xu(r,o)})}function Wu(e,o){if(!Ju(e,o)){let t=e.priority;if(typeof t=="string")return{stat:4,asap:3,urgent:2}[t]??0}return 0}function Xu(e,o){if(!Ju(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 Ju(e,o){return!!o&&e.resourceType===o.resourceType&&e.id===o.id}var B=require("react/jsx-runtime"),ep=(0,le.createStyles)(e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}}));function Zo(e){let o=P(),t=Oo(),r=o.getProfile(),a=(0,Xe.useRef)(null),n=Z(e.value),[l,f]=(0,Xe.useState)(),[s,i]=(0,Xe.useState)([]),u=e.loadTimelineResources,c=(0,Xe.useRef)(s);c.current=s;let d=(0,Xe.useCallback)(S=>{Wf(S,n),S.reverse(),i(S)},[n]),m=(0,Xe.useCallback)(S=>{let Q=[];for(let ho of S){if(ho.status!=="fulfilled")continue;let T=ho.value;if(T.type==="history"&&f(T),T.entry)for(let J of T.entry)Q.push(J.resource)}d(Q)},[d]),x=(0,Xe.useCallback)(S=>d([...c.current,S]),[d]),p=(0,Xe.useCallback)(()=>{let S,Q;"resourceType"in e.value?(S=e.value.resourceType,Q=e.value.id):[S,Q]=e.value.reference?.split("/"),u(o,S,Q).then(m).catch(console.log)},[o,e.value,u,m]);(0,Xe.useEffect)(()=>p(),[p]);function y(S){!n||!e.createCommunication||o.createResource(e.createCommunication(n,r,S)).then(Q=>x(Q)).catch(console.log)}function C(S){!n||!e.createMedia||o.createResource(e.createMedia(n,r,S)).then(Q=>x(Q)).then(()=>(0,_t.updateNotification)({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:(0,B.jsx)(Ur,{size:16}),autoClose:2e3})).catch(Q=>(0,_t.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,Ko.normalizeErrorString)(Q),icon:(0,B.jsx)(za,{size:16}),autoClose:2e3}))}function v(S,Q){return o.updateResource({...S,priority:Q})}function R(S){v(S,"stat").then(p).catch(console.log)}function V(S){v(S,"routine").then(p).catch(console.log)}function b(S){t(`/${S.resourceType}/${S.id}`)}function O(S){t(`/${S.resourceType}/${S.id}/edit`)}function ie(S){t(`/${S.resourceType}/${S.id}/delete`)}function be(S){t(`/${S.resourceType}/${S.id}/_history/${S.meta?.versionId}`)}function Fo(){(0,_t.showNotification)({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})}function Tt(S){(0,_t.updateNotification)({id:"upload-notification",loading:!0,title:"Uploading...",message:fp(S),autoClose:!1,withCloseButton:!1})}function Me(S){(0,_t.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,Ko.normalizeErrorString)(S),icon:(0,B.jsx)(za,{size:16}),autoClose:2e3})}return n?(0,B.jsxs)(zf,{children:[e.createCommunication&&(0,B.jsx)($t,{children:(0,B.jsx)(te,{testid:"timeline-form",onSubmit:S=>{y(S.text);let Q=a.current;Q&&(Q.value="",Q.focus())},children:(0,B.jsxs)(le.Group,{spacing:"xs",noWrap:!0,style:{width:"100%"},children:[(0,B.jsx)(Fe,{value:r}),(0,B.jsx)(le.TextInput,{name:"text",ref:a,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),(0,B.jsx)(le.ActionIcon,{type:"submit",radius:"xl",color:"blue",variant:"filled",children:(0,B.jsx)(ql,{size:16})}),(0,B.jsx)(Ot,{onUpload:C,onUploadStart:Fo,onUploadProgress:Tt,onUploadError:Me,children:S=>(0,B.jsx)(le.ActionIcon,{...S,radius:"xl",color:"blue",variant:"filled",children:(0,B.jsx)(Qr,{size:16})})})]})})}),s.map(S=>{if(!S)return null;let Q=`${S.resourceType}/${S.id}/${S.meta?.versionId}`;if(S.resourceType===n.resourceType&&S.id===n.id)return(0,B.jsx)(op,{history:l,resource:S,onDetails:be},Q);switch(S.resourceType){case"AuditEvent":return(0,B.jsx)(np,{resource:S,onDetails:b},Q);case"Communication":return(0,B.jsx)(rp,{resource:S,onPin:S.priority!=="stat"?R:void 0,onUnpin:S.priority==="stat"?V:void 0,onDetails:b,onEdit:O,onDelete:ie},Q);case"DiagnosticReport":return(0,B.jsx)(lp,{resource:S,onDetails:b,onEdit:O,onDelete:ie},Q);case"Media":return(0,B.jsx)(ap,{resource:S,onDetails:b,onEdit:O,onDelete:ie},Q);default:return(0,B.jsx)(_o,{resource:S,padding:!0,children:(0,B.jsx)(Nn,{value:S,ignoreMissingValues:!0})},Q)}})]}):(0,B.jsx)(le.Center,{style:{width:"100%",height:"100%"},children:(0,B.jsx)(le.Loader,{})})}function Rr(e){return(0,B.jsxs)(le.Menu.Dropdown,{children:[(0,B.jsx)(le.Menu.Label,{children:"Resource"}),e.onPin&&(0,B.jsx)(le.Menu.Item,{icon:(0,B.jsx)(Gl,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${(0,Ko.getReferenceString)(e.resource)}`,children:"Pin"}),e.onUnpin&&(0,B.jsx)(le.Menu.Item,{icon:(0,B.jsx)(Ul,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${(0,Ko.getReferenceString)(e.resource)}`,children:"Unpin"}),e.onDetails&&(0,B.jsx)(le.Menu.Item,{icon:(0,B.jsx)(Vl,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${(0,Ko.getReferenceString)(e.resource)}`,children:"Details"}),e.onEdit&&(0,B.jsx)(le.Menu.Item,{icon:(0,B.jsx)(El,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${(0,Ko.getReferenceString)(e.resource)}`,children:"Edit"}),e.onDelete&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(le.Menu.Divider,{}),(0,B.jsx)(le.Menu.Label,{children:"Danger zone"}),(0,B.jsx)(le.Menu.Item,{color:"red",icon:(0,B.jsx)(Xr,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${(0,Ko.getReferenceString)(e.resource)}`,children:"Delete"})]})]})}function op(e){let o=tp(e.history,e.resource);return o?(0,B.jsx)(_o,{resource:e.resource,padding:!0,popupMenuItems:(0,B.jsx)(Rr,{...e}),children:(0,B.jsx)(Qu,{original:o,revised:e.resource})}):(0,B.jsxs)(_o,{resource:e.resource,padding:!0,popupMenuItems:(0,B.jsx)(Rr,{...e}),children:[(0,B.jsx)("h3",{children:"Created"}),(0,B.jsx)(Nn,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0})]})}function tp(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 rp(e){let{classes:o}=ep(),r=!e.resource.priority||e.resource.priority==="routine"?void 0:o.pinnedComment;return(0,B.jsx)(_o,{resource:e.resource,profile:e.resource.sender,dateTime:e.resource.sent,padding:!0,className:r,popupMenuItems:(0,B.jsx)(Rr,{...e}),children:(0,B.jsx)("p",{children:e.resource.payload?.[0]?.contentString})})}function ap(e){let o=e.resource.content?.contentType,t=o&&!o.startsWith("image/")&&!o.startsWith("video/")&&o!=="application/pdf";return(0,B.jsx)(_o,{resource:e.resource,padding:!!t,popupMenuItems:(0,B.jsx)(Rr,{...e}),children:(0,B.jsx)(io,{value:e.resource.content})})}function np(e){return(0,B.jsx)(_o,{resource:e.resource,padding:!0,popupMenuItems:(0,B.jsx)(Rr,{...e}),children:(0,B.jsx)(le.ScrollArea,{children:(0,B.jsx)("pre",{children:e.resource.outcomeDesc})})})}function lp(e){return(0,B.jsx)(_o,{resource:e.resource,padding:!0,popupMenuItems:(0,B.jsx)(Rr,{...e}),children:(0,B.jsx)(Fn,{value:e.resource})})}function fp(e){if(e.lengthComputable){let o=100*e.loaded/e.total;return`Uploaded: ${Xf(e.loaded)} / ${Xf(e.total)} ${o.toFixed(2)}%`}return`Uploaded: ${Xf(e.loaded)}`}function Xf(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"}var $u=require("react/jsx-runtime");function sp(e){return(0,$u.jsx)(Zo,{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 Jf=require("react/jsx-runtime");function Sa(e){let{children:o,...t}=e;return(0,Jf.jsx)(Wo,{children:(0,Jf.jsx)($t,{...t,children:o})})}var Ca=require("@medplum/core");var _u=require("react/jsx-runtime");function ip(e){return(0,_u.jsx)(Zo,{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,Ca.createReference)(o),subject:o.subject,sender:(0,Ca.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",encounter:(0,Ca.createReference)(o),subject:o.subject,operator:(0,Ca.createReference)(t),issued:new Date().toISOString(),content:r})})}var Mr=require("@mantine/core"),sc=require("@medplum/core");var _e=require("react");var Ku=require("@medplum/core");var Yu=require("react/jsx-runtime");function Zu(e){let o;try{o=(0,Ku.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(0,Yu.jsx)(De,{value:o[0]||"",propertyType:e.propertyType})}var H=require("@mantine/core"),Ar=require("@medplum/core");var ze=require("react");var It=require("@mantine/core"),xt=require("react/jsx-runtime");function ec(e){return(0,xt.jsxs)(It.Modal,{title:"Export",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel,children:[(0,xt.jsxs)(It.Box,{display:"flex",sx:{justifyContent:"space-between"},children:[e.exportCsv&&(0,xt.jsx)(ju,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&(0,xt.jsx)(ju,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})]}),(0,xt.jsx)(It.Text,{sx:{marginTop:"10px",marginLeft:"2px"},children:"Limited to 1000 records"})]})}function ju(e){return(0,xt.jsx)(It.Button,{onClick:()=>{e.exportLogic(),e.onCancel()},children:`Export as ${e.text}`})}var Do=require("@mantine/core"),kr=require("@medplum/core"),Yo=require("react");var A=require("@medplum/core");var Pr=require("react/jsx-runtime"),up={string:[A.Operator.EQUALS,A.Operator.NOT,A.Operator.CONTAINS,A.Operator.EXACT],fulltext:[A.Operator.EQUALS,A.Operator.NOT,A.Operator.CONTAINS,A.Operator.EXACT],token:[A.Operator.EQUALS,A.Operator.NOT],reference:[A.Operator.EQUALS,A.Operator.NOT],numeric:[A.Operator.EQUALS,A.Operator.NOT_EQUALS,A.Operator.GREATER_THAN,A.Operator.LESS_THAN,A.Operator.GREATER_THAN_OR_EQUALS,A.Operator.LESS_THAN_OR_EQUALS],quantity:[A.Operator.EQUALS,A.Operator.NOT_EQUALS,A.Operator.GREATER_THAN,A.Operator.LESS_THAN,A.Operator.GREATER_THAN_OR_EQUALS,A.Operator.LESS_THAN_OR_EQUALS],date:[A.Operator.EQUALS,A.Operator.NOT_EQUALS,A.Operator.GREATER_THAN,A.Operator.LESS_THAN,A.Operator.GREATER_THAN_OR_EQUALS,A.Operator.LESS_THAN_OR_EQUALS,A.Operator.STARTS_AFTER,A.Operator.ENDS_BEFORE,A.Operator.APPROXIMATELY],datetime:[A.Operator.EQUALS,A.Operator.NOT_EQUALS,A.Operator.GREATER_THAN,A.Operator.LESS_THAN,A.Operator.GREATER_THAN_OR_EQUALS,A.Operator.LESS_THAN_OR_EQUALS,A.Operator.STARTS_AFTER,A.Operator.ENDS_BEFORE,A.Operator.APPROXIMATELY]},cp={eq:"equals",ne:"not equals",gt:"greater than",lt:"less than",ge:"greater than or equals",le:"less than or equals",sa:"starts after",eb:"ends before",ap:"approximately",contains:"contains",exact:"exact",text:"text",not:"not",above:"above",below:"below",in:"in","not-in":"not in","of-type":"of type",missing:"missing",identifier:"identifier",iterate:"iterate"};function Tr(e,o){return{...e,filters:o,offset:0,name:void 0}}function dp(e){return Tr(e,[])}function ba(e,o){return Tr(e,(e.filters??[]).filter(t=>t.code!==o))}function Kt(e,o,t,r,a){a&&(e=ba(e,o));let n=[];return e.filters&&n.push(...e.filters),n.push({code:o,operator:t,value:r??""}),Tr(e,n)}function mp(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 $f(e,o){if(!e.filters)return e;let t=[...e.filters];return t.splice(o,1),{...e,filters:t,name:void 0}}function _f(e,o){return Yf(e,o,-1)}function Kf(e,o){return Yf(e,o,0)}function Zf(e,o){return Yf(e,o,1)}function Yf(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),Hn(e,o,r,a)}function jf(e,o){return ts(e,o,-1)}function es(e,o){return ts(e,o,0)}function os(e,o){return ts(e,o,1)}function ts(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),Hn(e,o,r,a)}function rs(e,o){let t=new Date;return t.setMonth(0),t.setDate(1),t.setHours(0,0,0,0),Hn(e,o,t,new Date)}function Hn(e,o,t,r){return e=ba(e,o),e=oc(e,o,A.Operator.GREATER_THAN_OR_EQUALS,t),e=oc(e,o,A.Operator.LESS_THAN_OR_EQUALS,r),e}function oc(e,o,t,r){return Kt(e,o,t,r.toISOString())}function qn(e,o,t=!0){return Kt(e,o,A.Operator.MISSING,t.toString())}function tc(e,o){return e.offset===o?e:{...e,offset:o,name:void 0}}function as(e,o){let t=e.count??A.DEFAULT_SEARCH_COUNT,r=(o-1)*t;return tc(e,r)}function Gn(e,o,t){return o===ns(e)&&t!==void 0&&t===ls(e)?e:{...e,sortRules:[{code:o,descending:!!t}],name:void 0}}function pp(e,o){let t=!1;return ns(e)===o&&(t=!ls(e)),Gn(e,o,t)}function ns(e){let o=e.sortRules;if(!o||o.length===0)return;let t=o[0].code;return t.startsWith("-")?t.substr(1):t}function ls(e){let o=e.sortRules;return!o||o.length===0?!1:!!o[0].descending}function fs(e){return up[e.type]}function Dr(e){return cp[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(A.capitalize).join(" "))}function ss(e,o){let t=o.name;return t==="id"?e.id:t==="meta.versionId"?e.meta?.versionId:t==="_lastUpdated"?(0,A.formatDateTime)(e.meta?.lastUpdated):o.elementDefinition&&`${e.resourceType}.${o.name}`===o.elementDefinition.path?xp(e,o.elementDefinition):o.searchParams&&o.searchParams.length===1&&o.name===o.searchParams[0].code?Ip(e,o.searchParams[0]):null}function xp(e,o){let t=o.path?.split(".")?.pop()?.replaceAll("[x]","")??"",[r,a]=ct({type:e.resourceType,value:e},t);return r?(0,Pr.jsx)(De,{property:o,propertyType:a,value:r,maxWidth:200,ignoreMissingValues:!0,link:!1}):null}function Ip(e,o){let t=(0,A.evalFhirPathTyped)(o.expression,[{type:e.resourceType,value:e}]);return!t||t.length===0?null:(0,Pr.jsx)(Pr.Fragment,{children:t.map((r,a)=>(0,Pr.jsx)(De,{propertyType:r.type,value:r.value,maxWidth:200,ignoreMissingValues:!0,link:!1},`${a}-${t.length}`))})}var gt=require("react/jsx-runtime");function is(e){let o=(0,Yo.useRef)(!1),[t,r]=(0,Yo.useState)({search:JSON.parse((0,kr.stringify)(e.search))}),[a,n]=(0,Yo.useState)(!1);(0,Yo.useEffect)(()=>{r({search:e.search})},[e.search]);let l=(0,Yo.useMemo)(()=>{if(!e.visible)return[];let s=e.search.resourceType,i=(0,kr.getDataType)(s),u=(0,kr.getSearchParameters)(s);return gp(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 f(s){r({search:{...t.search,fields:s}})}return(0,gt.jsx)(Do.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:(0,gt.jsx)("div",{"data-testid":"overlay-child"})},children:(0,gt.jsxs)(Do.Stack,{children:[(0,gt.jsx)(Do.MultiSelect,{withinPortal:!0,style:{width:550},placeholder:"Select fields to display",data:l,value:t.search.fields??[],onChange:f,onDropdownOpen:()=>n(!0),onDropdownClose:()=>n(!1),maxDropdownHeight:"250px",dropdownPosition:"bottom",clearButtonProps:{"aria-label":"Clear selection"},clearable:!0,searchable:!0}),(0,gt.jsx)(Do.Group,{position:"right",children:(0,gt.jsx)(Do.Button,{onClick:()=>e.onOk(t.search),children:"OK"})})]})})}function gp(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 l=Je(n);!r.has(n)&&!a.has(l)&&(t.push(n),r.add(n),a.add(l))}return t}var $e=require("@mantine/core"),Ra=require("@medplum/core"),et=require("react");var po=require("@medplum/core");var Zt=require("react/jsx-runtime");function Un(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(0,Zt.jsx)(co,{value:{reference:t.value}});let a=(0,po.getSearchParameterDetails)(o,r);if(t.code==="_lastUpdated"||a.type===po.SearchParameterType.DATETIME)return(0,Zt.jsx)(Zt.Fragment,{children:(0,po.formatDateTime)(t.value)})}return(0,Zt.jsx)(Zt.Fragment,{children:t.value})}var Br=require("@mantine/core"),jo=require("@medplum/core");var ht=require("react/jsx-runtime");function Qn(e){let o=(0,jo.getSearchParameterDetails)(e.resourceType,e.searchParam),t="filter-value";switch(o.type){case jo.SearchParameterType.REFERENCE:return(0,ht.jsx)(zt,{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(0,ht.jsx)(Br.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(0,ht.jsx)(Br.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(0,ht.jsx)(ao,{name:t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:e.onChange});case jo.SearchParameterType.NUMBER:return(0,ht.jsx)(Br.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(0,ht.jsx)(We,{name:t,defaultValue:hp(e.defaultValue),autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(`${r.value}`):e.onChange("")}});default:return(0,ht.jsx)(Br.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 hp(e){if(e){let[o,t,r]=e.split("|");if(o)return{value:parseFloat(o),system:t,unit:r}}}var L=require("react/jsx-runtime");function us(e){let[o,t]=(0,et.useState)(JSON.parse((0,Ra.stringify)(e.search))),[r,a]=(0,et.useState)(-1),n=(0,et.useRef)(o);n.current=o,(0,et.useEffect)(()=>{t(JSON.parse((0,Ra.stringify)(e.search)))},[e.search]);function l(u){t(Kt(n.current,u.code,u.operator,u.value))}if(!e.visible)return null;let f=e.search.resourceType,s=(0,Ra.getSearchParameters)(f)??{},i=o.filters||[];return(0,L.jsxs)($e.Modal,{title:"Filters",closeButtonProps:{"aria-label":"Close"},size:900,opened:e.visible,onClose:e.onCancel,children:[(0,L.jsx)("div",{children:(0,L.jsxs)("table",{children:[(0,L.jsxs)("colgroup",{children:[(0,L.jsx)("col",{style:{width:200}}),(0,L.jsx)("col",{style:{width:200}}),(0,L.jsx)("col",{style:{width:380}}),(0,L.jsx)("col",{style:{width:120}})]}),(0,L.jsx)("thead",{children:(0,L.jsxs)("tr",{children:[(0,L.jsx)("th",{children:"Field"}),(0,L.jsx)("th",{children:"Operation"}),(0,L.jsx)("th",{children:"Value"}),(0,L.jsx)("th",{children:"Actions"})]})}),(0,L.jsxs)("tbody",{children:[i.map((u,c)=>c===r?(0,L.jsx)(rc,{resourceType:f,searchParams:s,defaultValue:u,okText:"Save",onOk:d=>{let m=[...i];m[c]=d,t(Tr(n.current,m)),a(-1)},onCancel:()=>a(-1)},`filter-${u.code}-${u.operator}-${u.value}-input`):(0,L.jsx)(yp,{resourceType:f,searchParams:s,filter:u,onEdit:()=>a(c),onDelete:()=>t($f(n.current,c))},`filter-${u.code}-${u.operator}-${u.value}-display`)),(0,L.jsx)(rc,{resourceType:f,searchParams:s,okText:"Add",onOk:l})]})]})}),(0,L.jsx)($e.Group,{position:"right",mt:"xl",children:(0,L.jsx)($e.Button,{onClick:()=>e.onOk(n.current),children:"OK"})})]})}function yp(e){let{filter:o}=e;return(0,L.jsxs)("tr",{children:[(0,L.jsx)("td",{children:Je(o.code)}),(0,L.jsx)("td",{children:Dr(o.operator)}),(0,L.jsx)("td",{children:(0,L.jsx)(Un,{resourceType:e.resourceType,filter:o})}),(0,L.jsxs)("td",{children:[(0,L.jsx)($e.Button,{compact:!0,variant:"outline",onClick:e.onEdit,children:"Edit"}),(0,L.jsx)($e.Button,{compact:!0,variant:"outline",onClick:e.onDelete,children:"Delete"})]})]})}function rc(e){let[o,t]=(0,et.useState)(e.defaultValue??{}),r=(0,et.useRef)(o);r.current=o;function a(i){t({...r.current,code:i})}function n(i){t({...r.current,operator:i})}function l(i){t({...r.current,value:i})}let f=e.searchParams[o.code],s=f&&fs(f);return(0,L.jsxs)("tr",{children:[(0,L.jsx)("td",{children:(0,L.jsx)($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)}))]})}),(0,L.jsx)("td",{children:s&&(0,L.jsx)($e.NativeSelect,{"data-testid":"filter-operation",defaultValue:o.operator,onChange:i=>n(i.currentTarget.value),data:["",...s.map(i=>({value:i,label:Dr(i)}))]})}),(0,L.jsx)("td",{children:f&&o.operator&&(0,L.jsx)(Qn,{resourceType:e.resourceType,searchParam:f,defaultValue:o.value,onChange:l})}),(0,L.jsxs)("td",{children:[o.code&&o.operator&&(0,L.jsx)($e.Button,{compact:!0,variant:"outline",onClick:()=>{e.onOk(r.current),t({})},children:e.okText}),e.onCancel&&(0,L.jsx)($e.Button,{compact:!0,variant:"outline",onClick:e.onCancel,children:"Cancel"})]})]})}var yt=require("@mantine/core"),ac=require("react");var ot=require("react/jsx-runtime");function nc(e){let[o,t]=(0,ac.useState)(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function r(){e.onOk({...e.filter,value:o})}return(0,ot.jsx)(yt.Modal,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel,children:(0,ot.jsx)(te,{onSubmit:r,children:(0,ot.jsxs)(yt.Grid,{children:[(0,ot.jsx)(yt.Grid.Col,{span:10,children:(0,ot.jsx)(Qn,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:o,autoFocus:!0,onChange:t})}),(0,ot.jsx)(yt.Grid.Col,{span:2,children:(0,ot.jsx)(yt.Button,{onClick:r,fullWidth:!0,children:"OK"})})]})})})}var M=require("@mantine/core"),Te=require("@medplum/core");var I=require("react/jsx-runtime");function lc(e){if(!e.searchParams)return null;function o(n,l){a(Gn(e.search,n.code,l))}function t(n){a(ba(e.search,n.code))}function r(n,l){e.onPrompt(n,{code:n.code,operator:l,value:""})}function a(n){e.onChange(n)}return e.searchParams.length===1?(0,I.jsx)(vp,{search:e.search,searchParam:e.searchParams[0],onSort:o,onPrompt:r,onChange:a,onClear:t}):(0,I.jsx)(M.Menu.Dropdown,{children:e.searchParams.map(n=>(0,I.jsx)(M.Menu.Item,{children:Je(n.code)},n.code))})}function vp(e){switch(e.searchParam.type){case"date":return(0,I.jsx)(Sp,{...e});case"number":case"quantity":return(0,I.jsx)(Cp,{...e});case"reference":return(0,I.jsx)(bp,{...e});case"string":case"token":case"uri":return(0,I.jsx)(Rp,{...e});default:return(0,I.jsxs)(I.Fragment,{children:["Unknown search param type: ",e.searchParam.type]})}}function Sp(e){let{searchParam:o}=e,t=o.code;return(0,I.jsxs)(M.Menu.Dropdown,{children:[(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(zr,{size:14}),onClick:()=>e.onSort(o,!1),children:"Sort Oldest to Newest"}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Wr,{size:14}),onClick:()=>e.onSort(o,!0),children:"Sort Newest to Oldest"}),(0,I.jsx)(M.Menu.Divider,{}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(nr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS),children:"Equals..."}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(ar,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT_EQUALS),children:"Does not equal..."}),(0,I.jsx)(M.Menu.Divider,{}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Xa,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.ENDS_BEFORE),children:"Before..."}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Wa,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.STARTS_AFTER),children:"After..."}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Tl,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS),children:"Between..."}),(0,I.jsx)(M.Menu.Divider,{}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Lo,{size:14}),onClick:()=>e.onChange(Zf(e.search,t)),children:"Tomorrow"}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Lo,{size:14}),onClick:()=>e.onChange(Kf(e.search,t)),children:"Today"}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Lo,{size:14}),onClick:()=>e.onChange(_f(e.search,t)),children:"Yesterday"}),(0,I.jsx)(M.Menu.Divider,{}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Lo,{size:14}),onClick:()=>e.onChange(os(e.search,t)),children:"Next Month"}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Lo,{size:14}),onClick:()=>e.onChange(es(e.search,t)),children:"This Month"}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Lo,{size:14}),onClick:()=>e.onChange(jf(e.search,t)),children:"Last Month"}),(0,I.jsx)(M.Menu.Divider,{}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Lo,{size:14}),onClick:()=>e.onChange(rs(e.search,t)),children:"Year to date"}),(0,I.jsx)(zn,{...e})]})}function Cp(e){let{searchParam:o}=e;return(0,I.jsxs)(M.Menu.Dropdown,{children:[(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(zr,{size:14}),onClick:()=>e.onSort(o,!1),children:"Sort Smallest to Largest"}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Wr,{size:14}),onClick:()=>e.onSort(o,!0),children:"Sort Largest to Smallest"}),(0,I.jsx)(M.Menu.Divider,{}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(nr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS),children:"Equals..."}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(ar,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT_EQUALS),children:"Does not equal..."}),(0,I.jsx)(M.Menu.Divider,{}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Wa,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.GREATER_THAN),children:"Greater than..."}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(lr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.GREATER_THAN_OR_EQUALS),children:"Greater than or equal to..."}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Xa,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.LESS_THAN),children:"Less than..."}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(lr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.LESS_THAN_OR_EQUALS),children:"Less than or equal to..."}),(0,I.jsx)(zn,{...e})]})}function bp(e){let{searchParam:o}=e;return(0,I.jsxs)(M.Menu.Dropdown,{children:[(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(nr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS),children:"Equals..."}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(ar,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT),children:"Does not equal..."}),(0,I.jsx)(zn,{...e})]})}function Rp(e){let{searchParam:o}=e;return(0,I.jsxs)(M.Menu.Dropdown,{children:[(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(zr,{size:14}),onClick:()=>e.onSort(o,!1),children:"Sort A to Z"}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Wr,{size:14}),onClick:()=>e.onSort(o,!0),children:"Sort Z to A"}),(0,I.jsx)(M.Menu.Divider,{}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(nr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS),children:"Equals..."}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(ar,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT),children:"Does not equal..."}),(0,I.jsx)(M.Menu.Divider,{}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(kl,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.CONTAINS),children:"Contains..."}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Dl,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS),children:"Does not contain..."}),(0,I.jsx)(zn,{...e})]})}function zn(e){let{searchParam:o}=e,t=o.code;return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(M.Menu.Divider,{}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(Rl,{size:14}),onClick:()=>e.onChange(qn(e.search,t)),children:"Missing"}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(bl,{size:14}),onClick:()=>e.onChange(qn(e.search,t,!1)),children:"Not missing"}),(0,I.jsx)(M.Menu.Divider,{}),(0,I.jsx)(M.Menu.Item,{icon:(0,I.jsx)(_l,{size:14}),onClick:()=>e.onClear(o),children:"Clear filters"})]})}var vt=require("@medplum/core");function cs(e){let o=e.resourceType,t=[];for(let r of e.fields||["id","_lastUpdated"])t.push(Pp(o,r));return t}function Pp(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,vt.getElementDefinition)(e,o),r=(0,vt.getSearchParameter)(e,o.toLowerCase());if(t&&r)return{name:o,elementDefinition:t,searchParams:[r]};if(t){let a=(0,vt.getSearchParameters)(e),n;if(a){let l=new RegExp(`${e}\\.${o.replaceAll("[x]","")}([^\\w-]|$)`);n=Object.values(a).filter(f=>!!f.expression&&l.test(f?.expression)),n.length===0&&(n=void 0)}return{name:o,elementDefinition:t,searchParams:n}}if(r){let a=(0,vt.getSearchParameterDetails)(e,r);return{name:o,elementDefinition:a.elementDefinitions?.[0],searchParams:[r]}}return{name:o}}var D=require("react/jsx-runtime"),Wn=class extends Event{constructor(t){super("change");this.definition=t}},Xn=class extends Event{constructor(t){super("load");this.response=t}},St=class extends Event{constructor(t,r){super("click");this.resource=t,this.browserEvent=r}},Tp=(0,H.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 fc(e){let{classes:o}=Tp(),t=P(),[r,a]=(0,ze.useState)(!1),[n,l]=(0,ze.useState)(),{search:f,onLoad:s}=e,[i,u]=(0,ze.useState)({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,exportDialogVisible:!1,filterDialogVisible:!1}),c=(0,ze.useRef)(i);c.current=i;let d=f.total??"accurate",m=(0,ze.useCallback)(T=>{l(void 0),t.search(f.resourceType,(0,Ar.formatSearchQuery)({...f,total:d,fields:void 0}),T).then(J=>{u({...c.current,searchResponse:J}),s&&s(new Xn(J))}).catch(J=>{u({...c.current,searchResponse:void 0}),l(J)})},[t,f,d,s]),x=(0,ze.useCallback)(()=>{u({...c.current,searchResponse:void 0}),m({cache:"reload"})},[m]);(0,ze.useEffect)(()=>{m()},[m]);function p(T,J){T.stopPropagation();let Re=T.target.checked,ve={...c.current.selected};Re?ve[J]=!0:delete ve[J],u({...c.current,selected:ve})}function y(T){T.stopPropagation();let wo=T.target.checked,Re={},ve=c.current.searchResponse;wo&&ve?.entry&&ve.entry.forEach(to=>{to.resource?.id&&(Re[to.resource.id]=!0)}),u({...c.current,selected:Re})}function C(){let T=c.current;if(!T.searchResponse?.entry||T.searchResponse.entry.length===0)return!1;for(let J of T.searchResponse.entry)if(J.resource?.id&&!T.selected[J.resource.id])return!1;return!0}function v(T){e.onChange&&e.onChange(new Wn(T))}function R(T,J){if(Ka(T.target)||T.button===2)return;N(T);let wo=T.button===1||T.ctrlKey||T.metaKey;!wo&&e.onClick&&e.onClick(new St(J,T)),wo&&e.onAuxClick&&e.onAuxClick(new St(J,T))}function V(){return!!(e.onExport??e.onExportCsv??e.onExportTransactionBundle)}if((0,ze.useEffect)(()=>{a(!1),t.requestSchema(e.search.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.search.resourceType]),!r)return(0,D.jsx)(H.Center,{style:{width:"100%",height:"100%"},children:(0,D.jsx)(H.Loader,{})});let b=e.checkboxesEnabled,O=cs(f),ie=f.resourceType,be=i.searchResponse,Tt=be?.entry?.map(T=>T.resource),Me="subtle",S="gray",Q=16,ho=window.innerWidth<768;return(0,D.jsxs)("div",{className:o.root,"data-testid":"search-control",children:[!e.hideToolbar&&(0,D.jsxs)(H.Group,{position:"apart",mb:"xl",children:[(0,D.jsxs)(H.Group,{spacing:2,children:[(0,D.jsx)(H.Button,{compact:!0,variant:Me,color:S,leftIcon:(0,D.jsx)(Ml,{size:Q}),onClick:()=>u({...c.current,fieldEditorVisible:!0}),children:"Fields"}),(0,D.jsx)(H.Button,{compact:!0,variant:Me,color:S,leftIcon:(0,D.jsx)(Nl,{size:Q}),onClick:()=>u({...c.current,filterEditorVisible:!0}),children:"Filters"}),e.onNew&&(0,D.jsx)(H.Button,{compact:!0,variant:Me,color:S,leftIcon:(0,D.jsx)(Ll,{size:Q}),onClick:e.onNew,children:"New..."}),!ho&&V()&&(0,D.jsx)(H.Button,{compact:!0,variant:Me,color:S,leftIcon:(0,D.jsx)($l,{size:Q}),onClick:e.onExport?e.onExport:()=>u({...c.current,exportDialogVisible:!0}),children:"Export..."}),!ho&&e.onDelete&&(0,D.jsx)(H.Button,{compact:!0,variant:Me,color:S,leftIcon:(0,D.jsx)(Xr,{size:Q}),onClick:()=>e.onDelete(Object.keys(i.selected)),children:"Delete..."}),!ho&&e.onBulk&&(0,D.jsx)(H.Button,{compact:!0,variant:Me,color:S,leftIcon:(0,D.jsx)(Pl,{size:Q}),onClick:()=>e.onBulk(Object.keys(i.selected)),children:"Bulk..."})]}),(0,D.jsxs)(H.Group,{spacing:2,children:[be&&(0,D.jsxs)(H.Text,{size:"xs",color:"dimmed",children:[Mp(f,be.total),"-",Fp(f,be.total)," of"," ",`${d==="estimate"?"~":""}${be.total?.toLocaleString()}`]}),(0,D.jsx)(H.ActionIcon,{title:"Refresh",onClick:x,children:(0,D.jsx)(zl,{size:"1.125rem"})})]})]}),(0,D.jsxs)(H.Table,{className:o.table,children:[(0,D.jsxs)("thead",{children:[(0,D.jsxs)("tr",{children:[b&&(0,D.jsx)("th",{children:(0,D.jsx)("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:C(),onChange:T=>y(T)})}),O.map(T=>(0,D.jsx)("th",{children:(0,D.jsxs)(H.Menu,{shadow:"md",width:240,position:"bottom-end",children:[(0,D.jsx)(H.Menu.Target,{children:(0,D.jsx)(H.UnstyledButton,{className:o.control,children:(0,D.jsxs)(H.Group,{position:"apart",noWrap:!0,children:[(0,D.jsx)(H.Text,{weight:500,size:"sm",children:Je(T.name)}),(0,D.jsx)(H.Center,{className:o.icon,children:(0,D.jsx)(vl,{size:14,stroke:1.5})})]})})}),(0,D.jsx)(lc,{search:e.search,searchParams:T.searchParams,onPrompt:(J,wo)=>{u({...c.current,filterDialogVisible:!0,filterDialogSearchParam:J,filterDialogFilter:wo})},onChange:J=>{v(J)}})]})},T.name))]}),!e.hideFilters&&(0,D.jsxs)("tr",{children:[b&&(0,D.jsx)("th",{}),O.map(T=>(0,D.jsx)("th",{children:T.searchParams&&(0,D.jsx)(kp,{resourceType:ie,searchParams:T.searchParams,filters:e.search.filters})},T.name))]})]}),(0,D.jsx)("tbody",{children:Tt?.map(T=>T&&(0,D.jsxs)("tr",{className:o.tr,"data-testid":"search-control-row",onClick:J=>R(J,T),onAuxClick:J=>R(J,T),children:[b&&(0,D.jsx)("td",{children:(0,D.jsx)("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${T.id}`,checked:!!i.selected[T.id],onChange:J=>p(J,T.id)})}),O.map(J=>(0,D.jsx)("td",{children:ss(T,J)},J.name))]},T.id))})]}),Tt?.length===0&&(0,D.jsx)(Wo,{children:(0,D.jsx)(H.Center,{style:{height:150},children:(0,D.jsx)(H.Text,{size:"xl",color:"dimmed",children:"No results"})})}),be?.total!==void 0&&be.total>0&&(0,D.jsx)(H.Center,{m:"md",p:"md",children:(0,D.jsx)(H.Pagination,{value:Bp(f),total:Ap(f,be.total),onChange:T=>v(as(f,T)),getControlProps:T=>{switch(T){case"previous":return{"aria-label":"Previous page"};case"next":return{"aria-label":"Next page"};default:return{}}}})}),n&&(0,D.jsx)("div",{"data-testid":"search-error",children:(0,D.jsx)("pre",{style:{textAlign:"left"},children:JSON.stringify(n,void 0,2)})}),(0,D.jsx)(is,{search:e.search,visible:c.current.fieldEditorVisible,onOk:T=>{v(T),u({...c.current,fieldEditorVisible:!1})},onCancel:()=>{u({...c.current,fieldEditorVisible:!1})}}),(0,D.jsx)(us,{search:e.search,visible:c.current.filterEditorVisible,onOk:T=>{v(T),u({...c.current,filterEditorVisible:!1})},onCancel:()=>{u({...c.current,filterEditorVisible:!1})}}),(0,D.jsx)(ec,{visible:c.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{u({...c.current,exportDialogVisible:!1})}}),(0,D.jsx)(nc,{visible:c.current.filterDialogVisible,title:i.filterDialogSearchParam?.code?Je(i.filterDialogSearchParam.code):"",resourceType:ie,searchParam:i.filterDialogSearchParam,filter:i.filterDialogFilter,defaultValue:"",onOk:T=>{v(Kt(e.search,T.code,T.operator,T.value)),u({...c.current,filterDialogVisible:!1})},onCancel:()=>{u({...c.current,filterDialogVisible:!1})}},i.filterDialogSearchParam?.code)]})}var Dp=(0,ze.memo)(fc);function kp(e){let o=(e.filters??[]).filter(t=>e.searchParams.find(r=>r.code===t.code));return o.length===0?(0,D.jsx)("span",{children:"no filters"}):(0,D.jsx)(D.Fragment,{children:o.map(t=>(0,D.jsxs)("div",{children:[Dr(t.operator),"\xA0",(0,D.jsx)(Un,{resourceType:e.resourceType,filter:t})]},`filter-${t.code}-${t.operator}-${t.value}`))})}function Bp(e){return Math.floor((e.offset??0)/(e.count??Ar.DEFAULT_SEARCH_COUNT))+1}function Ap(e,o){let t=e.count??Ar.DEFAULT_SEARCH_COUNT;return Math.ceil(o/t)}function Mp(e,o){return Math.min(o,(e.offset??0)+1)}function Fp(e,o){return Math.min(o,((e.offset??0)+1)*(e.count??Ar.DEFAULT_SEARCH_COUNT))}var he=require("react/jsx-runtime");function ic(e){let o=P(),[t,r]=(0,_e.useState)(!1),[a,n]=(0,_e.useState)(),{query:l,fields:f}=e,[s,i]=(0,_e.useState)(),[u,c]=(0,_e.useState)({}),d=(0,_e.useRef)();d.current=s;let m=(0,_e.useRef)({});m.current=u,(0,_e.useEffect)(()=>{n(void 0),o.graphql(l).then(i).catch(R=>n((0,sc.normalizeOperationOutcome)(R)))},[o,l]);function x(R,V){R.stopPropagation();let O=R.target.checked,ie={...m.current};O?ie[V]=!0:delete ie[V],c(ie)}function p(R){R.stopPropagation();let b=R.target.checked,O={},ie=d.current?.data.ResourceList;b&&ie&&ie.forEach(be=>{be.id&&(O[be.id]=!0)}),c(O)}function y(){let R=d.current?.data.ResourceList;if(!R||R.length===0)return!1;for(let V of R)if(V.id&&!m.current[V.id])return!1;return!0}function C(R,V){Ka(R.target)||(N(R),R.button!==1&&e.onClick&&e.onClick(new St(V,R)),R.button===1&&e.onAuxClick&&e.onAuxClick(new St(V,R)))}if((0,_e.useEffect)(()=>{o.requestSchema(e.resourceType).then(()=>r(!0)).catch(console.log)},[o,e.resourceType]),!t)return(0,he.jsx)(Mr.Loader,{});let v=e.checkboxesEnabled;return(0,he.jsxs)("div",{onContextMenu:R=>N(R),"data-testid":"search-control",children:[(0,he.jsxs)(Mr.Table,{children:[(0,he.jsx)("thead",{children:(0,he.jsxs)("tr",{children:[v&&(0,he.jsx)("th",{children:(0,he.jsx)("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:y(),onChange:R=>p(R)})}),f.map(R=>(0,he.jsx)("th",{children:R.name},R.name))]})}),(0,he.jsx)("tbody",{children:s?.data.ResourceList.map(R=>R&&(0,he.jsxs)("tr",{"data-testid":"search-control-row",onClick:V=>C(V,R),onAuxClick:V=>C(V,R),children:[v&&(0,he.jsx)("td",{children:(0,he.jsx)("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${R.id}`,checked:!!u[R.id],onChange:V=>x(V,R.id)})}),f.map(V=>(0,he.jsx)("td",{children:(0,he.jsx)(Zu,{propertyType:V.propertyType,path:V.fhirPath,resource:R})},V.name))]},R.id))})]}),s?.data.ResourceList.length===0&&(0,he.jsx)("div",{"data-testid":"empty-search",children:"No results"}),a&&(0,he.jsx)("div",{"data-testid":"search-error",children:(0,he.jsx)("pre",{style:{textAlign:"left"},children:JSON.stringify(a,void 0,2)})}),e.onBulk&&(0,he.jsx)(Mr.Button,{onClick:()=>e.onBulk(Object.keys(m.current)),children:"Bulk..."})]})}var wp=(0,_e.memo)(ic);var tt=require("react/jsx-runtime");function rt(e){return(0,tt.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size},children:[(0,tt.jsx)("title",{children:"Medplum Logo"}),(0,tt.jsx)("path",{fill:e.fill??"#ad7136",d:"M282 67c6-16 16-29 29-40L289 0c-22 17-37 41-43 68l17 23 19-24z"}),(0,tt.jsx)("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"}),(0,tt.jsx)("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"}),(0,tt.jsx)("path",{fill:e.fill??"#40bc26",d:"M207 220a176 176 0 01-177 43A176 176 0 01251 43l1 5c17 59 2 125-45 172z"}),(0,tt.jsx)("path",{fill:e.fill??"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"})]})}var Jn=require("@mantine/core");var ae=require("@mantine/core"),ds=require("@medplum/core");var _=require("react/jsx-runtime");function uc(e){let{group:o}=e;return(0,_.jsx)(ae.Paper,{withBorder:!0,radius:"md",p:"xs",display:"flex",sx:{alignItems:"center",justifyContent:"center"},children:(0,_.jsxs)(ae.Group,{children:[o.measureScore&&(0,_.jsx)(Ep,{group:o}),!o.measureScore&&(0,_.jsx)(Op,{group:o})]})})}function cc(e){let{measure:o}=e;return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(ae.Text,{fz:"md",fw:500,mb:8,children:o.title}),(0,_.jsx)(ae.Text,{fz:"xs",c:"dimmed",mb:8,children:o.subtitle})]})}function Op(e){let{group:o}=e,t=o.population,r=t?.find(s=>(0,ds.formatCodeableConcept)(s.code)==="numerator"),a=t?.find(s=>(0,ds.formatCodeableConcept)(s.code)==="denominator"),n=r?.count,l=a?.count;if(l===0)return(0,_.jsxs)(ae.Box,{children:[(0,_.jsx)(ae.Title,{order:3,children:"Not Applicable"}),(0,_.jsx)(ae.Text,{children:`Denominator: ${l}`})]});if(n===void 0||l===void 0)return(0,_.jsxs)(ae.Box,{children:[(0,_.jsx)(ae.Title,{order:3,children:"Insufficient Data"}),(0,_.jsx)(ae.Text,{children:`Numerator: ${n}`}),(0,_.jsx)(ae.Text,{children:`Denominator: ${l}`})]});let f=n/l*100;return(0,_.jsx)(ae.RingProgress,{size:120,thickness:12,roundCaps:!0,sections:[{value:f,color:dc(f)}],label:(0,_.jsx)(ae.Flex,{justify:"center",children:(0,_.jsxs)(ae.Text,{fw:700,fz:18,children:[n," / ",l]})})})}function Ep(e){let{group:o}=e,t=o.measureScore?.unit??o.measureScore?.code;return(0,_.jsx)(_.Fragment,{children:t==="%"?(0,_.jsx)(ae.RingProgress,{size:120,thickness:12,roundCaps:!0,sections:[{value:Lp(o),color:dc(o?.measureScore?.value??0)}],label:(0,_.jsx)(ae.Flex,{justify:"center",children:(0,_.jsx)(ae.Text,{fw:700,fz:18,children:(0,_.jsx)(Ho,{value:o.measureScore})})})}):(0,_.jsx)(ae.Flex,{h:120,align:"center",children:(0,_.jsx)(ae.Title,{order:3,children:(0,_.jsx)(Ho,{value:o.measureScore})})})})}function Lp(e){let o=e.measureScore?.value,t=e.measureScore?.unit;return o?o<=1&&t==="%"?o*100:o:0}function dc(e){return e<=33?"red":e<=67?"yellow":"green"}var Fr=require("react/jsx-runtime");function Np(e){let o=Z(e.measureReport),[t]=pl("Measure",{url:o?.measure});return o?(0,Fr.jsxs)(Jn.Box,{children:[t&&(0,Fr.jsx)(cc,{measure:t}),(0,Fr.jsx)(Jn.SimpleGrid,{cols:3,breakpoints:[{maxWidth:"48rem",cols:2,spacing:"md"},{maxWidth:"36rem",cols:1,spacing:"sm"}],spacing:"md",children:o.group?.map((r,a)=>(0,Fr.jsx)(uc,{group:r},r.id??a))})]}):null}var mc=require("@mantine/core"),pc=require("@medplum/core");var $n=require("react/jsx-runtime");function Yt(e){let o=e.outcome?.issue||e.issues;return!o||o.length===0?null:(0,$n.jsx)(mc.Alert,{icon:(0,$n.jsx)(At,{size:16}),color:"red",children:o.map(t=>(0,$n.jsx)("div",{"data-testid":"text-field-error",children:(0,pc.operationOutcomeIssueToString)(t)},t.details?.text))})}var Pa=require("@medplum/core"),xc=require("react");var Ic=require("react/jsx-runtime");function Vp(e){let o=(0,xc.useCallback)((t,r,a)=>{let n=`${r}/${a}`,l=100;return Promise.allSettled([t.readHistory("Patient",a),t.search("Communication",{subject:n,_count:l}),t.search("Device",{patient:n,_count:l}),t.search("DeviceRequest",{patient:n,_count:l}),t.search("DiagnosticReport",{subject:n,_count:l}),t.search("Media",{subject:n,_count:l}),t.search("ServiceRequest",{subject:n,_count:l}),t.search("Task",{subject:n,_count:l})])},[]);return(0,Ic.jsx)(Zo,{value:e.patient,loadTimelineResources:o,createCommunication:(t,r,a)=>({resourceType:"Communication",status:"completed",subject:(0,Pa.createReference)(t),sender:(0,Pa.createReference)(r),sent:new Date().toISOString(),payload:[{contentString:a}]}),createMedia:(t,r,a)=>({resourceType:"Media",status:"completed",subject:(0,Pa.createReference)(t),operator:(0,Pa.createReference)(r),issued:new Date().toISOString(),content:a})})}var Ve=require("@mantine/core"),gc=require("@medplum/core");var fo=require("react");var q=require("react/jsx-runtime"),hc=(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 Hp(e){let o=P(),t=Z(e.value),[r,a]=(0,fo.useState)(!1),[n,l]=(0,fo.useState)(),[f,s]=(0,fo.useState)(),[i,u]=(0,fo.useState)();function c(){s(void 0)}function d(){l(void 0)}let m=(0,fo.useRef)();if(m.current=i,(0,fo.useEffect)(()=>{o.requestSchema("PlanDefinition").then(()=>a(!0)).catch(console.log)},[o]),(0,fo.useEffect)(()=>(u(Wp(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 x(p,y){u({...m.current,[p]:y})}return(0,q.jsx)("div",{children:(0,q.jsxs)(te,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(i),children:[(0,q.jsx)(Ve.TextInput,{label:"Plan Title",defaultValue:i.title,onChange:p=>x("title",p.currentTarget.value)}),(0,q.jsx)(yc,{actions:i.action||[],selectedKey:n,setSelectedKey:l,hoverKey:f,setHoverKey:s,onChange:p=>x("action",p)}),(0,q.jsx)(Ve.Button,{type:"submit",children:"Save"})]})})}function yc(e){let{classes:o}=hc(),t=(0,fo.useRef)();t.current=e.actions;function r(l){e.onChange(t.current.map(f=>f.id===l.id?l:f))}function a(l){e.onChange([...t.current,l]),e.setSelectedKey(l.id)}function n(l){e.onChange(t.current.filter(f=>f!==l))}return(0,q.jsxs)("div",{className:o.section,children:[e.actions.map(l=>(0,q.jsx)("div",{children:(0,q.jsx)(qp,{action:l,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:r,onRemove:()=>n(l)})},l.id)),(0,q.jsx)("div",{className:o.bottomActions,children:(0,q.jsx)(Ve.Anchor,{href:"#",onClick:l=>{N(l),a({id:Sc()})},children:"Add action"})})]})}function qp(e){let{classes:o,cx:t}=hc(),{action:r}=e,a=zp(r),n=e.selectedKey===e.action.id,l=e.hoverKey===e.action.id;function f(u){u.stopPropagation(),e.setSelectedKey(e.action.id)}function s(u){N(u),e.setHoverKey(e.action.id)}let i=t(o.section,{[o.editing]:n,[o.hovering]:l&&!n});return(0,q.jsxs)("div",{"data-testid":r.id,className:i,onClick:f,onMouseOver:s,onFocus:s,children:[n?(0,q.jsx)(Up,{action:r,actionType:a,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):(0,q.jsx)(Gp,{action:r,actionType:a}),(0,q.jsx)("div",{className:o.bottomActions,children:(0,q.jsx)(Ve.Anchor,{href:"#",onClick:u=>{u.preventDefault(),e.onRemove()},children:"Remove"})})]})}var ps={path:"PlanDefinition.action.timing[x]",min:0,max:1,description:"",isArray:!1,constraints:[],type:["dateTime","Period","Range","Timing"].map(e=>({code:e}))};function Gp(e){let{action:o,actionType:t}=e,[r,a]=vc(o);return(0,q.jsxs)("div",{children:[(0,q.jsxs)("div",{children:[o.title||"Untitled"," ",t&&`(${t})`]}),o.definitionCanonical&&(0,q.jsx)("div",{children:(0,q.jsx)(st,{value:{reference:o.definitionCanonical}})}),r&&(0,q.jsx)("div",{children:(0,q.jsx)(De,{property:ps,propertyType:a,value:r})})]})}function Up(e){let{action:o}=e,[t,r]=(0,fo.useState)(e.actionType);function a(n,l){e.onChange({...o,[n]:l})}return(0,q.jsxs)(Ve.Stack,{spacing:"xl",children:[(0,q.jsx)(Ve.TextInput,{name:`actionTitle-${o.id}`,label:"Title",defaultValue:o.title,onChange:n=>a("title",n.currentTarget.value)}),(0,q.jsx)(Ve.TextInput,{name:`actionDescription-${o.id}`,label:"Description",defaultValue:o.description,onChange:n=>a("description",n.currentTarget.value)}),(0,q.jsx)(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&&(0,q.jsx)(yc,{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(0,q.jsx)(_n,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:o,onChange:e.onChange});case"lab":return(0,q.jsx)(_n,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});case"questionnaire":return(0,q.jsx)(_n,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:o,onChange:e.onChange});case"task":return(0,q.jsx)(_n,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});default:return null}})(),(0,q.jsx)(we,{title:"Timing",description:"When the action should take place.",children:(0,q.jsx)(Qp,{name:"timing-"+o.id,action:o,onChange:e.onChange})})]})}function _n(e){let{id:o,definitionCanonical:t}=e.action,r=t?.startsWith(e.resourceType+"/")?{reference:t}:void 0;return(0,q.jsx)(pa,{name:o,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:a=>{a?e.onChange({...e.action,definitionCanonical:(0,gc.getReferenceString)(a)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function Qp(e){let o=e.action,t="timing",[r,a]=vc(o);return(0,q.jsx)(Qo,{property:ps,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(n,l)=>{e.onChange(pr(o,t,l??t,ps,n))},outcome:void 0})}function zp(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task"}function vc(e){return ct({type:"PlanDefinitionAction",value:e},"timing")}var ms=1;function Sc(e){if(e){if(e.startsWith("id-")){let o=parseInt(e.substring(3),10);isNaN(o)||(ms=Math.max(ms,o+1))}return e}return"id-"+ms++}function Wp(e){return{...e,action:Cc(e.action)}}function Cc(e){if(e)return e.map(o=>({...o,id:Sc(o.id),action:Cc(o.action)}))}var U=require("@mantine/core"),Yn=require("@medplum/core");var ko=require("react");var ye=require("@mantine/core"),ee=require("@medplum/core"),kc=require("react");var Ie=require("@medplum/core"),Ta=(C=>(C.group="group",C.display="display",C.question="question",C.boolean="boolean",C.decimal="decimal",C.integer="integer",C.date="date",C.dateTime="dateTime",C.time="time",C.string="string",C.text="text",C.url="url",C.choice="choice",C.openChoice="open-choice",C.attachment="attachment",C.reference="reference",C.quantity="quantity",C))(Ta||{});function xs(e){return e.type==="choice"||e.type==="open-choice"}function Is(e,o){if(!e.enableWhen)return!0;let t=e.enableBehavior??"any";for(let r of e.enableWhen){let a=bc(o,r.question);if(r.operator==="exists"&&!r.answerBoolean&&!a?.length){if(t==="any")return!0;continue}let{anyMatch:n,allMatch:l}=Jp(r,a,t);if(t==="any"&&n)return!0;if(t==="all"&&!l)return!1}return t!=="any"}function gs(e,o,t){return e.map(r=>{let a=t.answerOption?.find(l=>(0,Ie.formatCoding)(l.valueCoding)===r||l[o]===r),n=(0,Ie.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:a},"value");return{[o]:n?.value}})}function bc(e,o){if(e)for(let t of e){if(t.linkId===o)return t.answer;if(t.item){let r=bc(t.item,o);if(r)return r}}}function Xp(e,o,t){if(t==="exists")return!!e===o.value;if(e){let r=t==="="||t==="!="?t?.replace("=","~"):t,[{value:a}]=(0,Ie.evalFhirPathTyped)(`%actualAnswer ${r} %expectedAnswer`,[e],{actualAnswer:e,expectedAnswer:o});return a}else return!1}function Jp(e,o,t){let r=o||[],a=(0,Ie.getTypedPropertyValue)({type:"QuestionnaireItemEnableWhen",value:e},"answer[x]"),n=!1,l=!0;for(let f of r){let s=(0,Ie.getTypedPropertyValue)({type:"QuestionnaireResponseItemAnswer",value:f},"value[x]"),{operator:i}=e;if(Xp(s,a,i)?n=!0:l=!1,t==="any"&&n)break}return{anyMatch:n,allMatch:l}}function Da(e){let o=(0,Ie.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 ka(e,o){let t=(0,Ie.deepClone)(e),r=(0,Ie.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 hs(e,o,t){let r=(0,Ie.getExtension)(e,"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceFilter");if(!r?.valueString)return;let a=r.valueString;o?.reference&&(a=a.replaceAll("$subj",o.reference)),t?.reference&&(a=a.replaceAll("$encounter",t.reference));let n={},l=a.split("&");for(let f of l){let[s,i]=(0,Ie.splitN)(f,"=",2);n[s]=i}return n}function ys(e){return{resourceType:"QuestionnaireResponse",questionnaire:(0,Ie.getReferenceString)(e),item:Rc(e.item)}}function Rc(e){return e?.map(Kn)??[]}function Kn(e){return{id:_p(),linkId:e.linkId,text:e.text,item:Rc(e.item),answer:e.initial?.map(Kp)??[]}}var $p=1;function _p(){return"id-"+$p++}function Kp(e){return{...e}}function vs(e){return e.value.display||e.value.reference||(0,Ie.stringify)(e.value)}function Ss(e){let o=e?.item?.[0];return o&&(0,Ie.getExtension)(o,"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl")?.valueCodeableConcept?.coding?.[0]?.code==="page"?e.item.length:1}var Pc=require("react"),Zn=(0,Pc.createContext)({});var j=require("react/jsx-runtime");function Ba(e){let o=(0,kc.useContext)(Zn),t=e.item,r=e.response;function a(i){let u;Array.isArray(i)?u=i:e.index>=(e.response?.answer?.length??0)?u=(e.response?.answer??[]).concat([i]):u=(e.response?.answer??[]).map((d,m)=>m===e.index?i:d)??[],e.onChange({id:r?.id,linkId:r?.linkId,text:t.text,answer:u})}let n=t.type;if(!n)return null;let l=t.linkId;if(!l)return null;let f=t.initial&&t.initial.length>0?t.initial[0]:void 0,s=Cs(r,e.index)??(0,ee.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:f},"value");switch(n){case"display":return(0,j.jsx)("p",{children:e.item.text},e.item.linkId);case"boolean":return(0,j.jsx)(oa,{title:e.item.text,htmlFor:e.item.linkId,children:(0,j.jsx)(ye.Checkbox,{id:e.item.linkId,name:e.item.linkId,defaultChecked:s?.value,onChange:i=>a({valueBoolean:i.currentTarget.checked})})},e.item.linkId);case"decimal":return(0,j.jsx)(ye.TextInput,{type:"number",step:"any",id:l,name:l,required:t.required,defaultValue:s?.value,onChange:i=>a({valueDecimal:i.currentTarget.valueAsNumber})});case"integer":return(0,j.jsx)(ye.TextInput,{type:"number",step:1,id:l,name:l,required:t.required,defaultValue:s?.value,onChange:i=>a({valueInteger:i.currentTarget.valueAsNumber})});case"date":return(0,j.jsx)(ye.TextInput,{type:"date",id:l,name:l,required:t.required,defaultValue:s?.value,onChange:i=>a({valueDate:i.currentTarget.value})});case"dateTime":return(0,j.jsx)(ao,{name:l,required:t.required,defaultValue:s?.value,onChange:i=>a({valueDateTime:i})});case"time":return(0,j.jsx)(ye.TextInput,{type:"time",id:l,name:l,required:t.required,defaultValue:s?.value,onChange:i=>a({valueTime:i.currentTarget.value})});case"string":case"url":return(0,j.jsx)(ye.TextInput,{id:l,name:l,required:t.required,defaultValue:s?.value,onChange:i=>a({valueString:i.currentTarget.value})});case"text":return(0,j.jsx)(ye.Textarea,{id:l,name:l,required:t.required,defaultValue:s?.value,onChange:i=>a({valueString:i.currentTarget.value})});case"attachment":return(0,j.jsx)(ye.Group,{py:4,children:(0,j.jsx)(Zr,{name:l,defaultValue:s?.value,onChange:i=>a({valueAttachment:i})})});case"reference":return(0,j.jsx)(zt,{name:l,required:t.required,targetTypes:Da(t),searchCriteria:hs(t,o.subject,o.encounter),defaultValue:s?.value,onChange:i=>a({valueReference:i})});case"quantity":return(0,j.jsx)(We,{name:l,required:t.required,defaultValue:s?.value,onChange:i=>a({valueQuantity:i}),disableWheel:!0});case"choice":case"open-choice":return tx(t)&&!t.answerValueSet?(0,j.jsx)(Zp,{name:l,item:t,initial:f,response:r,onChangeAnswer:i=>a(i)}):(0,j.jsx)(Yp,{name:l,item:t,initial:f,response:r,onChangeAnswer:i=>a(i)});default:return null}}function Zp(e){let{name:o,item:t,initial:r,response:a}=e;if(!t.answerOption?.length)return(0,j.jsx)(Bc,{});let n=(0,ee.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),l=[""];for(let s of t.answerOption){let i=(0,ee.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:s},"value");l.push(Tc(i))}let f=Cs(a)??n;if(t.repeats){let{propertyName:s,data:i}=rx(e.item),u=ex(a);return(0,j.jsx)(ye.MultiSelect,{data:i,placeholder:"Select items",searchable:!0,defaultValue:u||[Tc(n)],onChange:c=>{let d=gs(c,s,t);e.onChangeAnswer(d)}})}return(0,j.jsx)(ye.NativeSelect,{id:o,name:o,onChange:s=>{let i=s.currentTarget.selectedIndex;if(i===0){e.onChangeAnswer({});return}let u=t.answerOption[i-1],c=(0,ee.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:u},"value"),d="value"+(0,ee.capitalize)(c.type);e.onChangeAnswer({[d]:c.value})},defaultValue:(0,ee.formatCoding)(f?.value)||f?.value,data:l})}function Yp(e){let{name:o,item:t,initial:r,onChangeAnswer:a,response:n}=e;return!t.answerOption?.length&&!t.answerValueSet?(0,j.jsx)(Bc,{}):t.answerValueSet?(0,j.jsx)(aa,{name:o,binding:t.answerValueSet,onChange:l=>a({valueCoding:l})}):(0,j.jsx)(jp,{name:n?.id??o,item:t,initial:r,response:n,onChangeAnswer:a})}function jp(e){let{name:o,item:t,initial:r,onChangeAnswer:a,response:n}=e,l=(0,ee.getElementDefinition)("QuestionnaireItemAnswerOption","value[x]"),f=(0,ee.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),s=[],i;if(t.answerOption)for(let d=0;d<t.answerOption.length;d++){let m=t.answerOption[d],x=`${o}-option-${d}`,p=(0,ee.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:m},"value");p?.value&&(f&&(0,ee.stringify)(p)===(0,ee.stringify)(f)&&(i=x),s.push([x,p]))}let u=Cs(n),c=ox(s,u);return(0,j.jsx)(ye.Radio.Group,{name:o,value:c??i,onChange:d=>{let m=s.find(x=>x[0]===d);if(m){let x=m[1],p="value"+(0,ee.capitalize)(x.type);a({[p]:x.value})}},children:s.map(([d,m])=>(0,j.jsx)(ye.Radio,{id:d,value:d,py:4,label:(0,j.jsx)(De,{property:l,propertyType:m.type,value:m.value})},d))})}function Bc(){return(0,j.jsx)(ye.TextInput,{disabled:!0,placeholder:"No Answers Defined"})}function Ac(e){return(0,ee.getTypedPropertyValue)({type:"QuestionnaireItemAnswer",value:e},"value")}function Cs(e,o=0){let t=e.answer;return Ac(t?.[o]??{})}function ex(e){let o=e.answer;return o?o.map(r=>Ac(r)).map(r=>(0,ee.formatCoding)(r?.value)||r?.value):[]}function ox(e,o){return e.find(t=>(0,ee.deepEquals)(t[1].value,o?.value))?.[0]}function Tc(e){if(e)return e.type==="CodeableConcept"?(0,ee.formatCodeableConcept)(e.value):e.type==="Coding"?(0,ee.formatCoding)(e.value):e.type==="Reference"?vs(e):e.value.toString()}function tx(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function rx(e){if(e.answerOption?.length===0)return{propertyName:"",data:[]};let o=e.answerOption[0],t=(0,ee.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:o},"value"),r="value"+(0,ee.capitalize)(t.type),a=(e.answerOption??[]).map(n=>({value:Dc(n,r),label:Dc(n,r)}));return{propertyName:r,data:a}}function Dc(e,o){return(0,ee.formatCoding)(e.valueCoding)||e[o]?.toString()}var k=require("react/jsx-runtime"),ax=(0,U.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 nx(e){let o=P(),t=Z(e.questionnaire),[r,a]=(0,ko.useState)(!1),[n,l]=(0,ko.useState)(),[f,s]=(0,ko.useState)(),[i,u]=(0,ko.useState)();function c(){u(void 0)}function d(){s(void 0)}(0,ko.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>a(!0)).catch(console.log)},[o]),(0,ko.useEffect)(()=>(l(ix(t??{resourceType:"Questionnaire"})),document.addEventListener("mouseover",c),document.addEventListener("click",d),()=>{document.removeEventListener("mouseover",c),document.removeEventListener("click",d)}),[t]);let m=(x,p)=>{l(x),e.autoSave&&!p&&e.onSubmit&&e.onSubmit(x)};return!r||!n?null:(0,k.jsx)("div",{children:(0,k.jsxs)(te,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(n),children:[(0,k.jsx)(Mc,{item:n,selectedKey:f,setSelectedKey:s,hoverKey:i,setHoverKey:u,onChange:m}),(0,k.jsx)(U.Button,{type:"submit",children:"Save"})]})})}function Mc(e){let{classes:o,cx:t}=ax(),r=e.item,a=e.item,n=(0,Yn.isResource)(e.item),l=n||a.type==="group",f=a.linkId??"[untitled]",s=e.selectedKey===e.item.id,i=e.hoverKey===e.item.id,u=(0,ko.useRef)();u.current=e.item;function c(b){N(b),e.setSelectedKey(e.item.id)}function d(b){N(b),e.setHoverKey(e.item.id)}function m(b){let O=u.current;e.onChange({...O,item:O.item?.map(ie=>ie.id===b.id?b:ie)})}function x(b,O){e.onChange({...e.item,item:[...e.item.item??[],b]},O)}function p(b){e.onChange({...e.item,item:e.item.item?.filter(O=>O!==b)})}function y(b,O){e.onChange({...u.current,[b]:O})}function C(b){e.onChange({...e.item,...b})}function v(b){e.onChange({...e.item,item:e.item.item?.map(O=>O===b?{...O,repeats:!O.repeats}:O)})}function R(b,O){let ie=dx(e.item.item,b,O);e.onChange({...e.item,item:ie})}let V=t(o.section,{[o.editing]:s,[o.hovering]:i&&!s});return(0,k.jsxs)("div",{"data-testid":a.linkId,className:V,onClick:c,onMouseOver:d,onFocus:d,children:[(0,k.jsx)("div",{className:o.questionBody,children:s?(0,k.jsxs)(k.Fragment,{children:[n&&(0,k.jsx)(U.TextInput,{size:"xl",defaultValue:r.title,onBlur:b=>y("title",b.currentTarget.value)}),!n&&(0,k.jsx)(U.Textarea,{autosize:!0,minRows:2,defaultValue:a.text,onBlur:b=>y("text",b.currentTarget.value)}),a.type==="reference"&&(0,k.jsx)(sx,{item:a,onChange:C}),xs(a)&&(0,k.jsx)(lx,{item:a,onChange:b=>C(b)})]}):(0,k.jsxs)(k.Fragment,{children:[r.title&&(0,k.jsx)(U.Title,{children:r.title}),a.text&&(0,k.jsx)("div",{children:a.text}),!l&&(0,k.jsx)(Ba,{item:a,index:0,onChange:()=>{},response:{}})]})}),a.item?.map((b,O)=>(0,k.jsx)("div",{children:(0,k.jsx)(Mc,{item:b,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,isFirst:O===0,isLast:O===(e.item.item??[]).length-1,setHoverKey:e.setHoverKey,onChange:m,onRemove:()=>p(b),onRepeatable:v,onMoveUp:()=>R(O,-1),onMoveDown:()=>R(O,1)})},b.id)),!l&&(0,k.jsx)("div",{className:o.topActions,children:s?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(U.TextInput,{size:"xs",className:o.linkIdInput,defaultValue:a.linkId,onBlur:b=>y("linkId",b.currentTarget.value)}),!l&&(0,k.jsx)(U.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:a.type,onChange:b=>y("type",b.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"}]})]}):(0,k.jsx)("div",{children:f})}),!n&&(0,k.jsx)(U.Box,{className:o.movementActions,children:(0,k.jsxs)(U.Box,{className:o.columnAlignment,children:[!e.isFirst&&(0,k.jsx)(U.Anchor,{href:"#",onClick:b=>{b.preventDefault(),e.onMoveUp&&e.onMoveUp()},children:(0,k.jsx)(Cl,{"data-testid":"up-button",size:15,className:o.movementIcons})}),!e.isLast&&(0,k.jsx)(U.Anchor,{href:"#",onClick:b=>{b.preventDefault(),e.onMoveDown&&e.onMoveDown()},children:(0,k.jsx)(Sl,{"data-testid":"down-button",size:15,className:o.movementIcons})})]})}),(0,k.jsxs)("div",{className:o.bottomActions,children:[l&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(U.Anchor,{href:"#",onClick:b=>{b.preventDefault(),x({id:jt(),linkId:Ps("q"),type:"string",text:"Question"})},children:"Add item"}),(0,k.jsx)(U.Anchor,{href:"#",onClick:b=>{b.preventDefault(),x({id:jt(),linkId:Ps("g"),type:"group",text:"Group"},!0)},children:"Add group"})]}),n&&(0,k.jsx)(U.Anchor,{href:"#",onClick:b=>{b.preventDefault(),x(cx(),!0)},children:"Add Page"}),s&&!n&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(U.Anchor,{href:"#",onClick:b=>{b.preventDefault(),e.onRepeatable&&e.onRepeatable(a)},children:a.repeats?"Remove Repeatable":"Make Repeatable"}),(0,k.jsx)(U.Anchor,{href:"#",onClick:b=>{b.preventDefault(),e.onRemove&&e.onRemove()},children:"Remove"})]})]})]})}function lx(e){let o=(0,Yn.getElementDefinition)("QuestionnaireItemAnswerOption","value[x]"),t=e.item.answerOption??[];return(0,k.jsxs)("div",{children:[e.item.answerValueSet!==void 0?(0,k.jsx)(U.TextInput,{placeholder:"Enter Value Set",defaultValue:e.item.answerValueSet,onChange:r=>e.onChange({...e.item,answerValueSet:r.target.value})}):(0,k.jsx)(fx,{options:t,property:o,item:e.item,onChange:e.onChange}),(0,k.jsxs)(U.Box,{display:"flex",children:[(0,k.jsx)(U.Anchor,{href:"#",onClick:r=>{N(r),e.onChange({...e.item,answerValueSet:void 0,answerOption:[...t,{id:jt()}]})},children:"Add choice"}),(0,k.jsx)(U.Space,{w:"lg"}),(0,k.jsx)(U.Anchor,{href:"#",onClick:r=>{N(r),e.onChange({...e.item,answerOption:[],answerValueSet:""})},children:"Add value set"})]})]})}function fx(e){return(0,k.jsx)("div",{children:e.options.map(o=>{let[t,r]=ct({type:"QuestionnaireItemAnswerOption",value:o},"value");return(0,k.jsxs)("div",{style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"},children:[(0,k.jsx)("div",{children:(0,k.jsx)(Qo,{name:"value[x]",property:e.property,defaultPropertyType:r,defaultValue:t,onChange:(a,n)=>{let l=[...e.options],f=l.findIndex(s=>s.id===o.id);l[f]={id:o.id,[n]:a},e.onChange({...e.item,answerOption:l})},outcome:void 0},o.id)}),(0,k.jsx)("div",{children:(0,k.jsx)(U.Anchor,{href:"#",onClick:a=>{N(a),e.onChange({...e.item,answerOption:e.options.filter(n=>n.id!==o.id)})},children:"Remove"})})]},o.id)})})}function sx(e){let o=Da(e.item)??[];return(0,k.jsxs)(k.Fragment,{children:[o.map((t,r)=>(0,k.jsxs)(U.Group,{children:[(0,k.jsx)(sr,{name:"resourceType",placeholder:"Resource Type",defaultValue:t,onChange:a=>{e.onChange(ka(e.item,o.map(n=>n===t?a:n)))}}),(0,k.jsx)(U.Anchor,{href:"#",onClick:a=>{N(a),e.onChange(ka(e.item,o.filter(n=>n!==t)))},children:"Remove"})]},`${t}-${r}`)),(0,k.jsx)(U.Anchor,{href:"#",onClick:t=>{N(t),e.onChange(ka(e.item,[...o,""]))},children:"Add Resource Type"})]})}var bs=1,Rs=1;function Ps(e){return e+bs++}function jt(){return"id-"+Rs++}function ix(e){return{...e,id:e.id||jt(),item:Fc(e.item)}}function Fc(e){if(e)return e.forEach(o=>{o.id?.match(/^id-\d+$/)&&(Rs=Math.max(Rs,parseInt(o.id.substring(3),10)+1)),o.linkId?.match(/^q\d+$/)&&(bs=Math.max(bs,parseInt(o.linkId.substring(1),10)+1))}),e.map(o=>({...o,id:o.id||jt(),item:Fc(o.item),answerOption:ux(o.answerOption)}))}function ux(e){if(e)return e.map(o=>({...o,id:o.id||jt()}))}function cx(){return{id:jt(),linkId:Ps("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 dx(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 Vc=require("@mantine/core"),el=require("@medplum/core");var or=require("react");var xo=require("@mantine/core");var wc=require("@mantine/core"),Oc=require("react");var er=require("react/jsx-runtime");function jn(e){let{item:o,response:t,onChange:r}=e,[a,n]=(0,Oc.useState)(mx(o,t??{}));if(!e.checkForQuestionEnabled(o)||!t)return null;if(o.type==="display")return(0,er.jsx)("p",{children:o.text},o.linkId);let l=o?.repeats&&o.type!=="choice"&&o.type!=="open-choice";return o.type==="boolean"?(0,er.jsx)(Ba,{item:o,response:t,onChange:f=>r([f]),index:0},o.linkId):(0,er.jsxs)(we,{htmlFor:e.item.linkId,title:e.item.text,withAsterisk:e.item.required,children:[[...Array(a)].map((f,s)=>(0,er.jsx)(Ba,{item:o,response:t,onChange:i=>r([i]),index:s},`${o.linkId}-${s}`)),l&&(0,er.jsx)(wc.Anchor,{onClick:()=>n(f=>f+1),children:"Add Item"})]},e.item.linkId)}function mx(e,o){if(e.type==="choice"||e.type==="open-choice")return 1;let t=o.answer;return t?.length?t.length:1}var wr=require("@mantine/core"),Ec=require("react");var Ke=require("react/jsx-runtime");function Ts(e){let[o,t]=(0,Ec.useState)(e.response);if(o.length===0)return null;function r(n,l){let f=o.map((s,i)=>i===l?n[0]:s);t(f),e.onChange(f)}function a(){let n=Kn(e.item);t([...o,n])}return(0,Ke.jsxs)(Ke.Fragment,{children:[o.map((n,l)=>(0,Ke.jsx)(Lc,{item:e.item,response:n,checkForQuestionEnabled:e.checkForQuestionEnabled,onChange:f=>r(f,l)},n.id)),e.item.repeats&&(0,Ke.jsx)(wr.Anchor,{onClick:a,children:`Add Group: ${e.item.text}`})]})}function Lc(e){let{response:o,checkForQuestionEnabled:t,onChange:r}=e;function a(n){let f=o.item?.map(i=>n.find(c=>c.id===i.id)??i)?.concat(n.slice(1)),s={...o,item:f};r([s])}return e.checkForQuestionEnabled(e.item)?(0,Ke.jsxs)("div",{children:[e.item.text&&(0,Ke.jsx)(wr.Title,{order:3,mb:"md",children:e.item.text}),(0,Ke.jsx)(wr.Stack,{children:e.item.item?.map(n=>n.type==="group"?n.repeats?(0,Ke.jsx)(Ts,{item:n,response:o.item?.filter(l=>l.linkId===n.linkId)??[],checkForQuestionEnabled:t,onChange:a},n.linkId):(0,Ke.jsx)(Lc,{item:n,checkForQuestionEnabled:t,response:o.item?.find(l=>l.linkId===n.linkId)??{},onChange:a},n.linkId):(0,Ke.jsx)(jn,{item:n,response:o.item?.find(l=>l.linkId===n.linkId),onChange:a,checkForQuestionEnabled:t},n.linkId))})]},e.item.linkId):null}var He=require("react/jsx-runtime");function Nc(e){let{items:o,response:t,activePage:r,onChange:a,nextStep:n,prevStep:l,numberOfPages:f,renderPages:s,submitButtonText:i,checkForQuestionEnabled:u}=e,c=o.map(d=>{let m=t?.item?.filter(p=>p.linkId===d.linkId)??[],x=d.type==="group"?(0,He.jsx)(Ts,{item:d,response:m,onChange:a,checkForQuestionEnabled:u},d.linkId):(0,He.jsx)(jn,{item:d,response:m?.[0],onChange:a,checkForQuestionEnabled:u},d.linkId);return s?(0,He.jsx)(xo.Stepper.Step,{label:d.text,children:x},d.linkId):x});return(0,He.jsxs)(He.Fragment,{children:[s&&(0,He.jsx)(xo.Stepper,{active:r??0,allowNextStepsSelect:!1,p:6,children:c}),!s&&(0,He.jsx)(xo.Stack,{children:c}),(0,He.jsx)(px,{activePage:r??0,numberOfPages:f,nextStep:n,prevStep:l,submitButtonText:i})]})}function px(e){let o=e.activePage>0,t=e.activePage<e.numberOfPages-1,r=e.activePage===e.numberOfPages-1;return(0,He.jsxs)(xo.Group,{position:"right",mt:"xl",spacing:"xs",children:[o&&(0,He.jsx)(xo.Button,{onClick:e.prevStep,children:"Back"}),t&&(0,He.jsx)(xo.Button,{onClick:a=>{a.currentTarget.closest("form").reportValidity()&&e.nextStep()},children:"Next"}),r&&(0,He.jsx)(xo.Button,{type:"submit",children:e.submitButtonText??"Submit"})]})}var Or=require("react/jsx-runtime");function Ds(e){let o=P(),t=o.getProfile(),[r,a]=(0,or.useState)(!1),n=Z(e.questionnaire),[l,f]=(0,or.useState)(),[s,i]=(0,or.useState)(0);(0,or.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>o.requestSchema("QuestionnaireResponse")).then(()=>a(!0)).catch(console.log)},[o]),(0,or.useEffect)(()=>{f(n?ys(n):void 0)},[n]);function u(p){let y=l?.item??[],v={resourceType:"QuestionnaireResponse",item:Hc(y,Array.isArray(p)?p:[p])};f(v)}function c(p){return Is(p,l?.item??[])}if(!r||!n)return null;let d=Ss(n),m=()=>i(p=>p+1),x=()=>i(p=>p-1);return(0,Or.jsx)(Zn.Provider,{value:{subject:e.subject,encounter:e.encounter},children:(0,Or.jsxs)(te,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&l&&e.onSubmit({...l,questionnaire:(0,el.getReferenceString)(n),subject:e.subject,source:(0,el.createReference)(t),authored:new Date().toISOString(),status:"completed"})},children:[n.title&&(0,Or.jsx)(Vc.Title,{children:n.title}),(0,Or.jsx)(Nc,{items:n.item??[],response:l,onChange:u,renderPages:d>1,activePage:s,numberOfPages:d,submitButtonText:e.submitButtonText,checkForQuestionEnabled:c,nextStep:m,prevStep:x})]})})}function xx(e,o){let t=Hc(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 Hc(e,o){let t=[],r=new Set;for(let a of e){let n=a.id,l=o.find(f=>f.id===n);l?(t.push(xx(a,l)),r.add(l.id)):t.push(a)}for(let a of o)r.has(a.id)||t.push(a);return t}var K=require("@mantine/core"),Aa=require("@medplum/core");var Er=require("react");var W=require("react/jsx-runtime"),Ix=(0,K.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"}})),gx=["gender","age","gestationalAge","context","appliesTo","category"],hx={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function yx(e){e=Object.assign(hx,e);let o=e.definition,[t,r]=(0,Er.useState)([]),[a,n]=(0,Er.useState)(1),[l,f]=(0,Er.useState)(1);return(0,Er.useEffect)(()=>{let x=Sx(o,f);r(Cx(x.qualifiedInterval||[],n))},[o]),(0,W.jsxs)(te,{testid:"reference-range-editor",onSubmit:s,children:[(0,W.jsx)(K.Stack,{children:t.map(x=>(0,W.jsx)(qc,{unit:Rx(o.quantitativeDetails?.unit),onChange:c,onAdd:d,onRemove:m,onRemoveGroup:u,intervalGroup:x},`group-${x.id}`))}),(0,W.jsx)(K.ActionIcon,{title:"Add Group",size:"sm",onClick:x=>{N(x),i({id:`group-id-${a}`,filters:{},intervals:[]}),n(p=>p+1)},children:(0,W.jsx)(nt,{})}),(0,W.jsx)(K.Group,{position:"right",children:(0,W.jsx)(K.Button,{type:"submit",children:"Save"})})]});function s(){let x=t.flatMap(p=>p.intervals).filter(p=>!Px(p));e.onSubmit({...o,qualifiedInterval:x})}function i(x){r(p=>[...p,x])}function u(x){r(p=>p.filter(y=>y.id!==x.id))}function c(x,p){r(y=>{y=[...y];let C=y.find(R=>R.id===x),v=C?.intervals.findIndex(R=>R.id===p.id);return v!==void 0&&C?.intervals[v]&&(C.intervals[v]=p),y})}function d(x,p){p.id===void 0&&(p.id=`id-${l}`,f(y=>y+1)),r(y=>{y=[...y];let C=y.findIndex(v=>v.id===x);if(C!==-1){let v={...y[C]};p={...p,...v.filters},v.intervals=[...v.intervals,p],y[C]=v}return y})}function m(x,p){r(y=>{y=[...y];let C=y.find(v=>v.id===x);return C&&(C.intervals=C.intervals.filter(v=>v.id!==p.id)),y})}}function qc(e){let{intervalGroup:o,unit:t}=e,{classes:r}=Ix();return(0,W.jsx)(Wo,{"data-testid":o.id,className:r.section,children:(0,W.jsxs)(K.Stack,{spacing:"lg",children:[(0,W.jsx)(K.Group,{position:"right",children:(0,W.jsx)(K.ActionIcon,{title:"Remove Group","data-testid":`remove-group-button-${o.id}`,size:"sm",onClick:a=>{N(a),e.onRemoveGroup(o)},children:(0,W.jsx)(vo,{})},`remove-group-button-${o.id}`)}),(0,W.jsx)(vx,{intervalGroup:o,onChange:e.onChange}),(0,W.jsx)(K.Divider,{}),o.intervals.map(a=>(0,W.jsxs)(K.Stack,{spacing:"xs",children:[(0,W.jsxs)(K.Group,{children:[(0,W.jsx)(K.TextInput,{"data-testid":`condition-${a.id}`,defaultValue:a.condition,label:"Condition: ",size:"sm",onChange:n=>{N(n),e.onChange(o.id,{...a,condition:n.currentTarget.value.trim()})}},`condition-${a.id}`),(0,W.jsx)(K.ActionIcon,{title:"Remove Interval",size:"sm","data-testid":`remove-interval-${a.id}`,onClick:n=>{N(n),e.onRemove(o.id,a)},children:(0,W.jsx)(vo,{})},`remove-interval-${a.id}`)]}),(0,W.jsx)(yr,{onChange:n=>{e.onChange(o.id,{...a,range:n})},name:`range-${a.id}`,defaultValue:a.range},`range-${a.id}`)]},`interval-${a.id}`)),(0,W.jsx)(K.ActionIcon,{title:"Add Interval",size:"sm",onClick:a=>{N(a),e.onAdd(o.id,{range:{low:{unit:t},high:{unit:t}}})},children:(0,W.jsx)(nt,{})})]})})}function vx(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(0,W.jsxs)(K.Stack,{style:{maxWidth:"50%"},children:[(0,W.jsx)(K.Group,{children:(0,W.jsx)(K.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})}}})}),(0,W.jsxs)(K.Group,{spacing:"xs",children:[(0,W.jsx)(K.Text,{component:"label",htmlFor:`div-age-${o.id}`,children:"Age:"}),(0,W.jsx)("div",{id:`div-age-${o.id}`,children:(0,W.jsx)(yr,{name:`age-${o.id}`,defaultValue:o.filters.age,onChange:r=>{for(let a of o.intervals)t(o.id,{...a,age:r})}},`age-${o.id}`)})]}),(0,W.jsx)(K.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"}]}})}}}),(0,W.jsx)(K.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 Sx(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 Cx(e,o){let t=1,r={};for(let a of e){let n=bx(a);n in r||(r[n]={id:`group-id-${t++}`,filters:Object.fromEntries(gx.map(l=>[l,a[l]])),intervals:[]}),r[n].intervals.push(a)}return o(t),Object.values(r)}function bx(e){return[`gender=${e.gender}`,`age=${(0,Aa.formatRange)(e.age)}`,`gestationalAge=${(0,Aa.formatRange)(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map(t=>t.text).join("+")}`,`category=${e.category}`].join(":")}function Rx(e){return e&&((0,Aa.getCodeBySystem)(e,"http://unitsofmeasure.org")||e.text)}function Px(e){return e.range?.low?.value===void 0&&e.range?.high?.value===void 0}var Bo=require("@mantine/core"),ol=require("@medplum/core");var tr=require("react");var ke=require("react/jsx-runtime");function Tx(e){let o=P(),t=Z(e.value),[r,a]=(0,tr.useState)(!1),[n,l]=(0,tr.useState)();if((0,tr.useEffect)(()=>{t&&!r&&(o.executeBatch(f(t)).then(l).catch(console.log),a(!0))},[o,t,r]),!t||!n)return null;return(0,ke.jsx)(Bo.Grid,{children:t.action?.map((i,u)=>{let c=i.resource&&s(i.resource),d=c?.input?.[0]?.valueReference,m=c?.output?.[0]?.valueReference;return(0,ke.jsxs)(tr.Fragment,{children:[(0,ke.jsx)(Bo.Grid.Col,{span:1,p:"md",children:c?.status==="completed"?(0,ke.jsx)(Bl,{}):(0,ke.jsx)(Xl,{color:"gray"})}),(0,ke.jsxs)(Bo.Grid.Col,{span:9,p:"xs",children:[(0,ke.jsx)(Bo.Text,{weight:500,children:i.title}),i.description&&(0,ke.jsx)("div",{children:i.description}),(0,ke.jsxs)("div",{children:["Last edited by\xA0",(0,ke.jsx)(co,{value:c?.meta?.author}),"\xA0on\xA0",(0,ol.formatDateTime)(c?.meta?.lastUpdated)]}),(0,ke.jsxs)("div",{children:["Status: ",(0,ke.jsx)(ya,{status:c?.status||"unknown"})]})]}),(0,ke.jsxs)(Bo.Grid.Col,{span:2,p:"md",children:[d&&!m&&(0,ke.jsx)(Bo.Button,{onClick:()=>e.onStart(c,d),children:"Start"}),d&&m&&(0,ke.jsx)(Bo.Button,{onClick:()=>e.onEdit(c,d,m),children:"Edit"})]})]},`action-${u}`)})});function f(i){let u=[];if(i.action)for(let c of i.action)c.resource?.reference&&u.push({request:{method:"GET",url:c.resource.reference}});return{resourceType:"Bundle",type:"batch",entry:u}}function s(i){for(let u of n?.entry)if(u.resource&&i.reference===(0,ol.getReferenceString)(u.resource))return u.resource}}var Wc=require("@mantine/core");var rl=require("react");var Gc=require("@medplum/core");function tl(e,o){let t=Dx(e,o);return kx(t,e,o)}function Dx(e,o){let t=e.length,r=o.length,a=t+r+1,n=1+2*a,l=n/2|0,f=new Array(n);f[l+1]={i:0,j:-1,prev:void 0,snake:!0};for(let s=0;s<a;s++){for(let i=-s;i<=s;i+=2){let u=l+i,c=u+1,d=u-1,m=f[c],x=f[d],p,y=0;i===-s||i!==s&&x.i<m.i?(y=m.i,p=m):(y=x.i+1,p=x),f[d]=void 0;let C=y-i,v={i:y,j:C,prev:Bx(p),snake:!1};for(;y<t&&C<r&&e[y]===o[C];)y++,C++;if(y>v.i&&(v={i:y,j:C,prev:v,snake:!0}),f[u]=v,y>=t&&C>=r)return f[u]}f[l+s-1]=void 0}}function kx(e,o,t){let r=[],a=e;for(a.snake&&(a=a.prev);a?.prev&&a.prev.j>=0;){let n=a.i,l=a.j;a=a.prev;let f=a.i,s=a.j,i={position:f,lines:o.slice(f,n)},u={position:s,lines:t.slice(s,l)},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 Bx(e){return e&&!e.snake&&e.prev?e.prev:e}function Uc(e){let o=e.entry.filter(r=>!!r.resource).map(r=>({meta:r.resource?.meta,lines:(0,Gc.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 Ax(t,o),Mx(t),t}function Ax(e,o){for(let t=1;t<o.length;t++){let r=tl(o[t-1].lines,o[t].lines);for(let a of r){let n=a.original.position,l=a.original.lines,f=a.revised.lines;if((a.type==="delete"||a.type==="change")&&e.splice(n,l.length),a.type==="insert"||a.type==="change")for(let s=0;s<a.revised.lines.length;s++)e.splice(n+s,0,{id:o[t].meta.versionId,meta:o[t].meta,value:f[s],span:1})}}}function Mx(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 Qc(e,o){return`/${e.resourceType}/${e.id}/_history/${o}`}function zc(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 l=Math.floor(o/60);return l>0?Lr(l,"minute"):Lr(o,"second")}function Lr(e,o){return`${e} ${e===1?o:o+"s"} ago`}var Be=require("react/jsx-runtime"),Fx=(0,Wc.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 wx(e){let{classes:o}=Fx(),t=P(),[r,a]=(0,rl.useState)(e.history);if((0,rl.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(0,Be.jsx)("div",{children:"Loading..."});let n=r.entry?.[0]?.resource;if(!n)return null;let l=Uc(r);return(0,Be.jsx)("div",{className:o.container,children:(0,Be.jsx)("table",{className:o.root,children:(0,Be.jsx)("tbody",{children:l.map((f,s)=>(0,Be.jsxs)("tr",{className:f.span>0?o.startRow:o.normalRow,children:[f.span>0&&(0,Be.jsxs)(Be.Fragment,{children:[(0,Be.jsx)("td",{className:o.author,rowSpan:f.span,children:(0,Be.jsx)(Xo,{value:f.meta.author,link:!0})}),(0,Be.jsx)("td",{className:o.dateTime,rowSpan:f.span,children:(0,Be.jsx)(Pe,{to:Qc(n,f.meta.versionId),children:zc(f.meta.lastUpdated)})})]}),(0,Be.jsx)("td",{className:o.lineNumber,children:s+1}),(0,Be.jsx)("td",{className:o.line,children:(0,Be.jsx)("pre",{className:o.pre,children:f.value})})]},"row-"+s))})})})}var Xc=require("@mantine/core"),ks=require("@medplum/core");var Io=require("react/jsx-runtime"),Ox=(0,Xc.createStyles)(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function Ex(e){let o=e.original,t=e.revised;e.ignoreMeta&&(o={...o,meta:void 0},t={...t,meta:void 0});let r=(0,ks.stringify)(o,!0).match(/[^\r\n]+/g),a=(0,ks.stringify)(t,!0).match(/[^\r\n]+/g),n=tl(r,a);return(0,Io.jsx)("pre",{style:{color:"gray"},children:n.map((l,f)=>(0,Io.jsx)(Lx,{delta:l},"delta"+f))})}function Lx(e){let{classes:o}=Ox();return(0,Io.jsxs)(Io.Fragment,{children:["...",(0,Io.jsx)("br",{}),e.delta.original.lines.length>0&&(0,Io.jsx)("div",{className:o.removed,children:e.delta.original.lines.join(`
|
|
66
|
-
|
|
67
|
-
`)}),"...",(0,Io.jsx)("br",{})]})}var Ao=require("@mantine/core"),al=require("@medplum/core");var Ma=require("react");var Ze=require("react/jsx-runtime");function Nx(e){let{outcome:o}=e,t=P(),r=Z(e.defaultValue),[a,n]=(0,Ma.useState)(),[l,f]=(0,Ma.useState)();return(0,Ma.useEffect)(()=>{if(r)if(f((0,al.deepClone)(r)),e.profileUrl){let s=e.profileUrl;t.requestProfileSchema(e.profileUrl).then(()=>{let i=(0,al.tryGetProfile)(s);i?n(i.name):console.log(`Schema not found for ${s}`)}).catch(console.log)}else{let s=e.schemaName??r?.resourceType;t.requestSchema(s).then(()=>n(s)).catch(console.log)}},[t,r,e.schemaName,e.profileUrl]),!a||!l?(0,Ze.jsx)("div",{children:"Loading..."}):(0,Ze.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:s=>{s.preventDefault(),e.onSubmit&&e.onSubmit(l)},children:[(0,Ze.jsxs)(Ao.Stack,{mb:"xl",children:[(0,Ze.jsx)(we,{title:"Resource Type",htmlFor:"resourceType",outcome:o,children:(0,Ze.jsx)(Ao.TextInput,{name:"resourceType",defaultValue:l.resourceType,disabled:!0})}),(0,Ze.jsx)(we,{title:"ID",htmlFor:"id",outcome:o,children:(0,Ze.jsx)(Ao.TextInput,{name:"id",defaultValue:l.id,disabled:!0})})]}),(0,Ze.jsx)(Gt,{typeName:a,defaultValue:l,outcome:o,onChange:f,profileUrl:e.profileUrl}),(0,Ze.jsxs)(Ao.Group,{position:"right",mt:"xl",children:[(0,Ze.jsx)(Ao.Button,{type:"submit",children:"OK"}),e.onDelete&&(0,Ze.jsx)(Ao.Button,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(l)},children:"Delete"})]})]})}var Jc=require("@mantine/core"),nl=require("@medplum/core");var ll=require("react");var Ce=require("react/jsx-runtime");function Vx(e){let o=P(),[t,r]=(0,ll.useState)(e.history);return(0,ll.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?(0,Ce.jsxs)(Jc.Table,{withBorder:!0,withColumnBorders:!0,children:[(0,Ce.jsx)("thead",{children:(0,Ce.jsxs)("tr",{children:[(0,Ce.jsx)("th",{children:"Author"}),(0,Ce.jsx)("th",{children:"Date"}),(0,Ce.jsx)("th",{children:"Version"})]})}),(0,Ce.jsx)("tbody",{children:t.entry?.map((a,n)=>(0,Ce.jsx)(Hx,{entry:a},"entry-"+n))})]}):(0,Ce.jsx)("div",{children:"Loading..."})}function Hx(e){let{response:o,resource:t}=e.entry;return t?(0,Ce.jsxs)("tr",{children:[(0,Ce.jsx)("td",{children:(0,Ce.jsx)(Xo,{value:t.meta?.author,link:!0})}),(0,Ce.jsx)("td",{children:(0,nl.formatDateTime)(t.meta?.lastUpdated)}),(0,Ce.jsx)("td",{children:(0,Ce.jsx)(Pe,{to:qx(t),children:t.meta?.versionId})})]}):(0,Ce.jsx)("tr",{children:(0,Ce.jsx)("td",{colSpan:3,children:(0,nl.normalizeErrorString)(o?.outcome)})})}function qx(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}var Ct=require("@mantine/core"),fl=require("@medplum/core");var Fa=require("react");var ce=require("react/jsx-runtime"),Gx=(0,Ct.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 Ux(e){let{classes:o}=Gx(),t=Z(e.schedule),r=Z(e.questionnaire),[a,n]=(0,Fa.useState)(kn()),[l,f]=(0,Fa.useState)(),[s,i]=(0,Fa.useState)(),[u,c]=(0,Fa.useState)(),[d]=xl("Slot",new URLSearchParams([["_count",(30*24).toString()],["schedule",(0,fl.isReference)(e.schedule)?e.schedule.reference:(0,fl.getReferenceString)(e.schedule)],["start","gt"+Qx(a)],["start","lt"+zx(a)]]));if(!t||!d||!r)return null;let m=t.actor?.[0];return(0,ce.jsxs)("div",{className:o.container,"data-testid":"scheduler",children:[(0,ce.jsxs)("div",{className:o.info,children:[m&&(0,ce.jsx)(Fe,{value:m,size:"xl"}),m&&(0,ce.jsx)(Ct.Text,{size:"xl",weight:500,children:(0,ce.jsx)(co,{value:m})}),(0,ce.jsx)("p",{children:"1 hour"}),l&&(0,ce.jsx)("p",{children:l.toLocaleDateString()}),s&&(0,ce.jsx)("p",{children:$c(new Date(s.start))})]}),(0,ce.jsxs)("div",{className:o.selection,children:[!l&&(0,ce.jsxs)("div",{children:[(0,ce.jsx)("h3",{children:"Select date"}),(0,ce.jsx)(Bf,{slots:d,onChangeMonth:n,onClick:f})]}),l&&!s&&(0,ce.jsxs)("div",{children:[(0,ce.jsx)("h3",{children:"Select time"}),(0,ce.jsx)(Ct.Stack,{children:d.map(x=>{let p=new Date(x.start);return p.getTime()>l.getTime()&&p.getTime()<l.getTime()+24*3600*1e3&&(0,ce.jsx)("div",{children:(0,ce.jsx)(Ct.Button,{variant:"outline",style:{width:150},onClick:()=>i(x),children:$c(p)})},x.id)})})]}),l&&s&&!u&&(0,ce.jsx)(Ds,{questionnaire:r,submitButtonText:"Next",onSubmit:c}),l&&s&&u&&(0,ce.jsxs)("div",{children:[(0,ce.jsx)("h3",{children:"You're all set!"}),(0,ce.jsx)("p",{children:"Check your email for a calendar invite."})]})]})]})}function Qx(e){return _c(e.getTime())}function zx(e){return _c(e.getTime()+31*24*60*60*1e3)}function _c(e){let o=new Date(Math.max(Date.now(),e));return o.setHours(0,0,0,0),o.toISOString()}function $c(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}var wa=require("@medplum/core");var Kc=require("react/jsx-runtime");function Wx(e){return(0,Kc.jsx)(Zo,{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,wa.createReference)(o)],subject:o.subject,sender:(0,wa.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",basedOn:[(0,wa.createReference)(o)],subject:o.subject,operator:(0,wa.createReference)(t),issued:new Date().toISOString(),content:r})})}var od=require("@medplum/core");var Ea=require("react");var Ae=require("@mantine/core"),Zc=require("@medplum/core"),Yc=require("react");var Ye=require("react/jsx-runtime");function sl(e){let o=P(),[t,r]=(0,Yc.useState)();return(0,Ye.jsxs)(te,{style:{maxWidth:400},onSubmit:async a=>{try{e.handleAuthResponse(await o.startNewProject({login:e.login,projectName:a.projectName}))}catch(n){r((0,Zc.normalizeOperationOutcome)(n))}},children:[(0,Ye.jsxs)(Ae.Center,{sx:{flexDirection:"column"},children:[(0,Ye.jsx)(rt,{size:32}),(0,Ye.jsx)(Ae.Title,{children:"Create project"})]}),(0,Ye.jsxs)(Ae.Stack,{spacing:"xl",children:[(0,Ye.jsx)(Ae.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:$(t,"firstName")}),(0,Ye.jsxs)(Ae.Text,{color:"dimmed",size:"xs",children:["By clicking submit you agree to the Medplum"," ",(0,Ye.jsx)(Ae.Anchor,{href:"https://www.medplum.com/privacy",children:"Privacy\xA0Policy"})," and ",(0,Ye.jsx)(Ae.Anchor,{href:"https://www.medplum.com/terms",children:"Terms\xA0of\xA0Service"}),"."]})]}),(0,Ye.jsx)(Ae.Group,{position:"right",mt:"xl",noWrap:!0,children:(0,Ye.jsx)(Ae.Button,{type:"submit",children:"Create project"})})]})}var oe=require("@mantine/core"),Ms=require("@medplum/core");var cl=require("react");var bt=require("react");function Oa(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)}var jc=require("react/jsx-runtime");function il(e){let o=P(),{googleClientId:t,handleGoogleCredential:r}=e,a=(0,bt.useRef)(null),[n,l]=(0,bt.useState)(typeof google<"u"),[f,s]=(0,bt.useState)(!1),[i,u]=(0,bt.useState)(!1);return(0,bt.useEffect)(()=>{if(typeof google>"u"){Oa("https://accounts.google.com/gsi/client",()=>l(!0));return}f||(google.accounts.id.initialize({client_id:t,callback:r}),s(!0)),a.current&&!i&&(google.accounts.id.renderButton(a.current,{}),u(!0))},[o,t,f,n,a,i,r]),t?(0,jc.jsx)("div",{ref:a}):null}function ul(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 Bs(e){typeof grecaptcha>"u"&&Oa("https://www.google.com/recaptcha/api.js?render="+e)}function As(e){return new Promise((o,t)=>{grecaptcha.ready(async()=>{try{o(await grecaptcha.execute(e,{action:"submit"}))}catch(r){t(r)}})})}var fe=require("react/jsx-runtime");function ed(e){let o=ul(e.googleClientId),t=e.recaptchaSiteKey,r=P(),[a,n]=(0,cl.useState)(),l=ta(a,void 0);return(0,cl.useEffect)(()=>{t&&Bs(t)},[t]),(0,fe.jsxs)(te,{style:{maxWidth:400},onSubmit:async f=>{try{let s="";t&&(s=await As(t)),e.handleAuthResponse(await r.startNewUser({projectId:e.projectId,clientId:e.clientId,firstName:f.firstName,lastName:f.lastName,email:f.email,password:f.password,remember:f.remember==="true",recaptchaSiteKey:t,recaptchaToken:s}))}catch(s){n((0,Ms.normalizeOperationOutcome)(s))}},children:[(0,fe.jsx)(oe.Center,{sx:{flexDirection:"column"},children:e.children}),(0,fe.jsx)(Yt,{issues:l}),o&&(0,fe.jsxs)(fe.Fragment,{children:[(0,fe.jsx)(oe.Group,{position:"center",p:"xl",style:{height:70},children:(0,fe.jsx)(il,{googleClientId:o,handleGoogleCredential:async f=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:f.clientId,googleCredential:f.credential,createUser:!0}))}catch(s){n((0,Ms.normalizeOperationOutcome)(s))}}})}),(0,fe.jsx)(oe.Divider,{label:"or",labelPosition:"center",my:"lg"})]}),(0,fe.jsxs)(oe.Stack,{spacing:"xl",children:[(0,fe.jsx)(oe.TextInput,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:$(a,"firstName")}),(0,fe.jsx)(oe.TextInput,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:$(a,"lastName")}),(0,fe.jsx)(oe.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:$(a,"email")}),(0,fe.jsx)(oe.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,error:$(a,"password")}),(0,fe.jsxs)(oe.Text,{color:"dimmed",size:"xs",children:["By clicking submit you agree to the Medplum"," ",(0,fe.jsx)(oe.Anchor,{href:"https://www.medplum.com/privacy",children:"Privacy\xA0Policy"})," and ",(0,fe.jsx)(oe.Anchor,{href:"https://www.medplum.com/terms",children:"Terms\xA0of\xA0Service"}),"."]}),(0,fe.jsxs)(oe.Text,{color:"dimmed",size:"xs",children:["This site is protected by reCAPTCHA and the Google"," ",(0,fe.jsx)(oe.Anchor,{href:"https://policies.google.com/privacy",children:"Privacy\xA0Policy"})," and ",(0,fe.jsx)(oe.Anchor,{href:"https://policies.google.com/terms",children:"Terms\xA0of\xA0Service"})," apply."]})]}),(0,fe.jsxs)(oe.Group,{position:"apart",mt:"xl",noWrap:!0,children:[(0,fe.jsx)(oe.Checkbox,{name:"remember",label:"Remember me",size:"xs"}),(0,fe.jsx)(oe.Button,{type:"submit",children:"Create account"})]})]})}var Nr=require("react/jsx-runtime");function Xx(e){let{type:o,projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,onSuccess:l}=e,f=P(),[s,i]=(0,Ea.useState)(),[u,c]=(0,Ea.useState)();(0,Ea.useEffect)(()=>{o==="patient"&&s&&f.startNewPatient({login:s,projectId:t}).then(m=>f.processCode(m.code)).then(()=>l()).catch(m=>c((0,od.normalizeOperationOutcome)(m)))},[f,o,t,s,l]);function d(m){m.code?f.processCode(m.code).then(()=>l()).catch(console.log):m.login&&i(m.login)}return(0,Nr.jsxs)(Sa,{width:450,children:[u&&(0,Nr.jsx)("pre",{children:JSON.stringify(u,null,2)}),!s&&(0,Nr.jsx)(ed,{projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,handleAuthResponse:d,children:e.children}),s&&o==="project"&&(0,Nr.jsx)(sl,{login:s,handleAuthResponse:d})]})}var Fs=require("@mantine/notifications"),ws=require("@medplum/core");var Mo=require("react");var de=require("@mantine/core"),td=require("@medplum/core");var Rt=require("react");var ne=require("react/jsx-runtime");function rd(e){let[o,t]=(0,Rt.useState)();return o?(0,ne.jsx)($x,{email:o,...e}):(0,ne.jsx)(Jx,{setEmail:t,...e})}function Jx(e){let{setEmail:o,onRegister:t,handleAuthResponse:r,children:a,disableEmailAuth:n,...l}=e,f=P(),s=!e.disableGoogleAuth&&ul(e.googleClientId),i=(0,Rt.useCallback)(async d=>{if(!d.authorizeUrl)return!1;let m=JSON.stringify({...await f.ensureCodeChallenge(l),domain:d.domain}),x=new URL(d.authorizeUrl);return x.searchParams.set("state",m),window.location.assign(x.toString()),!0},[f,l]),u=(0,Rt.useCallback)(async d=>{let m=await f.post("auth/method",{email:d.email});await i(m)||o(d.email)},[f,i,o]),c=(0,Rt.useCallback)(async d=>{let m=await f.startGoogleLogin({...l,googleCredential:d.credential});await i(m)||r(m)},[f,l,i,r]);return(0,ne.jsxs)(te,{style:{maxWidth:400},onSubmit:u,children:[(0,ne.jsx)(de.Center,{sx:{flexDirection:"column"},children:a}),s&&(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsx)(de.Group,{position:"center",p:"xl",style:{height:70},children:(0,ne.jsx)(il,{googleClientId:s,handleGoogleCredential:c})}),!n&&(0,ne.jsx)(de.Divider,{label:"or",labelPosition:"center",my:"lg"})]}),!n&&(0,ne.jsx)(de.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),(0,ne.jsxs)(de.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0,children:[(0,ne.jsx)("div",{children:t&&(0,ne.jsx)(de.Anchor,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs",children:"Register"})}),!n&&(0,ne.jsx)(de.Button,{type:"submit",children:"Next"})]})]})}function $x(e){let{onForgotPassword:o,handleAuthResponse:t,children:r,...a}=e,n=P(),[l,f]=(0,Rt.useState)(),s=ta(l,void 0),i=(0,Rt.useCallback)(u=>{n.startLogin({...a,password:u.password,remember:u.remember==="on"}).then(t).catch(c=>f((0,td.normalizeOperationOutcome)(c)))},[n,a,t]);return(0,ne.jsxs)(te,{style:{maxWidth:400},onSubmit:i,children:[(0,ne.jsx)(de.Center,{sx:{flexDirection:"column"},children:r}),(0,ne.jsx)(Yt,{issues:s}),(0,ne.jsx)(de.Stack,{spacing:"xl",children:(0,ne.jsx)(de.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:$(l,"password")})}),(0,ne.jsxs)(de.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0,children:[o&&(0,ne.jsx)(de.Anchor,{component:"button",type:"button",color:"dimmed",onClick:o,size:"xs",children:"Forgot password"}),(0,ne.jsx)(de.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),(0,ne.jsx)(de.Button,{type:"submit",children:"Sign in"})]})]})}var qe=require("@mantine/core"),ad=require("@medplum/core"),nd=require("react");var je=require("react/jsx-runtime");function ld(e){let o=P(),[t,r]=(0,nd.useState)();return(0,je.jsxs)(qe.Stack,{children:[(0,je.jsxs)(qe.Center,{sx:{flexDirection:"column"},children:[(0,je.jsx)(rt,{size:32}),(0,je.jsx)(qe.Title,{order:3,children:"Choose profile"})]}),(0,je.jsx)(Yt,{outcome:t}),e.memberships.map(a=>(0,je.jsx)(qe.UnstyledButton,{onClick:()=>{o.post("auth/profile",{login:e.login,profile:a.id}).then(e.handleAuthResponse).catch(n=>r((0,ad.normalizeOperationOutcome)(n)))},children:(0,je.jsxs)(qe.Group,{children:[(0,je.jsx)(qe.Avatar,{radius:"xl"}),(0,je.jsxs)("div",{style:{flex:1},children:[(0,je.jsx)(qe.Text,{size:"sm",weight:500,children:a.profile?.display}),(0,je.jsx)(qe.Text,{color:"dimmed",size:"xs",children:a.project?.display})]})]})},a.id))]})}var eo=require("@mantine/core");var go=require("react/jsx-runtime");function fd(e){let o=P();return(0,go.jsx)(te,{style:{maxWidth:400},onSubmit:t=>{o.post("auth/scope",{login:e.login,scope:Object.keys(t).join(" ")}).then(e.handleAuthResponse).catch(console.log)},children:(0,go.jsxs)(eo.Stack,{children:[(0,go.jsxs)(eo.Center,{sx:{flexDirection:"column"},children:[(0,go.jsx)(rt,{size:32}),(0,go.jsx)(eo.Title,{children:"Choose scope"})]}),(0,go.jsx)(eo.Stack,{children:(e.scope??"openid").split(" ").map(t=>(0,go.jsx)(eo.Checkbox,{id:t,name:t,label:t,defaultChecked:!0},t))}),(0,go.jsx)(eo.Group,{position:"right",mt:"xl",children:(0,go.jsx)(eo.Button,{type:"submit",children:"Set scope"})})]})})}var Ge=require("@mantine/core"),sd=require("@medplum/core");var id=require("react");var oo=require("react/jsx-runtime");function ud(e){let o=P(),[t,r]=(0,id.useState)();return(0,oo.jsx)(te,{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,sd.normalizeErrorString)(n)))},children:(0,oo.jsxs)(Ge.Stack,{children:[(0,oo.jsxs)(Ge.Center,{sx:{flexDirection:"column"},children:[(0,oo.jsx)(rt,{size:32}),(0,oo.jsx)(Ge.Title,{children:"Enter MFA code"})]}),t&&(0,oo.jsx)(Ge.Alert,{icon:(0,oo.jsx)(At,{size:16}),title:"Error",color:"red",children:t}),(0,oo.jsx)(Ge.Stack,{children:(0,oo.jsx)(Ge.TextInput,{name:"token",label:"MFA code",required:!0})}),(0,oo.jsx)(Ge.Group,{position:"right",mt:"xl",children:(0,oo.jsx)(Ge.Button,{type:"submit",children:"Submit code"})})]})})}var Pt=require("react/jsx-runtime");function _x(e){let{login:o,chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:n,onCode:l,...f}=e,s=P(),[i,u]=(0,Mo.useState)(),[c,d]=(0,Mo.useState)(!1),[m,x]=(0,Mo.useState)(),p=(0,Mo.useCallback)(v=>{l?l(v):s.processCode(v).then(()=>{r&&r()}).catch(R=>(0,Fs.showNotification)({color:"red",message:(0,ws.normalizeErrorString)(R)}))},[s,l,r]),y=(0,Mo.useCallback)(v=>{d(!!v.mfaRequired),v.login&&u(v.login),v.memberships&&x(v.memberships),v.code&&(t?x(void 0):p(v.code))},[t,p]),C=(0,Mo.useCallback)(v=>{p(v.code)},[p]);return(0,Mo.useEffect)(()=>{o&&!i&&s.get("auth/login/"+o).then(y).catch(v=>(0,Fs.showNotification)({color:"red",message:(0,ws.normalizeErrorString)(v)}))},[s,o,i,y]),(0,Pt.jsx)(Sa,{width:450,children:i?c?(0,Pt.jsx)(ud,{login:i,handleAuthResponse:y}):m?(0,Pt.jsx)(ld,{login:i,memberships:m,handleAuthResponse:y}):e.projectId==="new"?(0,Pt.jsx)(sl,{login:i,handleAuthResponse:y}):e.chooseScopes?(0,Pt.jsx)(fd,{login:i,scope:e.scope,handleAuthResponse:C}):(0,Pt.jsx)("div",{children:"Success"}):(0,Pt.jsx)(rd,{onForgotPassword:a,onRegister:n,handleAuthResponse:y,disableGoogleAuth:e.disableGoogleAuth,disableEmailAuth:e.disableEmailAuth,...f,children:e.children})})}
|
|
64
|
+
}`.replace(/\s+/g," ")}function Ld(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),Vd(Nd(t),o).slice(0,5)}function Nd(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 Vd(e,o){return e.sort((t,r)=>ai(r,o)-ai(t,o))}function ai(e,o){let t=0;if(e.identifier)for(let r of e.identifier)t=Math.max(t,ni(r.value,o));if(e.resourceType==="Patient"&&e.name)for(let r of e.name)t=Math.max(t,ni((0,No.formatHumanName)(r),o));return t}function ni(e,o){if(!e)return 0;let t=e.toLowerCase().indexOf(o.toLowerCase());return t<0?0:100-t}var z=require("react/jsx-runtime"),Hd=(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 of(e){let o=tr(),{medplum:t,profile:r,navigate:a}=o,n=t.getLogins(),{classes:l,cx:f}=Hd(),[i,s]=(0,fi.useState)(!1);return(0,z.jsx)(X.Header,{height:60,p:8,style:{zIndex:101},children:(0,z.jsxs)(X.Group,{position:"apart",children:[(0,z.jsxs)(X.Group,{spacing:"xs",children:[(0,z.jsx)(X.UnstyledButton,{className:l.logoButton,onClick:e.navbarToggle,children:e.logo}),!e.headerSearchDisabled&&(0,z.jsx)(li,{pathname:e.pathname,searchParams:e.searchParams})]}),(0,z.jsxs)(X.Menu,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:i,onClose:()=>s(!1),children:[(0,z.jsx)(X.Menu.Target,{children:(0,z.jsx)(X.UnstyledButton,{className:f(l.user,{[l.userActive]:i}),onClick:()=>s(u=>!u),children:(0,z.jsxs)(X.Group,{spacing:7,children:[(0,z.jsx)(we,{value:r,radius:"xl",size:24}),(0,z.jsx)(X.Text,{size:"sm",className:l.userName,children:(0,Kr.formatHumanName)(r?.name?.[0])}),(0,z.jsx)(Ml,{size:12,stroke:1.5})]})})}),(0,z.jsxs)(X.Menu.Dropdown,{children:[(0,z.jsxs)(X.Stack,{align:"center",p:"xl",children:[(0,z.jsx)(we,{size:"xl",radius:100,value:o.profile}),(0,z.jsx)($r,{value:o.profile?.name?.[0]}),(0,z.jsx)(X.Text,{color:"dimmed",size:"xs",children:t.getActiveLogin()?.project.display})]}),n.length>1&&(0,z.jsx)(X.Menu.Divider,{}),n.map(u=>u.profile.reference!==(0,Kr.getReferenceString)(o.profile)&&(0,z.jsx)(X.Menu.Item,{onClick:()=>{t.setActiveLogin(u).then(()=>window.location.reload()).catch(console.log)},children:(0,z.jsxs)(X.Group,{children:[(0,z.jsx)(X.Avatar,{radius:"xl"}),(0,z.jsxs)("div",{style:{flex:1},children:[(0,z.jsx)(X.Text,{size:"sm",weight:500,children:u.profile.display}),(0,z.jsx)(X.Text,{color:"dimmed",size:"xs",children:u.project.display})]})]})},u.profile.reference)),(0,z.jsx)(X.Menu.Divider,{}),(0,z.jsx)(X.Menu.Item,{icon:(0,z.jsx)($l,{size:14,stroke:1.5}),onClick:()=>a("/signin"),children:"Add another account"}),(0,z.jsx)(X.Menu.Item,{icon:(0,z.jsx)(nr,{size:14,stroke:1.5}),onClick:()=>a(`/${(0,Kr.getReferenceString)(r)}`),children:"Account settings"}),(0,z.jsx)(X.Menu.Item,{icon:(0,z.jsx)(ql,{size:14,stroke:1.5}),onClick:async()=>{await t.signOut(),a("/signin")},children:"Sign out"}),(0,z.jsx)(X.Text,{size:"xs",color:"dimmed",align:"center",children:e.version})]})]})]})})}var Ge=require("@mantine/core");var nn=require("react");var ao=require("@mantine/core"),rf=require("@mantine/notifications"),rn=require("@medplum/core");function tf(e){let o={};for(let t of Array.from(e.elements))t instanceof HTMLInputElement?qd(o,t):t instanceof HTMLTextAreaElement?o[t.name]=t.value:t instanceof HTMLSelectElement&&Gd(o,t);return o}function qd(e,o){o.disabled||(o.type==="checkbox"||o.type==="radio")&&!o.checked||(e[o.name]=o.value)}function Gd(e,o){e[o.name]=o.value}var si=require("react/jsx-runtime");function ae(e){return(0,si.jsx)("form",{style:e.style,"data-testid":e.testid,onSubmit:o=>{o.preventDefault();let t=tf(o.target);e.onSubmit&&e.onSubmit(t)},children:e.children})}var Co=require("react/jsx-runtime");function ii(e){let o=P(),t=o.getUserConfiguration();function r(a){let{menuname:n,bookmarkname:l}=a,f=`${e.pathname}?${e.searchParams.toString()}`,i=(0,rn.deepClone)(t);i.menu?.find(({title:u})=>u===n)?.link?.push({name:l,target:f}),o.updateResource(i).then(u=>{t.menu=u.menu,o.dispatchEvent({type:"change"}),(0,rf.showNotification)({color:"green",message:"Success"}),e.onOk()}).catch(u=>{(0,rf.showNotification)({color:"red",message:(0,rn.normalizeErrorString)(u)})})}return(0,Co.jsx)(ao.Modal,{title:"Add Bookmark",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel,children:(0,Co.jsx)(ae,{onSubmit:r,children:(0,Co.jsxs)(ao.Stack,{children:[(0,Co.jsx)(Ud,{config:t}),(0,Co.jsx)(ao.TextInput,{label:"Bookmark Name",type:"text",name:"bookmarkname",placeholder:"Bookmark Name",withAsterisk:!0}),(0,Co.jsx)(ao.Group,{position:"right",children:(0,Co.jsx)(ao.Button,{mt:"sm",type:"submit",children:"OK"})})]})})})}function Ud(e){function o(r){return r?.menu?.map(a=>a.title)}let t=o(e.config);return(0,Co.jsx)(ao.NativeSelect,{name:"menuname",defaultValue:t[0],label:"Select Menu Option",placeholder:"Menu",data:t,withAsterisk:!0})}var an=require("react");var di=require("react");var ui=require("react");var ci=require("react/jsx-runtime");function af(e){return typeof e.code=="string"?e.code:JSON.stringify(e)}function Qd(e){return typeof e.display=="string"?e.display:af(e)}function zd(e){return{value:af(e),label:Qd(e),resource:e}}function Wd(e){return{code:e,display:e}}function lr(e){let o=P(),{binding:t,creatable:r,clearable:a,...n}=e,l=(0,ui.useCallback)(async(f,i)=>{if(!t)return[];let u=(await o.searchValueSet(t,f,{signal:i})).expansion?.contains,c=[];for(let d of u)d.code&&!c.some(m=>m.code===d.code)&&c.push(d);return c},[o,t]);return(0,ci.jsx)(Ft,{...n,creatable:r??!0,clearable:a??!0,toKey:af,toOption:zd,loadOptions:l,onCreate:Wd,getCreateLabel:r===!1?void 0:f=>`+ Create ${f}`})}var mi=require("react/jsx-runtime");function Zr(e){let[o,t]=(0,di.useState)(e.defaultValue);function r(a){let n=a[0],l=Jd(n);t(l),e.onChange&&e.onChange(l)}return(0,mi.jsx)(lr,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:Xd(o),onChange:r,creatable:e.creatable,maxSelectedValues:e.maxSelectedValues??1,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable})}function Xd(e){return e?{code:e}:void 0}function Jd(e){return e?.code}var pi=require("react/jsx-runtime");function fr(e){let[o,t]=(0,an.useState)(e.defaultValue),r=e.onChange,a=(0,an.useCallback)(n=>{t(n),r&&r(n)},[r]);return(0,pi.jsx)(Zr,{"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 ve=require("react/jsx-runtime"),xi=(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 nf(e){let{classes:o}=xi(),t=Oo(),r=Kd(e.pathname,e.searchParams,e.menus),[a,n]=(0,nn.useState)(!1);function l(i,s){i.stopPropagation(),i.preventDefault(),t(s),window.innerWidth<768&&e.closeNavbar()}function f(i){i&&t(`/${i}`)}return(0,ve.jsxs)(ve.Fragment,{children:[(0,ve.jsx)(Ge.Navbar,{width:{sm:250},p:"xs",children:(0,ve.jsxs)(Ge.ScrollArea,{children:[!e.resourceTypeSearchDisabled&&(0,ve.jsx)(Ge.Navbar.Section,{mb:"sm",children:(0,ve.jsx)(fr,{name:"resourceType",placeholder:"Resource Type",onChange:i=>f(i)},window.location.pathname)}),(0,ve.jsxs)(Ge.Navbar.Section,{grow:!0,children:[e.menus?.map(i=>(0,ve.jsxs)(nn.Fragment,{children:[(0,ve.jsx)(Ge.Text,{className:o.menuTitle,children:i.title}),i.links?.map(s=>(0,ve.jsxs)($d,{to:s.href,active:s.href===r?.href,onClick:u=>l(u,s.href),children:[(0,ve.jsx)(_d,{to:s.href,icon:s.icon}),(0,ve.jsx)("span",{children:s.label})]},s.href))]},`menu-${i.title}`)),e.displayAddBookmark&&(0,ve.jsx)(Ge.Button,{variant:"subtle",size:"xs",mt:"xl",leftIcon:(0,ve.jsx)(zl,{size:"0.75rem"}),onClick:()=>n(!0),children:"Add Bookmark"})]})]})}),e.pathname&&e.searchParams&&(0,ve.jsx)(ii,{pathname:e.pathname,searchParams:e.searchParams,visible:a,onOk:()=>n(!1),onCancel:()=>n(!1)})]})}function $d(e){let{classes:o,cx:t}=xi();return(0,ve.jsx)(Pe,{onClick:e.onClick,to:e.to,className:t(o.link,{[o.linkActive]:e.active}),children:e.children})}function _d(e){return e.icon?e.icon:(0,ve.jsx)(Ge.Space,{w:30})}function Kd(e,o,t){if(!e||!o||!t)return;let r,a=0;for(let n of t)if(n.links)for(let l of n.links){let f=Zd(e,o,l.href);f>a&&(a=f,r=l)}return r}function Zd(e,o,t){let r=new URL(t,"https://example.com");if(e!==r.pathname)return 0;let a=["_count","_offset"];for(let[l,f]of r.searchParams.entries())if(!a.includes(l)&&o.get(l)!==f)return 0;let n=1;for(let[l,f]of o.entries())a.includes(l)||r.searchParams.get(l)===f&&n++;return n}var lt=require("react/jsx-runtime");function Yd(e){let o=(0,ln.useMantineTheme)(),[t,r]=(0,sr.useState)(localStorage.navbarOpen==="true"),a=P(),n=Gr();(0,sr.useEffect)(()=>{function s(){(0,Ii.showNotification)({color:"red",message:"No connection to server",autoClose:!1})}return a.addEventListener("offline",s),()=>a.removeEventListener("offline",s)},[a]);function l(s){localStorage.navbarOpen=s.toString(),r(s)}function f(){l(!1)}function i(){l(!t)}return a.isLoading()?(0,lt.jsx)(Ka,{}):(0,lt.jsx)(ln.AppShell,{styles:{main:{background:o.colorScheme==="dark"?o.colors.dark[8]:o.colors.gray[0]}},padding:0,fixed:!0,header:n&&(0,lt.jsx)(of,{pathname:e.pathname,searchParams:e.searchParams,headerSearchDisabled:e.headerSearchDisabled,logo:e.logo,version:e.version,navbarToggle:i}),navbar:n&&t?(0,lt.jsx)(nf,{pathname:e.pathname,searchParams:e.searchParams,menus:e.menus,closeNavbar:f,displayAddBookmark:e.displayAddBookmark,resourceTypeSearchDisabled:e.resourceTypeSearchDisabled}):void 0,children:(0,lt.jsx)(Mt,{children:(0,lt.jsx)(sr.Suspense,{fallback:(0,lt.jsx)(Ka,{}),children:e.children})},`${e.pathname}?${e.searchParams?.toString()}`)})}var gi=require("@mantine/core"),bo=require("react/jsx-runtime");function co(e){let{contentType:o,url:t,title:r}=e.value??{};return t?(0,bo.jsxs)("div",{"data-testid":"attachment-display",children:[o?.startsWith("image/")&&(0,bo.jsx)("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:t,alt:r}),o?.startsWith("video/")&&(0,bo.jsx)("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0,children:(0,bo.jsx)("source",{type:o,src:t})}),o==="application/pdf"&&(0,bo.jsx)("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400},children:(0,bo.jsx)("iframe",{width:"100%",height:"400",src:t+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})}),(0,bo.jsx)("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"},children:(0,bo.jsx)(gi.Anchor,{href:t,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer",download:jd(r),children:r||"Download"})})]}):null}function jd(e){return e?.includes(".")?e:void 0}var fn=require("react/jsx-runtime");function lf(e){return(0,fn.jsx)("div",{children:e.values?.map((o,t)=>(0,fn.jsx)("div",{children:(0,fn.jsx)(co,{value:o,maxWidth:e.maxWidth})},"attatchment-"+t))})}var ff=require("@mantine/core");var sn=require("react");var hi=require("react");var yi=require("@medplum/core"),ir=require("react/jsx-runtime");function Ot(e){let o=P(),t=(0,hi.useRef)(null);function r(l){V(l),t.current?.click()}function a(l){V(l);let f=l.target.files;f&&Array.from(f).forEach(n)}function n(l){if(!l||!l.name)return;e.onUploadStart&&e.onUploadStart();let i=l.name,s=l.type||"application/octet-stream";o.createBinary(l,i,s,e.onUploadProgress).then(u=>{e.onUpload({contentType:u.contentType,url:u.url,title:i})}).catch(u=>{e.onUploadError&&e.onUploadError((0,yi.normalizeOperationOutcome)(u))})}return(0,ir.jsxs)(ir.Fragment,{children:[(0,ir.jsx)("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:t,onChange:l=>a(l)}),e.children({onClick:r})]})}var be=require("react/jsx-runtime");function sf(e){let[o,t]=(0,sn.useState)(e.defaultValue??[]),r=(0,sn.useRef)();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return(0,be.jsxs)("table",{style:{width:"100%"},children:[(0,be.jsxs)("colgroup",{children:[(0,be.jsx)("col",{width:"97%"}),(0,be.jsx)("col",{width:"3%"})]}),(0,be.jsxs)("tbody",{children:[o.map((n,l)=>(0,be.jsxs)("tr",{children:[(0,be.jsx)("td",{children:(0,be.jsx)(co,{value:n,maxWidth:200})}),(0,be.jsx)("td",{children:(0,be.jsx)(ff.ActionIcon,{title:"Remove",size:"sm",onClick:f=>{V(f);let i=o.slice();i.splice(l,1),a(i)},children:(0,be.jsx)(nt,{})})})]},`${l}-${o.length}`)),(0,be.jsxs)("tr",{children:[(0,be.jsx)("td",{}),(0,be.jsx)("td",{children:(0,be.jsx)(Ot,{onUpload:n=>{a([...r.current,n])},children:n=>(0,be.jsx)(ff.ActionIcon,{...n,title:"Add",size:"sm",color:"green",children:(0,be.jsx)(zr,{size:16})})})})]})]})]})}var uf=require("@mantine/core"),vi=require("react");var Vo=require("react/jsx-runtime");function Yr(e){let[o,t]=(0,vi.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return o?(0,Vo.jsxs)(Vo.Fragment,{children:[(0,Vo.jsx)(co,{value:o,maxWidth:200}),(0,Vo.jsx)(uf.Button,{onClick:a=>{V(a),r(void 0)},children:"Remove"})]}):(0,Vo.jsx)(Ot,{onUpload:r,children:a=>(0,Vo.jsx)(uf.Button,{...a,children:"Upload..."})})}var yn=require("@medplum/core");var un=["meta","implicitRules","contained","extension","modifierExtension"],cn=["language","text"];var Si=require("@mantine/core"),ft=require("react/jsx-runtime"),em=(0,Si.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 cf(e){let{children:o,compact:t}=e,{classes:r,cx:a}=em();return(0,ft.jsx)("dl",{className:a(r.root,{[r.compact]:t}),children:o})}function df(e){return(0,ft.jsxs)(ft.Fragment,{children:[(0,ft.jsx)("dt",{children:e.term}),(0,ft.jsx)("dd",{children:e.children})]})}var ut=require("@mantine/core"),O=require("@medplum/core");var Ci=require("@medplum/core"),dn=require("react/jsx-runtime");function Et(e){return(0,dn.jsx)(dn.Fragment,{children:(0,Ci.formatCodeableConcept)(e.value)})}var bi=require("@medplum/core"),mn=require("react/jsx-runtime");function mf(e){return(0,mn.jsx)(mn.Fragment,{children:(0,bi.formatCoding)(e.value)})}var pn=require("react/jsx-runtime");function jr(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("]")),(0,pn.jsx)(pn.Fragment,{children:t.join("").trim()})}var ur=require("react/jsx-runtime");function pf(e){let o=e.value;return o?(0,ur.jsxs)(ur.Fragment,{children:[o.name,o.name&&": ",o.telecom?.map(t=>(0,ur.jsx)(jr,{value:t},`telecom-${o.name}-${t.value}`))]}):null}var Ri=require("react/jsx-runtime");function xf(e){return(0,Ri.jsxs)("div",{children:[e.value?.system,": ",e.value?.value]})}var Pi=require("@medplum/core"),xn=require("react/jsx-runtime");function If(e){return(0,xn.jsx)(xn.Fragment,{children:(0,Pi.formatMoney)(e.value)})}var Ti=require("@medplum/core"),In=require("react/jsx-runtime");function Ho(e){return(0,In.jsx)(In.Fragment,{children:(0,Ti.formatQuantity)(e.value)})}var Di=require("@medplum/core"),gn=require("react/jsx-runtime");function ea(e){return(0,gn.jsx)(gn.Fragment,{children:(0,Di.formatRange)(e.value)})}var Lt=require("react/jsx-runtime");function ki(e){let o=e.value;return o?(0,Lt.jsxs)(Lt.Fragment,{children:[(0,Lt.jsx)(Ho,{value:o.numerator}),"\xA0/\xA0",(0,Lt.jsx)(Ho,{value:o.denominator})]}):null}var Bi=require("@medplum/core");var oa=require("react/jsx-runtime");function st(e){if(!e.value)return null;let o=e.value.display||e.value.reference||(0,Bi.stringify)(e.value);return e.link!==!1&&e.value.reference?(0,oa.jsx)(Pe,{to:e.value,children:o}):(0,oa.jsx)(oa.Fragment,{children:o})}var it=require("react/jsx-runtime");function gf(e){let{property:o,values:t}=e,r=o.type[0].code;return e.values?(0,it.jsx)(it.Fragment,{children:t.map((a,n)=>(0,it.jsx)("div",{children:(0,it.jsx)(ke,{arrayElement:!0,property:o,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link})},`${n}-${t.length}`))}):(0,it.jsx)(it.Fragment,{})}var L=require("react/jsx-runtime");function ke(e){let{property:o,propertyType:t,value:r}=e;if(o?.path?.endsWith(".id"))return(0,L.jsxs)(ut.Box,{component:"div",sx:{display:"flex",gap:3,alignItems:"center"},children:[r,!(0,O.isEmpty)(r)&&(0,L.jsx)(ut.CopyButton,{value:r,timeout:2e3,children:({copied:n,copy:l})=>(0,L.jsx)(ut.Tooltip,{label:n?"Copied":"Copy",withArrow:!0,position:"right",children:(0,L.jsx)(ut.ActionIcon,{color:n?"teal":"gray",onClick:l,children:n?(0,L.jsx)(Qr,{size:"1rem"}):(0,L.jsx)(wl,{size:"1rem"})})})})]});if(o?.max&&o.max>1&&!e.arrayElement)return t===O.PropertyType.Attachment?(0,L.jsx)(lf,{values:r,maxWidth:e.maxWidth}):(0,L.jsx)(gf,{property:o,values:r,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(t){case O.PropertyType.boolean:return(0,L.jsx)(L.Fragment,{children:r===void 0?"":(!!r).toString()});case O.PropertyType.SystemString:case O.PropertyType.string:return(0,L.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:r});case O.PropertyType.code:case O.PropertyType.date:case O.PropertyType.decimal:case O.PropertyType.id:case O.PropertyType.integer:case O.PropertyType.positiveInt:case O.PropertyType.unsignedInt:case O.PropertyType.uri:case O.PropertyType.url:return(0,L.jsx)(L.Fragment,{children:r});case O.PropertyType.canonical:return(0,L.jsx)(st,{value:{reference:r},link:e.link});case O.PropertyType.dateTime:case O.PropertyType.instant:return(0,L.jsx)(L.Fragment,{children:(0,O.formatDateTime)(r)});case O.PropertyType.markdown:return(0,L.jsx)("pre",{children:r});case O.PropertyType.Address:return(0,L.jsx)(hl,{value:r});case O.PropertyType.Annotation:return(0,L.jsx)(L.Fragment,{children:r?.text});case O.PropertyType.Attachment:return(0,L.jsx)(co,{value:r,maxWidth:e.maxWidth});case O.PropertyType.CodeableConcept:return(0,L.jsx)(Et,{value:r});case O.PropertyType.Coding:return(0,L.jsx)(mf,{value:r});case O.PropertyType.ContactDetail:return(0,L.jsx)(pf,{value:r});case O.PropertyType.ContactPoint:return(0,L.jsx)(jr,{value:r});case O.PropertyType.HumanName:return(0,L.jsx)($r,{value:r});case O.PropertyType.Identifier:return(0,L.jsx)(xf,{value:r});case O.PropertyType.Money:return(0,L.jsx)(If,{value:r});case O.PropertyType.Period:return(0,L.jsx)(L.Fragment,{children:(0,O.formatPeriod)(r)});case O.PropertyType.Quantity:case O.PropertyType.Duration:return(0,L.jsx)(Ho,{value:r});case O.PropertyType.Range:return(0,L.jsx)(ea,{value:r});case O.PropertyType.Ratio:return(0,L.jsx)(ki,{value:r});case O.PropertyType.Reference:return(0,L.jsx)(st,{value:r,link:e.link});case O.PropertyType.Timing:return(0,L.jsx)(L.Fragment,{children:(0,O.formatTiming)(r)});case O.PropertyType.Dosage:case O.PropertyType.UsageContext:return(0,L.jsx)(cr,{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(0,L.jsx)(cr,{value:{type:o.type[0].code,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}var hn=require("@medplum/core");function ct(e,o){let t=(0,hn.getTypedPropertyValue)(e,o);return t?Array.isArray(t)?[t.map(r=>r.value),t[0].type]:[t.value,t.type]:[void 0,"undefined"]}function Ai(e,o,t){let r=(0,hn.getTypedPropertyValueWithSchema)(e,o,t);return r?Array.isArray(r)?[r.map(a=>a.value),r[0].type]:[r.value,r.type]:[void 0,"undefined"]}var Nt=require("react/jsx-runtime");function cr(e){let o=e.value,t=o.value;if(!t)return null;let r=o.type,a=(0,yn.tryGetDataType)(r);return a?typeof t=="object"&&"name"in t&&Object.keys(t).length===1&&typeof t.name=="string"?(0,Nt.jsx)("div",{children:t.name}):(0,Nt.jsx)(cf,{compact:e.compact,children:Object.entries(a.elements).map(n=>{let[l,f]=n;if(un.includes(l)||cn.includes(l)&&f.path.split(".").length===2)return null;let[i,s]=ct(o,l);return e.ignoreMissingValues&&(!i||Array.isArray(i)&&i.length===0)?null:(0,Nt.jsx)(df,{term:(0,yn.getPathDisplayName)(l),children:(0,Nt.jsx)(ke,{property:f,propertyType:s,value:i,ignoreMissingValues:e.ignoreMissingValues,link:e.link})},l)})}):(0,Nt.jsxs)("div",{children:[r,"\xA0not implemented"]})}var du=require("@medplum/core"),Xt=require("react");var cu=require("@mantine/core"),ha=require("@medplum/core"),kn=require("react");var vn=require("@mantine/core"),wi=require("react");var Mi=ml(require("react"),1);function om(e,o){let t=e.lastIndexOf(o);if(t===-1)return["",e];let r=e.substring(0,t),a=e.substring(t+o.length);return[r,a]}var mo=Mi.default.createContext({profileUrl:void 0,debugMode:!1,getModifiedNestedElement:()=>{}});function Fi(e,o,t){let r=Object.create(null);function a(l){return r[l]}let n=e?.elements;if(n){let l=new Set;for(let[f,i]of Object.entries(n)){let[s,u]=om(f,".");l.has(s)&&(r[e.type+"."+f]=i),l.add(f)}}return{debugMode:t??!1,profileUrl:o,getModifiedNestedElement:a}}var dr=require("react/jsx-runtime");function ta(e){let{debugMode:o}=(0,wi.useContext)(mo),t;return o&&e.fhirPath?t=`${e.title} - ${e.fhirPath}`:t=e.title,(0,dr.jsxs)(vn.Group,{noWrap:!0,"data-testid":e.testId,children:[(0,dr.jsx)("div",{children:e.children}),(0,dr.jsx)("div",{children:(0,dr.jsx)(vn.Input.Wrapper,{id:e.htmlFor,label:t,description:e.description,withAsterisk:e.withAsterisk,children:null})})]})}var Ei=require("@mantine/core"),Li=require("react");function $(e,o){return e?.issue?.filter(t=>Oi(t.expression?.[0],o))?.map(t=>t.details?.text)?.join(`
|
|
65
|
+
`)}function ra(e,o){return e?.issue?.filter(t=>Oi(t.expression?.[0],o))}function Oi(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}var Ni=require("react/jsx-runtime");function Oe(e){let{debugMode:o}=(0,Li.useContext)(mo),t;return o&&e.fhirPath?t=`${e.title} - ${e.fhirPath}`:t=e.title,(0,Ni.jsx)(Ei.Input.Wrapper,{id:e.htmlFor,label:t,description:e.description,withAsterisk:e.withAsterisk,error:$(e.outcome,e.htmlFor),"data-testid":e.testId,children:e.children})}var aa=require("@medplum/core");function mr(e,o,t,r,a){let n=r.type;if(n.length>1)for(let l of n){let f=o.replace("[x]",(0,aa.capitalize)(l.code));f in e&&delete e[f]}return e[t]=a,e}function tm(e){return!!e&&!(0,aa.isEmpty)(e.url)&&!(0,aa.isEmpty)(e.name)}var fo=require("@mantine/core"),E=require("@medplum/core"),iu=require("react");var Vi=require("react");var Hi=require("react/jsx-runtime");function hf(e){let[o,t]=(0,Vi.useState)(e.defaultValue);function r(a){let n=am(a);t(n),e.onChange&&e.onChange(n)}return(0,Hi.jsx)(lr,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&rm(o),maxSelectedValues:1,onChange:r})}function rm(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function am(e){if(e.length!==0)return{coding:e.map(o=>({system:o.system,code:o.code,display:o.display}))}}var qi=require("react");var Gi=require("react/jsx-runtime");function na(e){let[o,t]=(0,qi.useState)(e.defaultValue);function r(a){let n=a[0],l=n&&lm(n);t(l),e.onChange&&e.onChange(l)}return(0,Gi.jsx)(lr,{binding:e.binding,name:e.name,placeholder:e.placeholder,defaultValue:o&&nm(o),maxSelectedValues:1,onChange:r})}function nm(e){return{system:e.system,code:e.code,display:e.display}}function lm(e){return{system:e.system,code:e.code,display:e.display}}var Sn=require("@mantine/core"),Cn=require("react");var Vt=require("@mantine/core"),dt=require("react");var pr=require("react/jsx-runtime");function la(e){let{path:o,outcome:t}=e,{getModifiedNestedElement:r}=(0,dt.useContext)(mo),[a,n]=(0,dt.useState)(e.defaultValue),l=(0,dt.useRef)();l.current=a;let[f,i,s]=(0,dt.useMemo)(()=>["system","use","value"].map(p=>r(o+"."+p)),[r,o]);function u(p){p&&Object.keys(p).length===0&&(p=void 0),n(p),e.onChange&&e.onChange(p)}function c(p){let x={...l.current,system:p};p||delete x.system,u(x)}function d(p){let x={...l.current,use:p};p||delete x.use,u(x)}function m(p){let x={...l.current,value:p};p||delete x.value,u(x)}return(0,pr.jsxs)(Vt.Group,{spacing:"xs",grow:!0,noWrap:!0,align:"flex-start",children:[(0,pr.jsx)(Vt.NativeSelect,{"data-testid":"system",defaultValue:a?.system,required:(f?.min??0)>0,onChange:p=>c(p.currentTarget.value),data:["","email","phone","fax","pager","sms","other"],error:$(t,o+".system")}),(0,pr.jsx)(Vt.NativeSelect,{"data-testid":"use",defaultValue:a?.use,required:(i?.min??0)>0,onChange:p=>d(p.currentTarget.value),data:["","home","work","temp","old","mobile"],error:$(t,o+".use")}),(0,pr.jsx)(Vt.TextInput,{placeholder:"Value",defaultValue:a?.value,required:(s?.min??0)>0,onChange:p=>m(p.currentTarget.value),error:$(t,o+".value")})]})}var fa=require("react/jsx-runtime");function yf(e){let[o,t]=(0,Cn.useState)(e.defaultValue),r=(0,Cn.useRef)();r.current=o;function a(f){t(f),e.onChange&&e.onChange(f)}function n(f){let i={...r.current,name:f};f||delete i.name,a(i)}function l(f){let i={...r.current,telecom:f&&[f]};f||delete i.telecom,a(i)}return(0,fa.jsxs)(Sn.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,fa.jsx)(Sn.TextInput,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:o?.name,onChange:f=>n(f.currentTarget.value)}),(0,fa.jsx)(la,{name:e.name+"-telecom",path:e.path+".telecom",defaultValue:o?.telecom?.[0],onChange:l,outcome:e.outcome})]})}var Ui=require("@mantine/core");var vf=require("@medplum/core");function Sf(e){if(!e)return"";let o=new Date(e);return(0,vf.isValidDate)(o)?o.toLocaleDateString("sv")+"T"+o.toLocaleTimeString("sv"):""}function Cf(e){if(!e)return"";let o=new Date(e);return(0,vf.isValidDate)(o)?o.toISOString():""}var Qi=require("react/jsx-runtime");function no(e){return(0,Qi.jsx)(Ui.TextInput,{id:e.name,name:e.name,"data-autofocus":e.autoFocus,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:fm(),defaultValue:Sf(e.defaultValue),autoFocus:e.autoFocus,error:$(e.outcome,e.name),onChange:o=>{if(e.onChange){let t=o.currentTarget.value;e.onChange(Cf(t))}}})}function fm(){return"datetime-local"}var zi=require("@mantine/core"),bn=require("@medplum/core");var Ht=require("react");var qt=require("react/jsx-runtime");function Wi(e){let{propertyType:o}=e,t=P(),[r,a]=(0,Ht.useState)(!1),[n,l]=(0,Ht.useState)(),f=(0,Ht.useMemo)(()=>{if(!(!o.profile||o.profile.length===0))return o.profile[0]},[o]);(0,Ht.useEffect)(()=>{f&&(a(!0),t.requestProfileSchema(f).then(()=>{let s=(0,bn.tryGetProfile)(f);a(!1),l(s)}).catch(s=>{a(!1),console.warn(s)}))},[t,f]);function i(s){e.onChange&&(console.log("Extension",s),e.onChange(s))}return f?r?(0,qt.jsxs)("div",{children:["Loading ",f,"..."]}):n?(0,qt.jsx)(Gt,{profileUrl:f,typeName:n.name,defaultValue:e.defaultValue,onChange:i}):(0,qt.jsxs)("div",{children:["StructureDefinition for ",f," not found"]}):(0,qt.jsx)(sm,{...e})}function sm(e){return(0,qt.jsx)(zi.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-json-input",defaultValue:(0,bn.stringify)(e.defaultValue),deserialize:JSON.parse,onChange:o=>{e.onChange&&e.onChange(JSON.parse(o))}})}var qo=require("@mantine/core"),Xi=require("react");var mt=require("react/jsx-runtime");function bf(e){let{outcome:o,path:t}=e,[r,a]=(0,Xi.useState)(e.defaultValue);function n(c){a(c),e.onChange&&e.onChange(c)}function l(c){n({...r,use:c||void 0})}function f(c){n({...r,prefix:c?c.split(" "):void 0})}function i(c){n({...r,given:c?c.split(" "):void 0})}function s(c){n({...r,family:c||void 0})}function u(c){n({...r,suffix:c?c.split(" "):void 0})}return(0,mt.jsxs)(qo.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,mt.jsx)(qo.NativeSelect,{defaultValue:r?.use,name:e.name+"-use","data-testid":"use",onChange:c=>l(c.currentTarget.value),data:["","temp","old","usual","official","nickname","anonymous","maiden"],error:$(o,t+".use")}),(0,mt.jsx)(qo.TextInput,{placeholder:"Prefix",name:e.name+"-prefix",defaultValue:r?.prefix?.join(" "),onChange:c=>f(c.currentTarget.value),error:$(o,t+".prefix")}),(0,mt.jsx)(qo.TextInput,{placeholder:"Given",name:e.name+"-given",defaultValue:r?.given?.join(" "),onChange:c=>i(c.currentTarget.value),error:$(o,t+".given")}),(0,mt.jsx)(qo.TextInput,{name:e.name+"-family",placeholder:"Family",defaultValue:r?.family,onChange:c=>s(c.currentTarget.value),error:$(o,t+".family")}),(0,mt.jsx)(qo.TextInput,{placeholder:"Suffix",name:e.name+"-suffix",defaultValue:r?.suffix?.join(" "),onChange:c=>u(c.currentTarget.value),error:$(o,t+".suffix")})]})}var sa=require("@mantine/core"),xr=require("react");var ia=require("react/jsx-runtime");function Rf(e){let{path:o,outcome:t}=e,[r,a]=(0,xr.useState)(e.defaultValue),{getModifiedNestedElement:n}=(0,xr.useContext)(mo),[l,f]=(0,xr.useMemo)(()=>["system","value"].map(s=>n(o+"."+s)),[n,o]);function i(s){a(s),e.onChange&&e.onChange(s)}return(0,ia.jsxs)(sa.Group,{spacing:"xs",grow:!0,noWrap:!0,align:"flex-start",children:[(0,ia.jsx)(sa.TextInput,{placeholder:"System",required:(l?.min??0)>0,defaultValue:r?.system,onChange:s=>i({...r,system:s.currentTarget.value}),error:$(t,o+".system")}),(0,ia.jsx)(sa.TextInput,{placeholder:"Value",required:(f?.min??0)>0,defaultValue:r?.value,onChange:s=>i({...r,value:s.currentTarget.value}),error:$(t,o+".value")})]})}var Pn=require("@mantine/core");var Ir=require("react"),Rn=require("react/jsx-runtime"),im=["USD","EUR","CAD","GBP","AUD"];function Pf(e){let{onChange:o}=e,[t,r]=(0,Ir.useState)(e.defaultValue),a=(0,Ir.useCallback)(i=>{r(i),o&&o(i)},[o]),n=(0,Ir.useCallback)(i=>{a({...t,currency:i.currentTarget.value})},[t,a]),l=(0,Ir.useCallback)(i=>{a({...t,value:i.currentTarget.valueAsNumber})},[t,a]),f=(0,Rn.jsx)(Pn.NativeSelect,{defaultValue:t?.currency,data:im,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:n});return(0,Rn.jsx)(Pn.TextInput,{type:"number",label:e.label,placeholder:e.placeholder??"Value",defaultValue:t?.value?.toString()??"USD",icon:(0,Rn.jsx)(Ol,{size:14}),rightSection:f,rightSectionWidth:92,onChange:l})}var Ji=require("@mantine/core"),$i=require("react");var ua=require("react/jsx-runtime");function _i(e){let[o,t]=(0,$i.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return(0,ua.jsxs)(Ji.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,ua.jsx)(no,{name:e.name+".start",placeholder:"Start",defaultValue:o?.start,onChange:a=>r({...o,start:a})}),(0,ua.jsx)(no,{name:e.name+".end",placeholder:"End",defaultValue:o?.end,onChange:a=>r({...o,end:a})})]})}var Ut=require("@mantine/core"),Ki=require("react"),gr=require("react/jsx-runtime");function ze(e){let[o,t]=(0,Ki.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return(0,gr.jsxs)(Ut.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,gr.jsx)(Ut.NativeSelect,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:o?.comparator,data:["","<","<=",">=",">"],onChange:a=>r({...o,comparator:a.currentTarget.value})}),(0,gr.jsx)(Ut.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:um(a.currentTarget.value)})}}),(0,gr.jsx)(Ut.TextInput,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:o?.unit,onChange:a=>r({...o,unit:a.currentTarget.value})})]})}function um(e){if(e)return parseFloat(e)}var Zi=require("@mantine/core"),Yi=require("react");var ca=require("react/jsx-runtime");function hr(e){let[o,t]=(0,Yi.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return(0,ca.jsxs)(Zi.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,ca.jsx)(ze,{name:e.name+"-low",defaultValue:o?.low,onChange:a=>r({...o,low:a})}),(0,ca.jsx)(ze,{name:e.name+"-high",defaultValue:o?.high,onChange:a=>r({...o,high:a})})]})}var ji=require("@mantine/core"),eu=require("react");var da=require("react/jsx-runtime");function ou(e){let[o,t]=(0,eu.useState)(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return(0,da.jsxs)(ji.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,da.jsx)(ze,{name:e.name+"-numerator",defaultValue:o?.numerator,onChange:a=>r({...o,numerator:a})}),(0,da.jsx)(ze,{name:e.name+"-denominator",defaultValue:o?.denominator,onChange:a=>r({...o,denominator:a})})]})}var Tn=require("@mantine/core"),lo=require("@medplum/core");var We=require("react");var ma=require("@mantine/core"),pa=require("@medplum/core");var Qt=require("react");var Go=require("react/jsx-runtime"),cm={Observation:"code",User:"email:contains"},dm=["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 mm(e){return{value:(0,pa.getReferenceString)(e),label:(0,pa.getDisplayString)(e),resource:e}}function xa(e){let o=P(),{resourceType:t,searchCriteria:r}=e,[a,n]=(0,Qt.useState)(),l=Z(e.defaultValue,n),f=e.onChange,i=(0,Qt.useCallback)(async(u,c)=>{let d=xm(t),m=new URLSearchParams({[d]:u??"",_count:"10",...r});return await o.searchResources(t,m,{signal:c})},[o,t,r]),s=(0,Qt.useCallback)(u=>{f&&f(u[0])},[f]);return e.defaultValue&&!a&&!l?null:(0,Go.jsx)(Ft,{name:e.name,required:e.required,itemComponent:pm,defaultValue:l,placeholder:e.placeholder,maxSelectedValues:1,toKey:pa.getReferenceString,toOption:mm,loadOptions:i,onChange:s,clearable:!0})}var pm=(0,Qt.forwardRef)(({label:e,resource:o,...t},r)=>(0,Go.jsx)("div",{ref:r,...t,children:(0,Go.jsxs)(ma.Group,{noWrap:!0,children:[(0,Go.jsx)(we,{value:o}),(0,Go.jsxs)("div",{children:[(0,Go.jsx)(ma.Text,{children:e}),(0,Go.jsx)(ma.Text,{size:"xs",color:"dimmed",children:o.birthDate})]})]})}));function xm(e){return cm[e]??(dm.includes(e)?"name":"_id")}var yr=require("react/jsx-runtime");function zt(e){let{onChange:o}=e,t=P(),[r,a]=(0,We.useState)(e.defaultValue),[n,l]=(0,We.useState)(()=>Im(e.targetTypes)),[f,i]=(0,We.useState)(()=>gm(e.defaultValue,n)),s=(0,We.useRef)(new lo.LRUCache),u=(0,We.useMemo)(()=>f?.type==="profile"?{...e.searchCriteria,_profile:f.value}:e.searchCriteria,[e.searchCriteria,f]);(0,We.useEffect)(()=>{let m=!1,p=n?.map(x=>{if(!ym(x))return Promise.resolve(x);m=!0;let C=x.value,v=s.current.get(C);if(v)return v;let S=hm(t,x.value).then(A=>{let h={...x};return A?(0,lo.isPopulated)(A.type)?(h.resourceType=A.type,h.name=A.name,h.title=A.title):(console.error(`StructureDefinition.type missing for ${x.value}`),h.error="StructureDefinition.type missing"):(console.error(`StructureDefinition not found for ${x.value}`),h.error="StructureDefinition not found"),h}).catch(A=>(console.error(A),{...x,error:A})),b=new lo.ReadablePromise(S);return s.current.set(C,b),b});!p||!m||Promise.all(p).then(x=>{if(l(x),!f)return;let C=x.findIndex(v=>v.value===f.value||v.resourceType===f.resourceType);if(C===-1){console.debug(`defaultValue had unexpected resourceType: ${f.resourceType}`);return}i(x[C])}).catch(console.error)},[t,f,n]);let c=(0,We.useCallback)(m=>{let p=m?(0,lo.createReference)(m):void 0;a(p),o&&o(p)},[o]),d=(0,We.useMemo)(()=>n?n.map(m=>({value:m.value,label:m.type==="profile"?m.title??m.name??m.resourceType??m.value:m.value})):[],[n]);return(0,yr.jsxs)(Tn.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[n&&n.length>1&&(0,yr.jsx)(Tn.NativeSelect,{"data-autofocus":e.autoFocus,"data-testid":"reference-input-resource-type-select",defaultValue:f?.resourceType,autoFocus:e.autoFocus,onChange:m=>{let p=m.currentTarget.value,x=n.find(C=>C.value===p);i(x)},data:d}),!n&&(0,yr.jsx)(fr,{autoFocus:e.autoFocus,testId:"reference-input-resource-type-input",defaultValue:f?.resourceType,onChange:m=>{i(m?{type:"resourceType",value:m,resourceType:m}:void 0)},name:e.name+"-resourceType",placeholder:"Resource Type"}),(0,yr.jsx)(xa,{resourceType:f?.resourceType,name:e.name+"-id",required:e.required,placeholder:e.placeholder,defaultValue:r,searchCriteria:u,onChange:c})]})}function Im(e){if(!e||e.length===0||e.length===1&&e[0]==="Resource")return;let o=[];for(let t of e)t.includes("/")?o.push({type:"profile",value:t}):o.push({type:"resourceType",value:t,resourceType:t});return o}function gm(e,o){let t=e?.reference?.split("/")[0];if(t){let r=o?.find(a=>a.resourceType===t);return r||{type:"resourceType",value:t,resourceType:t}}if(o&&o.length>0)return o[0]}async function hm(e,o){let t=(0,lo.tryGetProfile)(o);if(t)return{type:t.type,name:t.name,title:t.title};let r=`{
|
|
66
|
+
StructureDefinitionList(url: "${o}", _sort: "_lastUpdated", _count: 1) {
|
|
67
|
+
type,
|
|
68
|
+
name,
|
|
69
|
+
title,
|
|
70
|
+
}
|
|
71
|
+
}`.replace(/\s+/g," ");return(await e.graphql(r)).data.StructureDefinitionList[0]}function ym(e){return e.type==="profile"&&!e?.error&&(0,lo.isEmpty)(e.resourceType)}var Ee=require("@mantine/core"),Po=require("@medplum/core");var pt=require("react");var Ro=require("@medplum/core");function vm(e,o,t){for(let r of[t.elements,t.typeSchema?.elements]){let a;if((0,Ro.isPopulated)(r)){let n=(0,Ro.getElementDefinitionFromElements)(r,o.path);n&&(a=(0,Ro.getTypedPropertyValueWithSchema)(e.value,o.path,n))}if(a)return(0,Ro.arrayify)(a)?.some(n=>(0,Ro.matchDiscriminant)(n,o,t,r))??!1}return!1}function Sm(e,o,t){if(e)for(let r of o){let a={value:e,type:r.typeSchema?.name??r.type[0].code};if(t.every(n=>vm(a,n,r)))return r.name}}function Tf(e,o,t){if(!t||t.slices.length===0)return[e];let r=new Array(o.length+1);for(let a=0;a<r.length;a++)r[a]=[];for(let a of e){let n=Sm(a,o,t.discriminator),l=n?o.findIndex(f=>f.name===n):-1;l===-1&&(l=o.length),r[l].push(a)}for(let a=0;a<o.length;a++)r[a].length===0&&r[a].push(void 0);return r}function tu(e){return e.type!==void 0&&e.type.length>0}var ee=require("react/jsx-runtime"),ru=(0,Ee.createStyles)(e=>({indented:{marginTop:"0.5rem",borderLeft:`3px solid ${e.colors.gray[4]}`,padding:"0.5rem 0 0.5rem 0.5rem"}}));function Df(e){let{property:o}=e,t=P(),[r,a]=(0,pt.useState)(!0),[n,l]=(0,pt.useState)([]),[f]=(0,pt.useState)(()=>Array.isArray(e.defaultValue)?e.defaultValue:[]),[i,s]=(0,pt.useState)([[]]),{classes:u}=ru(),c=o.type[0]?.code;(0,pt.useEffect)(()=>{if(!o.slicing){let A=[];l(A);let h=Tf(f,A,o.slicing);s(h),a(!1);return}let v=[],S=[],b=[];for(let A of o.slicing.slices){if(!tu(A))continue;let h=A.type[0],w;(0,Po.isEmpty)(A.elements)&&h.profile&&(w=h.profile[0]),v.push(A),S.push(w),w?b.push(t.requestProfileSchema(w)):b.push(Promise.resolve())}Promise.all(b).then(()=>{for(let h=0;h<v.length;h++){let w=v[h],j=S[h];if(j){let pe=(0,Po.tryGetProfile)(j);w.typeSchema=pe}}l(v);let A=Tf(f,v,o.slicing);s(A),a(!1)}).catch(A=>{console.error(A),a(!1)})},[t,o.slicing,c,f]);function d(v,S){let b=[...i];if(b[S]=v,s(b),e.onChange){let A=b.flat().filter(h=>h!==void 0);e.onChange(A)}}if(r)return(0,ee.jsx)("div",{children:"Loading..."});let m=n.length,p=i[m],x=!(e.hideNonSliceValues??(c==="Extension"&&n.length>0)),C=(0,Po.getPathDisplayName)(o.path);return(0,ee.jsxs)(Ee.Stack,{className:e.indent?u.indented:void 0,children:[n.map((v,S)=>(0,ee.jsx)(Cm,{slice:v,property:o,defaultValue:i[S],onChange:b=>{d(b,S)},testId:`slice-${v.name}`},v.name)),x&&p.map((v,S)=>(0,ee.jsxs)(Ee.Group,{noWrap:!0,style:{flexGrow:1},children:[(0,ee.jsx)("div",{style:{flexGrow:1},children:(0,ee.jsx)(Uo,{arrayElement:!0,property:e.property,name:e.name+"."+S,defaultValue:v,onChange:b=>{let A=[...p];A[S]=b,d(A,m)},defaultPropertyType:void 0,outcome:e.outcome})}),(0,ee.jsx)(nu,{propertyDisplayName:C,testId:`nonsliced-remove-${S}`,onClick:b=>{V(b);let A=[...p];A.splice(S,1),d(A,m)}})]},`${S}-${p.length}`)),x&&i.flat().length<o.max&&(0,ee.jsx)(Ee.Group,{noWrap:!0,style:{justifyContent:"flex-start"},children:(0,ee.jsx)(au,{propertyDisplayName:C,onClick:v=>{V(v);let S=[...p];S.push(void 0),d(S,m)},testId:"nonsliced-add"})})]})}function Cm(e){let{slice:o,property:t}=e,[r,a]=(0,pt.useState)(()=>e.defaultValue.map(u=>u??{})),{classes:n}=ru();function l(u){a(u),e.onChange&&e.onChange(u)}let f=o.min>0,i=(0,Po.isEmpty)(o.elements),s=(0,Po.getPropertyDisplayName)(o.name);return(0,ee.jsx)(Oe,{title:s,description:o.definition,withAsterisk:f,fhirPath:`${t.path}:${o.name}`,testId:e.testId,children:(0,ee.jsxs)(Ee.Stack,{className:i?n.indented:void 0,children:[r.map((u,c)=>(0,ee.jsxs)(Ee.Group,{noWrap:!0,children:[(0,ee.jsx)("div",{style:{flexGrow:1},children:(0,ee.jsx)(Ee.Stack,{children:(0,Po.isEmpty)(o.elements)?(0,ee.jsx)(Ia,{elementDefinitionType:o.type[0],name:o.name,defaultValue:u,onChange:d=>{let m=[...r];m[c]=d,l(m)},outcome:void 0,min:o.min,max:o.max,binding:void 0,path:o.path}):(0,ee.jsx)(Dn,{type:o.type[0].code,elements:o.elements,defaultValue:u,outcome:e.outcome,onChange:d=>{let m=[...r];m[c]=d,l(m)},testId:e.testId&&`${e.testId}-elements-${c}`})})}),r.length>o.min&&(0,ee.jsx)(nu,{propertyDisplayName:s,testId:e.testId&&`${e.testId}-remove-${c}`,onClick:d=>{V(d);let m=[...r];m.splice(c,1),l(m)}})]},`${c}-${r.length}`)),r.length<o.max&&(0,ee.jsx)(Ee.Group,{noWrap:!0,style:{justifyContent:"flex-start"},children:(0,ee.jsx)(au,{propertyDisplayName:s,onClick:u=>{V(u);let c=[...r,void 0];l(c)},testId:e.testId&&`${e.testId}-add`})})]})})}function au({propertyDisplayName:e,onClick:o,testId:t}){let r=e?`Add ${e}`:"Add";return e?(0,ee.jsx)(Ee.Button,{title:r,size:"sm",color:"green.6",variant:"subtle","data-testid":t,leftIcon:(0,ee.jsx)(At,{size:"1.25rem"}),onClick:o,children:r}):(0,ee.jsx)(Ee.ActionIcon,{title:r,color:"green.6","data-testid":t,onClick:o,children:(0,ee.jsx)(At,{size:"1.25rem"})})}function nu({propertyDisplayName:e,onClick:o,testId:t}){return(0,ee.jsx)(Ee.ActionIcon,{title:e?`Remove ${e}`:"Remove",color:"red.5","data-testid":t,onClick:o,children:(0,ee.jsx)(nt,{size:"1.25rem"})})}var he=require("@mantine/core"),fu=require("@medplum/core"),Wt=require("react");var ne=require("react/jsx-runtime"),bm=["sun","mon","tue","wed","thu","fri","sat"];function kf(e){let[o,t]=(0,Wt.useState)(e.defaultValue),[r,a]=(0,Wt.useState)(!1),n=(0,Wt.useRef)();return n.current=o,(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsxs)(he.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,ne.jsx)("span",{children:(0,fu.formatTiming)(n.current)||"No repeat"}),(0,ne.jsx)(he.Button,{onClick:()=>a(!0),children:"Edit"})]}),(0,ne.jsx)(Rm,{visible:r,defaultValue:n.current,onOk:l=>{e.onChange&&e.onChange(l),t(l),a(!1)},onCancel:()=>a(!1)})]})}var lu={repeat:{period:1,periodUnit:"d"}};function Rm(e){let[o,t]=(0,Wt.useState)(e.defaultValue||lu),r=(0,Wt.useRef)();r.current=o;function a(s){t({...r.current,event:[s]})}function n(s){t({...r.current,repeat:s})}function l(s){n({...r.current?.repeat,period:s})}function f(s){n({...r.current?.repeat,periodUnit:s})}function i(s){n({...r.current?.repeat,dayOfWeek:s})}return(0,ne.jsx)(he.Modal,{title:"Timing",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>e.onCancel(),children:(0,ne.jsxs)(he.Stack,{children:[(0,ne.jsx)(Oe,{title:"Starts on",htmlFor:"timing-dialog-start",children:(0,ne.jsx)(no,{name:"timing-dialog-start",onChange:s=>a(s)})}),(0,ne.jsx)(he.Switch,{label:"Repeat",checked:!!o.repeat,onChange:s=>n(s.currentTarget.checked?lu.repeat:void 0)}),o.repeat&&(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsx)(Oe,{title:"Repeat every",htmlFor:"timing-dialog-period",children:(0,ne.jsxs)(he.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,ne.jsx)(he.TextInput,{type:"number",step:1,id:"timing-dialog-period",name:"timing-dialog-period",defaultValue:o.repeat.period||1,onChange:s=>l(parseInt(s.currentTarget.value,10)||1)}),(0,ne.jsx)(he.NativeSelect,{id:"timing-dialog-periodUnit",name:"timing-dialog-periodUnit",defaultValue:o.repeat.periodUnit,onChange:s=>f(s.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"&&(0,ne.jsx)(Oe,{title:"Repeat on",children:(0,ne.jsx)(he.Chip.Group,{multiple:!0,onChange:i,children:(0,ne.jsx)(he.Group,{position:"apart",mt:"md",spacing:"xs",children:bm.map(s=>(0,ne.jsx)(he.Chip,{value:s,size:"xs",radius:"xl",children:s.charAt(0).toUpperCase()},s))})})})]}),(0,ne.jsx)(he.Group,{position:"right",children:(0,ne.jsx)(he.Button,{onClick:()=>e.onOk(o),children:"OK"})})]})})}var U=require("react/jsx-runtime");function Uo(e){let{property:o,name:t,defaultValue:r,onChange:a}=e,n=e.defaultPropertyType&&e.defaultPropertyType!=="undefined"?e.defaultPropertyType:o.type[0].code,l=o.type;if((o.isArray||o.max>1)&&!e.arrayElement){if(n===E.PropertyType.Attachment)return(0,U.jsx)(sf,{name:t,defaultValue:r,onChange:a});let f=l[0]?.code!==E.PropertyType.Extension;return(0,U.jsx)(Df,{property:o,name:t,defaultValue:r,indent:f,onChange:a,outcome:e.outcome})}return l.length>1?(0,U.jsx)(uu,{elementDefinitionTypes:l,...e}):(0,U.jsx)(Ia,{name:t,defaultValue:r,onChange:f=>{if(e.onChange){let i=e.name.replace("[x]",(0,E.capitalize)(l[0].code));e.onChange(f,i)}},outcome:e.outcome,elementDefinitionType:l[0],min:o.min,max:o.min,binding:o.binding,path:o.path})}function uu(e){let o=e.elementDefinitionTypes,t;e.defaultPropertyType&&(t=o.find(n=>n.code===e.defaultPropertyType)),t||(t=o[0]);let[r,a]=(0,iu.useState)(t);return(0,U.jsxs)(fo.Group,{spacing:"xs",grow:!0,noWrap:!0,children:[(0,U.jsx)(fo.NativeSelect,{style:{width:"200px"},defaultValue:r.code,onChange:n=>{a(o.find(l=>l.code===n.currentTarget.value))},data:o.map(n=>({value:n.code,label:n.code}))}),(0,U.jsx)(Ia,{name:e.name,defaultValue:e.defaultValue,outcome:e.outcome,elementDefinitionType:r,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",(0,E.capitalize)(r.code)))},min:e.property.min,max:e.property.max,binding:e.property.binding,path:e.property.path})]})}function Ia(e){let{name:o,defaultValue:t,onChange:r,outcome:a,binding:n,path:l}=e,f=e.min!==void 0&&e.min>0,i=e.elementDefinitionType.code;if(!i)return(0,U.jsx)("div",{children:"Property type not specified "});let s={name:o,defaultValue:t,onChange:r,outcome:a,path:l};switch(i){case E.PropertyType.SystemString:case E.PropertyType.canonical:case E.PropertyType.string:case E.PropertyType.time:case E.PropertyType.uri:case E.PropertyType.url:return(0,U.jsx)(fo.TextInput,{id:o,name:o,"data-testid":o,defaultValue:t,required:f,onChange:u=>{r&&r(u.currentTarget.value)},error:$(a,o)});case E.PropertyType.date:return(0,U.jsx)(fo.TextInput,{type:"date",id:o,name:o,"data-testid":o,defaultValue:t,required:f,onChange:u=>{r&&r(u.currentTarget.value)},error:$(a,o)});case E.PropertyType.dateTime:case E.PropertyType.instant:return(0,U.jsx)(no,{name:o,defaultValue:t,onChange:r,outcome:a});case E.PropertyType.decimal:case E.PropertyType.integer:case E.PropertyType.positiveInt:case E.PropertyType.unsignedInt:return(0,U.jsx)(fo.TextInput,{type:"number",step:i===E.PropertyType.decimal?"any":"1",id:o,name:o,"data-testid":o,defaultValue:t,required:f,onChange:u=>{r&&r(u.currentTarget.valueAsNumber)}});case E.PropertyType.code:return(0,U.jsx)(Zr,{...s,binding:n?.valueSet});case E.PropertyType.boolean:return(0,U.jsx)(fo.Checkbox,{id:o,name:o,"data-testid":o,defaultChecked:!!t,onChange:u=>{r&&r(u.currentTarget.checked)}});case E.PropertyType.base64Binary:case E.PropertyType.markdown:return(0,U.jsx)(fo.Textarea,{id:o,spellCheck:i!==E.PropertyType.base64Binary,name:o,"data-testid":o,defaultValue:t,required:f,onChange:u=>{r&&r(u.currentTarget.value)}});case E.PropertyType.Address:return(0,U.jsx)(yl,{...s});case E.PropertyType.Annotation:return(0,U.jsx)(vl,{...s});case E.PropertyType.Attachment:return(0,U.jsx)(Yr,{...s});case E.PropertyType.CodeableConcept:return(0,U.jsx)(hf,{binding:n?.valueSet,...s});case E.PropertyType.Coding:return(0,U.jsx)(na,{binding:n?.valueSet,...s});case E.PropertyType.ContactDetail:return(0,U.jsx)(yf,{...s});case E.PropertyType.ContactPoint:return(0,U.jsx)(la,{...s});case E.PropertyType.Extension:return(0,U.jsx)(Wi,{...s,propertyType:e.elementDefinitionType});case E.PropertyType.HumanName:return(0,U.jsx)(bf,{...s});case E.PropertyType.Identifier:return(0,U.jsx)(Rf,{...s});case E.PropertyType.Money:return(0,U.jsx)(Pf,{...s});case E.PropertyType.Period:return(0,U.jsx)(_i,{...s});case E.PropertyType.Duration:case E.PropertyType.Quantity:return(0,U.jsx)(ze,{...s});case E.PropertyType.Range:return(0,U.jsx)(hr,{...s});case E.PropertyType.Ratio:return(0,U.jsx)(ou,{...s});case E.PropertyType.Reference:return(0,U.jsx)(zt,{...s,targetTypes:Pm(e.elementDefinitionType)});case E.PropertyType.Timing:return(0,U.jsx)(kf,{...s});case E.PropertyType.Dosage:case E.PropertyType.UsageContext:default:return(0,U.jsx)(Gt,{typeName:i,defaultValue:t,onChange:r,outcome:a})}}var su="http://hl7.org/fhir/StructureDefinition/";function Pm(e){return e?.targetProfile?.map(o=>o.startsWith(su)?o.slice(su.length):o)}var ga=require("react/jsx-runtime"),Bf=new Set(["extension","modifierExtension"]),Tm=new Set(["id",...un].filter(e=>!Bf.has(e)));function Dn(e){let{elements:o}=e,[t,r]=(0,kn.useState)(e.defaultValue??{}),a=(0,kn.useMemo)(()=>{let l=Object.create(null);for(let[f,i]of Object.entries(o))i.fixed&&(l[f]=i);return l},[o]);function n(l){for(let[f,i]of Object.entries(a))mr(l,f,f,i,i.fixed.value);r(l),e.onChange&&e.onChange(l)}return(0,ga.jsx)(cu.Stack,{style:{flexGrow:1},"data-testid":e.testId,children:Object.entries(o).map(([l,f])=>{if(!f.type||f.max===0||l==="url"&&f.fixed||Bf.has(l)&&!(0,ha.isPopulated)(f.slicing?.slices))return null;if(Tm.has(l))return null;if(cn.includes(l)&&f.path.split(".").length===2||l.includes("."))return null;let[i,s]=Ai(t,l,f),u=f.min!==void 0&&f.min>0,c=(0,ga.jsx)(Uo,{property:f,name:l,defaultValue:i,defaultPropertyType:s,onChange:(d,m)=>{n(mr({...t},l,m??l,f,d))},arrayElement:void 0,outcome:e.outcome},l);return e.type==="Extension"||Bf.has(l)?c:f.type.length===1&&f.type[0].code==="boolean"?(0,ga.jsx)(ta,{title:(0,ha.getPathDisplayName)(l),description:f.description,htmlFor:l,fhirPath:f.path,withAsterisk:u,children:c},l):(0,ga.jsx)(Oe,{title:(0,ha.getPathDisplayName)(l),description:f.description,withAsterisk:u,htmlFor:l,outcome:e.outcome,fhirPath:f.path,children:c},l)})})}var ya=require("react/jsx-runtime");function Gt(e){let{typeName:o}=e,[t,r]=(0,Xt.useState)(e.defaultValue??{}),a=(0,Xt.useContext)(mo),n=e.profileUrl??a.profileUrl,l=(0,Xt.useMemo)(()=>(0,du.tryGetDataType)(o,n),[o,n]),f=(0,Xt.useMemo)(()=>Fi(l,n),[l,n]);if(!l)return(0,ya.jsxs)("div",{children:[o,"\xA0not implemented"]});function i(s){r(s),e.onChange&&e.onChange(s)}return(0,ya.jsx)(mo.Provider,{value:f,children:(0,ya.jsx)(Dn,{type:l.type,elements:l.elements,defaultValue:t,onChange:i,outcome:e.outcome})})}var Qo=require("@mantine/core"),An=require("react");function mu(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function Bn(){let e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}var xe=require("react/jsx-runtime"),Dm=(0,Qo.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 Af(e){let{classes:o}=Dm(),{onChangeMonth:t,onClick:r}=e,[a,n]=(0,An.useState)(Bn);function l(i){n(s=>{let u=new Date(s.getTime());return u.setMonth(s.getMonth()+i),t(u),u})}let f=(0,An.useMemo)(()=>km(a,e.slots),[a,e.slots]);return(0,xe.jsxs)("div",{children:[(0,xe.jsxs)(Qo.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0,children:[(0,xe.jsx)("p",{style:{flex:1},children:mu(a)}),(0,xe.jsxs)(Qo.Group,{position:"right",spacing:"xs",children:[(0,xe.jsx)(Qo.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>l(-1),children:"<"}),(0,xe.jsx)(Qo.Button,{variant:"outline","aria-label":"Next month",onClick:()=>l(1),children:">"})]})]}),(0,xe.jsxs)("table",{className:o.table,children:[(0,xe.jsx)("thead",{children:(0,xe.jsxs)("tr",{children:[(0,xe.jsx)("th",{children:"SUN"}),(0,xe.jsx)("th",{children:"MON"}),(0,xe.jsx)("th",{children:"TUE"}),(0,xe.jsx)("th",{children:"WED"}),(0,xe.jsx)("th",{children:"THU"}),(0,xe.jsx)("th",{children:"FRI"}),(0,xe.jsx)("th",{children:"SAT"})]})}),(0,xe.jsx)("tbody",{children:f.map((i,s)=>(0,xe.jsx)("tr",{children:i.map((u,c)=>(0,xe.jsx)("td",{children:u&&(0,xe.jsx)(Qo.Button,{disabled:!u.available,onClick:()=>r(u.date),children:u.date.getDate()})},"day-"+c))},"week-"+s))})]})]})}function km(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:Bm(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 Bm(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 Mn=require("@mantine/core"),pu=require("react/jsx-runtime"),Am=(0,Mn.createStyles)(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function zo(e){let{children:o,...t}=e,{classes:r}=Am();return(0,pu.jsx)(Mn.Container,{className:r.root,...t,children:o})}var se=require("@mantine/core"),$t=require("@mantine/notifications"),_o=require("@medplum/core");var Xe=require("react");var Y=require("@mantine/core"),so=require("@medplum/core");var Fn=require("react");var vr=require("@mantine/core"),Mf=require("react/jsx-runtime"),Mm=(0,vr.createStyles)(e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));function Ff({value:e}){let{classes:o}=Mm();return e?(0,Mf.jsx)(vr.Stack,{justify:"flex-start",spacing:"xs",children:e.map(t=>t.text&&(0,Mf.jsx)(vr.Blockquote,{classNames:{cite:o.noteCite,body:o.noteBody,root:o.noteRoot},cite:t.authorReference?.display||t.authorString,icon:null,children:t.text},`note-${t.text}`))}):null}var gu=require("@mantine/core");var xu=require("@mantine/core"),Sr=require("@medplum/core");var Iu=require("react");var wf=require("react/jsx-runtime");function po(e){let{value:o,link:t,...r}=e,[a,n]=(0,Iu.useState)(),l=Z(o,n),f;if(a&&!(0,Sr.isOk)(a))f=`[${(0,Sr.normalizeErrorString)(a)}]`;else if(l)f=(0,Sr.getDisplayString)(l);else return null;return t?(0,wf.jsx)(Pe,{to:o,...r,children:f}):(0,wf.jsx)(xu.Text,{component:"span",...r,children:f})}var va=require("react/jsx-runtime");function Wo(e){return(0,va.jsxs)(gu.Group,{spacing:"xs",children:[(0,va.jsx)(we,{size:24,radius:12,value:e.value,link:e.link}),(0,va.jsx)(po,{value:e.value,link:e.link})]})}var hu=require("@mantine/core"),yu=require("react/jsx-runtime"),Fm={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 Sa(e){return(0,yu.jsx)(hu.Badge,{color:Fm[e.status],children:e.status})}var y=require("react/jsx-runtime"),vu=(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}}));wn.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};function wn(e){let o=P(),t=Z(e.value),[r,a]=(0,Fn.useState)();if((0,Fn.useEffect)(()=>{t?.specimen&&Promise.allSettled(t.specimen.map(l=>o.readReference(l))).then(l=>l.filter(f=>f.status==="fulfilled").map(f=>f.value)).then(a).catch(console.error)},[o,t]),!t)return null;let n=r?.flatMap(l=>l.note||[])||[];if(t.presentedForm&&t.presentedForm.length>0){let l=t.presentedForm[0];l.contentType?.startsWith("text/plain")&&l.data&&n.push({text:window.atob(l.data)})}return(0,y.jsxs)(Y.Stack,{children:[(0,y.jsx)(Y.Title,{children:"Diagnostic Report"}),(0,y.jsx)(wm,{value:t}),r&&!e.hideSpecimenInfo&&Om(r),t.result&&(0,y.jsx)(Su,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&(0,y.jsx)(Ff,{value:n})]})}function wm({value:e}){return(0,y.jsxs)(Y.Group,{mt:"md",spacing:30,children:[e.subject&&(0,y.jsxs)("div",{children:[(0,y.jsx)(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed",children:"Subject"}),(0,y.jsx)(Y.Text,{children:(0,y.jsx)(Wo,{value:e.subject,link:!0})})]}),e.resultsInterpreter?.map(o=>(0,y.jsxs)("div",{children:[(0,y.jsx)(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed",children:"Interpreter"}),(0,y.jsx)(Y.Text,{children:(0,y.jsx)(Wo,{value:o,link:!0})})]},o.reference)),e.performer?.map(o=>(0,y.jsxs)("div",{children:[(0,y.jsx)(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed",children:"Performer"}),(0,y.jsx)(Y.Text,{children:(0,y.jsx)(Wo,{value:o,link:!0})})]},o.reference)),e.issued&&(0,y.jsxs)("div",{children:[(0,y.jsx)(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed",children:"Issued"}),(0,y.jsx)(Y.Text,{children:(0,so.formatDateTime)(e.issued)})]}),e.status&&(0,y.jsxs)("div",{children:[(0,y.jsx)(Y.Text,{size:"xs",transform:"uppercase",color:"dimmed",children:"Status"}),(0,y.jsx)(Y.Text,{children:(0,so.capitalize)(e.status)})]})]})}function Om(e){return(0,y.jsxs)(Y.Stack,{spacing:"xs",children:[(0,y.jsx)(Y.Title,{order:2,size:"h6",children:"Specimens"}),(0,y.jsx)(Y.List,{type:"ordered",children:e?.map(o=>(0,y.jsx)(Y.List.Item,{ml:"sm",children:(0,y.jsxs)(Y.Group,{spacing:20,children:[(0,y.jsxs)(Y.Group,{spacing:5,children:[(0,y.jsx)(Y.Text,{fw:500,children:"Collected:"})," ",(0,so.formatDateTime)(o.collection?.collectedDateTime)]}),(0,y.jsxs)(Y.Group,{spacing:5,children:[(0,y.jsx)(Y.Text,{fw:500,children:"Received:"})," ",(0,so.formatDateTime)(o.receivedTime)]})]})},`specimen-${o.id}`))})]})}function Su(e){let{classes:o}=vu();return(0,y.jsxs)("table",{className:o.table,children:[(0,y.jsx)("thead",{children:(0,y.jsxs)("tr",{children:[(0,y.jsx)("th",{children:"Test"}),(0,y.jsx)("th",{children:"Value"}),(0,y.jsx)("th",{children:"Reference Range"}),(0,y.jsx)("th",{children:"Interpretation"}),(0,y.jsx)("th",{children:"Category"}),(0,y.jsx)("th",{children:"Performer"}),(0,y.jsx)("th",{children:"Status"})]})}),(0,y.jsx)("tbody",{children:(0,y.jsx)(Cu,{value:e.value,ancestorIds:e.ancestorIds,hideObservationNotes:e.hideObservationNotes})})]})}function Cu(e){return(0,y.jsx)(y.Fragment,{children:e.value?.map(o=>(0,y.jsx)(Em,{value:o,ancestorIds:e.ancestorIds,hideObservationNotes:e.hideObservationNotes},`obs-${(0,so.isReference)(o)?o.reference:o.id}`))})}function Em(e){let{classes:o,cx:t}=vu(),r=Z(e.value);if(!r||e.ancestorIds?.includes(r.id))return null;let a=!e.hideObservationNotes&&r.note,n=Vm(r);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)("tr",{className:t({[o.criticalRow]:n}),children:[(0,y.jsx)("td",{rowSpan:a?2:1,children:(0,y.jsx)(Pe,{to:r,children:(0,y.jsx)(Et,{value:r.code})})}),(0,y.jsx)("td",{children:(0,y.jsx)(Lm,{value:r})}),(0,y.jsx)("td",{children:(0,y.jsx)(Nm,{value:r.referenceRange})}),(0,y.jsx)("td",{children:r.interpretation&&r.interpretation.length>0&&(0,y.jsx)(Et,{value:r.interpretation[0]})}),(0,y.jsx)("td",{children:r.category&&r.category.length>0&&(0,y.jsx)(y.Fragment,{children:r.category.map(l=>(0,y.jsx)("div",{children:(0,y.jsx)(Et,{value:l})},`category-${(0,so.formatCodeableConcept)(l)}`))})}),(0,y.jsx)("td",{children:r.performer?.map(l=>(0,y.jsx)(st,{value:l},l.reference))}),(0,y.jsx)("td",{children:r.status&&(0,y.jsx)(Sa,{status:r.status})})]}),r.hasMember&&(0,y.jsx)(Cu,{value:r.hasMember,ancestorIds:e.ancestorIds?[...e.ancestorIds,r.id]:[r.id],hideObservationNotes:e.hideObservationNotes}),a&&(0,y.jsx)("tr",{children:(0,y.jsx)("td",{colSpan:6,children:(0,y.jsx)(Ff,{value:r.note})})})]})}function Lm(e){let o=e.value;return(0,y.jsx)(y.Fragment,{children:(0,so.formatObservationValue)(o)})}function Nm(e){let o=e.value&&e.value.length>0&&e.value[0];return o?o.text?(0,y.jsx)(y.Fragment,{children:o.text}):(0,y.jsx)(ea,{value:o}):null}function Vm(e){let o=e.interpretation?.[0]?.coding?.[0]?.code;return o==="AA"||o==="LL"||o==="HH"||o==="A"}var Cr=require("@mantine/core"),bu=require("react/jsx-runtime"),Hm=(0,Cr.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%"}}})),qm={shadow:"xs",radius:"md",withBorder:!0};function Jt(e){let{className:o,children:t,width:r,fill:a,unstyled:n,...l}=(0,Cr.useComponentDefaultProps)("Panel",qm,e),{classes:f,cx:i}=Hm({width:r,fill:a},{name:"Panel",unstyled:n});return(0,bu.jsx)(Cr.Paper,{className:i(f.paper,o),...l,children:t})}var qu=require("@mantine/core"),ko=require("@medplum/core");var Ln=require("react"),Gu=ml(Vu(),1);var Le=require("react/jsx-runtime"),tp=(0,qu.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],fontFamily:"monospace",textDecoration:"line-through",whiteSpace:"pre-wrap"},added:{color:e.colors.green[7],fontFamily:"monospace",whiteSpace:"pre-wrap"}}));function Uu(e){let{classes:o}=tp(),t=P(),[r,a]=(0,Ln.useState)(!1);if((0,Ln.useEffect)(()=>{t.requestSchema(e.original.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.original.resourceType]),!r)return null;let n=(0,Gu.createPatch)(e.original,e.revised),l=[(0,ko.toTypedValue)(e.original)],f=[(0,ko.toTypedValue)(e.revised)];return(0,Le.jsxs)("table",{className:o.root,children:[(0,Le.jsx)("thead",{children:(0,Le.jsxs)("tr",{children:[(0,Le.jsx)("th",{}),(0,Le.jsx)("th",{children:"Before"}),(0,Le.jsx)("th",{children:"After"})]})}),(0,Le.jsx)("tbody",{children:n.map(i=>{if(i.path.startsWith("/meta"))return null;let s=i.path,u=rp(s),d=(0,ko.getSearchParameterDetails)(e.original.resourceType,{resourceType:"SearchParameter",base:[e.original.resourceType],code:e.original.resourceType+"."+u,expression:e.original.resourceType+"."+u})?.elementDefinitions?.[0],m=!!d?.isArray,p=i.op==="add"?void 0:(0,ko.evalFhirPathTyped)(u,l)?.[0],x=i.op==="remove"?void 0:(0,ko.evalFhirPathTyped)(u,f)?.[0];return(0,Le.jsxs)("tr",{children:[(0,Le.jsxs)("td",{children:[(0,ko.capitalize)(i.op)," ",u]}),(0,Le.jsx)("td",{className:o.removed,children:p&&(0,Le.jsx)(ke,{property:d,propertyType:p.type,value:Hu(p.value,m),ignoreMissingValues:!0})}),(0,Le.jsx)("td",{className:o.added,children:x&&(0,Le.jsx)(ke,{property:d,propertyType:x.type,value:Hu(x.value,m),ignoreMissingValues:!0})})]},`op-${i.op}-${i.path}`)})})]})}function rp(e){let o=e.split("/").filter(Boolean),t="";for(let r=0;r<o.length;r++){let a=o[r];a==="-"?t+=".last()":/^\d+$/.test(a)?t+=`[${a}]`:(r>0&&(t+="."),t+=a)}return t}function Hu(e,o){return Array.isArray(e)&&!o?e[0]:!Array.isArray(e)&&o?[e]:e}var Nn=require("react");var Qu=require("react/jsx-runtime");function Vn(e){let o=P(),t=Z(e.value),[r,a]=(0,Nn.useState)(!1);return(0,Nn.useEffect)(()=>{t&&o.requestSchema(t.resourceType).then(()=>a(!0)).catch(console.log)},[o,t]),!r||!t?null:(0,Qu.jsx)(cr,{value:{type:t.resourceType,value:e.forceUseInput?e.value:t},ignoreMissingValues:e.ignoreMissingValues})}var xo=require("@mantine/core"),Hn=require("@medplum/core");var Ie=require("react/jsx-runtime");function Wf(e){return(0,Ie.jsx)(zo,{children:e.children})}function $o(e){let{resource:o,profile:t,padding:r,popupMenuItems:a,...n}=e,l=t??o.meta?.author,f=e.dateTime??o.meta?.lastUpdated;return(0,Ie.jsxs)(Jt,{"data-testid":"timeline-item",fill:!0,...n,children:[(0,Ie.jsxs)(xo.Group,{position:"apart",spacing:8,mx:"xs",my:"sm",children:[(0,Ie.jsx)(we,{value:l,link:!0,size:"md"}),(0,Ie.jsxs)("div",{style:{flex:1},children:[(0,Ie.jsx)(xo.Text,{size:"sm",children:(0,Ie.jsx)(po,{color:"dark",weight:500,value:l,link:!0})}),(0,Ie.jsxs)(xo.Text,{size:"xs",children:[(0,Ie.jsx)(Pe,{color:"dimmed",to:e.resource,children:(0,Hn.formatDateTime)(f)}),(0,Ie.jsx)(xo.Text,{component:"span",color:"dimmed",mx:8,children:"\xB7"}),(0,Ie.jsx)(Pe,{color:"dimmed",to:e.resource,children:e.resource.resourceType})]})]}),a&&(0,Ie.jsxs)(xo.Menu,{position:"bottom-end",shadow:"md",width:200,children:[(0,Ie.jsx)(xo.Menu.Target,{children:(0,Ie.jsx)(xo.ActionIcon,{radius:"xl","aria-label":`Actions for ${(0,Hn.getReferenceString)(e.resource)}`,children:(0,Ie.jsx)(El,{})})}),a]})]}),(0,Ie.jsxs)(Mt,{children:[r&&(0,Ie.jsx)("div",{style:{padding:"0 16px 16px 16px"},children:e.children}),!r&&(0,Ie.jsx)(Ie.Fragment,{children:e.children})]})]})}function Xf(e,o){e.sort((t,r)=>{let a=zu(t,o),n=zu(r,o);return a>n?1:a<n?-1:Wu(t,o)-Wu(r,o)})}function zu(e,o){if(!Xu(e,o)){let t=e.priority;if(typeof t=="string")return{stat:4,asap:3,urgent:2}[t]??0}return 0}function Wu(e,o){if(!Xu(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 Xu(e,o){return!!o&&e.resourceType===o.resourceType&&e.id===o.id}var B=require("react/jsx-runtime"),ap=(0,se.createStyles)(e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}}));function Ko(e){let o=P(),t=Oo(),r=o.getProfile(),a=(0,Xe.useRef)(null),n=Z(e.value),[l,f]=(0,Xe.useState)(),[i,s]=(0,Xe.useState)([]),u=e.loadTimelineResources,c=(0,Xe.useRef)(i);c.current=i;let d=(0,Xe.useCallback)(R=>{Xf(R,n),R.reverse(),s(R)},[n]),m=(0,Xe.useCallback)(R=>{let H=[];for(let rt of R){if(rt.status!=="fulfilled")continue;let T=rt.value;if(T.type==="history"&&f(T),T.entry)for(let J of T.entry)H.push(J.resource)}d(H)},[d]),p=(0,Xe.useCallback)(R=>d([...c.current,R]),[d]),x=(0,Xe.useCallback)(()=>{let R,H;"resourceType"in e.value?(R=e.value.resourceType,H=e.value.id):[R,H]=e.value.reference?.split("/"),u(o,R,H).then(m).catch(console.log)},[o,e.value,u,m]);(0,Xe.useEffect)(()=>x(),[x]);function C(R){!n||!e.createCommunication||o.createResource(e.createCommunication(n,r,R)).then(H=>p(H)).catch(console.log)}function v(R){!n||!e.createMedia||o.createResource(e.createMedia(n,r,R)).then(H=>p(H)).then(()=>(0,$t.updateNotification)({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:(0,B.jsx)(Qr,{size:16}),autoClose:2e3})).catch(H=>(0,$t.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,_o.normalizeErrorString)(H),icon:(0,B.jsx)(Xa,{size:16}),autoClose:2e3}))}function S(R,H){return o.updateResource({...R,priority:H})}function b(R){S(R,"stat").then(x).catch(console.log)}function A(R){S(R,"routine").then(x).catch(console.log)}function h(R){t(`/${R.resourceType}/${R.id}`)}function w(R){t(`/${R.resourceType}/${R.id}/edit`)}function j(R){t(`/${R.resourceType}/${R.id}/delete`)}function pe(R){t(`/${R.resourceType}/${R.id}/_history/${R.meta?.versionId}`)}function Nr(){(0,$t.showNotification)({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})}function to(R){(0,$t.updateNotification)({id:"upload-notification",loading:!0,title:"Uploading...",message:cp(R),autoClose:!1,withCloseButton:!1})}function ro(R){(0,$t.updateNotification)({id:"upload-notification",color:"red",title:"Upload error",message:(0,_o.normalizeErrorString)(R),icon:(0,B.jsx)(Xa,{size:16}),autoClose:2e3})}return n?(0,B.jsxs)(Wf,{children:[e.createCommunication&&(0,B.jsx)(Jt,{children:(0,B.jsx)(ae,{testid:"timeline-form",onSubmit:R=>{C(R.text);let H=a.current;H&&(H.value="",H.focus())},children:(0,B.jsxs)(se.Group,{spacing:"xs",noWrap:!0,style:{width:"100%"},children:[(0,B.jsx)(we,{value:r}),(0,B.jsx)(se.TextInput,{name:"text",ref:a,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),(0,B.jsx)(se.ActionIcon,{type:"submit",radius:"xl",color:"blue",variant:"filled",children:(0,B.jsx)(Gl,{size:16})}),(0,B.jsx)(Ot,{onUpload:v,onUploadStart:Nr,onUploadProgress:to,onUploadError:ro,children:R=>(0,B.jsx)(se.ActionIcon,{...R,radius:"xl",color:"blue",variant:"filled",children:(0,B.jsx)(zr,{size:16})})})]})})}),i.map(R=>{if(!R)return null;let H=`${R.resourceType}/${R.id}/${R.meta?.versionId}`;if(R.resourceType===n.resourceType&&R.id===n.id)return(0,B.jsx)(np,{history:l,resource:R,onDetails:pe},H);switch(R.resourceType){case"AuditEvent":return(0,B.jsx)(ip,{resource:R,onDetails:h},H);case"Communication":return(0,B.jsx)(fp,{resource:R,onPin:R.priority!=="stat"?b:void 0,onUnpin:R.priority==="stat"?A:void 0,onDetails:h,onEdit:w,onDelete:j},H);case"DiagnosticReport":return(0,B.jsx)(up,{resource:R,onDetails:h,onEdit:w,onDelete:j},H);case"Media":return(0,B.jsx)(sp,{resource:R,onDetails:h,onEdit:w,onDelete:j},H);default:return(0,B.jsx)($o,{resource:R,padding:!0,children:(0,B.jsx)(Vn,{value:R,ignoreMissingValues:!0})},H)}})]}):(0,B.jsx)(se.Center,{style:{width:"100%",height:"100%"},children:(0,B.jsx)(se.Loader,{})})}function br(e){return(0,B.jsxs)(se.Menu.Dropdown,{children:[(0,B.jsx)(se.Menu.Label,{children:"Resource"}),e.onPin&&(0,B.jsx)(se.Menu.Item,{icon:(0,B.jsx)(Ul,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${(0,_o.getReferenceString)(e.resource)}`,children:"Pin"}),e.onUnpin&&(0,B.jsx)(se.Menu.Item,{icon:(0,B.jsx)(Ql,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${(0,_o.getReferenceString)(e.resource)}`,children:"Unpin"}),e.onDetails&&(0,B.jsx)(se.Menu.Item,{icon:(0,B.jsx)(Hl,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${(0,_o.getReferenceString)(e.resource)}`,children:"Details"}),e.onEdit&&(0,B.jsx)(se.Menu.Item,{icon:(0,B.jsx)(Ll,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${(0,_o.getReferenceString)(e.resource)}`,children:"Edit"}),e.onDelete&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(se.Menu.Divider,{}),(0,B.jsx)(se.Menu.Label,{children:"Danger zone"}),(0,B.jsx)(se.Menu.Item,{color:"red",icon:(0,B.jsx)(Jr,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${(0,_o.getReferenceString)(e.resource)}`,children:"Delete"})]})]})}function np(e){let o=lp(e.history,e.resource);return o?(0,B.jsx)($o,{resource:e.resource,padding:!0,popupMenuItems:(0,B.jsx)(br,{...e}),children:(0,B.jsx)(Uu,{original:o,revised:e.resource})}):(0,B.jsxs)($o,{resource:e.resource,padding:!0,popupMenuItems:(0,B.jsx)(br,{...e}),children:[(0,B.jsx)("h3",{children:"Created"}),(0,B.jsx)(Vn,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0})]})}function lp(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 fp(e){let{classes:o}=ap(),r=!e.resource.priority||e.resource.priority==="routine"?void 0:o.pinnedComment;return(0,B.jsx)($o,{resource:e.resource,profile:e.resource.sender,dateTime:e.resource.sent,padding:!0,className:r,popupMenuItems:(0,B.jsx)(br,{...e}),children:(0,B.jsx)("p",{children:e.resource.payload?.[0]?.contentString})})}function sp(e){let o=e.resource.content?.contentType,t=o&&!o.startsWith("image/")&&!o.startsWith("video/")&&o!=="application/pdf";return(0,B.jsx)($o,{resource:e.resource,padding:!!t,popupMenuItems:(0,B.jsx)(br,{...e}),children:(0,B.jsx)(co,{value:e.resource.content})})}function ip(e){return(0,B.jsx)($o,{resource:e.resource,padding:!0,popupMenuItems:(0,B.jsx)(br,{...e}),children:(0,B.jsx)(se.ScrollArea,{children:(0,B.jsx)("pre",{children:e.resource.outcomeDesc})})})}function up(e){return(0,B.jsx)($o,{resource:e.resource,padding:!0,popupMenuItems:(0,B.jsx)(br,{...e}),children:(0,B.jsx)(wn,{value:e.resource})})}function cp(e){if(e.lengthComputable){let o=100*e.loaded/e.total;return`Uploaded: ${Jf(e.loaded)} / ${Jf(e.total)} ${o.toFixed(2)}%`}return`Uploaded: ${Jf(e.loaded)}`}function Jf(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"}var Ju=require("react/jsx-runtime");function dp(e){return(0,Ju.jsx)(Ko,{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 $f=require("react/jsx-runtime");function ba(e){let{children:o,...t}=e;return(0,$f.jsx)(zo,{children:(0,$f.jsx)(Jt,{...t,children:o})})}var Ra=require("@medplum/core");var $u=require("react/jsx-runtime");function mp(e){return(0,$u.jsx)(Ko,{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,Ra.createReference)(o),subject:o.subject,sender:(0,Ra.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",encounter:(0,Ra.createReference)(o),subject:o.subject,operator:(0,Ra.createReference)(t),issued:new Date().toISOString(),content:r})})}var Ar=require("@mantine/core"),fc=require("@medplum/core");var _e=require("react");var _u=require("@medplum/core");var Zu=require("react/jsx-runtime");function Ku(e){let o;try{o=(0,_u.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(0,Zu.jsx)(ke,{value:o[0]||"",propertyType:e.propertyType})}var q=require("@mantine/core"),Br=require("@medplum/core");var Qe=require("react");var It=require("@mantine/core"),xt=require("react/jsx-runtime");function ju(e){return(0,xt.jsxs)(It.Modal,{title:"Export",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel,children:[(0,xt.jsxs)(It.Box,{display:"flex",sx:{justifyContent:"space-between"},children:[e.exportCsv&&(0,xt.jsx)(Yu,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&(0,xt.jsx)(Yu,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})]}),(0,xt.jsx)(It.Text,{sx:{marginTop:"10px",marginLeft:"2px"},children:"Limited to 1000 records"})]})}function Yu(e){return(0,xt.jsx)(It.Button,{onClick:()=>{e.exportLogic(),e.onCancel()},children:`Export as ${e.text}`})}var Bo=require("@mantine/core"),Dr=require("@medplum/core"),Zo=require("react");var M=require("@medplum/core");var Rr=require("react/jsx-runtime"),pp={string:[M.Operator.EQUALS,M.Operator.NOT,M.Operator.CONTAINS,M.Operator.EXACT],fulltext:[M.Operator.EQUALS,M.Operator.NOT,M.Operator.CONTAINS,M.Operator.EXACT],token:[M.Operator.EQUALS,M.Operator.NOT],reference:[M.Operator.EQUALS,M.Operator.NOT],numeric:[M.Operator.EQUALS,M.Operator.NOT_EQUALS,M.Operator.GREATER_THAN,M.Operator.LESS_THAN,M.Operator.GREATER_THAN_OR_EQUALS,M.Operator.LESS_THAN_OR_EQUALS],quantity:[M.Operator.EQUALS,M.Operator.NOT_EQUALS,M.Operator.GREATER_THAN,M.Operator.LESS_THAN,M.Operator.GREATER_THAN_OR_EQUALS,M.Operator.LESS_THAN_OR_EQUALS],date:[M.Operator.EQUALS,M.Operator.NOT_EQUALS,M.Operator.GREATER_THAN,M.Operator.LESS_THAN,M.Operator.GREATER_THAN_OR_EQUALS,M.Operator.LESS_THAN_OR_EQUALS,M.Operator.STARTS_AFTER,M.Operator.ENDS_BEFORE,M.Operator.APPROXIMATELY],datetime:[M.Operator.EQUALS,M.Operator.NOT_EQUALS,M.Operator.GREATER_THAN,M.Operator.LESS_THAN,M.Operator.GREATER_THAN_OR_EQUALS,M.Operator.LESS_THAN_OR_EQUALS,M.Operator.STARTS_AFTER,M.Operator.ENDS_BEFORE,M.Operator.APPROXIMATELY]},xp={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 Pr(e,o){return{...e,filters:o,offset:0,name:void 0}}function Ip(e){return Pr(e,[])}function Pa(e,o){return Pr(e,(e.filters??[]).filter(t=>t.code!==o))}function _t(e,o,t,r,a){a&&(e=Pa(e,o));let n=[];return e.filters&&n.push(...e.filters),n.push({code:o,operator:t,value:r??""}),Pr(e,n)}function gp(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 _f(e,o){if(!e.filters)return e;let t=[...e.filters];return t.splice(o,1),{...e,filters:t,name:void 0}}function Kf(e,o){return jf(e,o,-1)}function Zf(e,o){return jf(e,o,0)}function Yf(e,o){return jf(e,o,1)}function jf(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),qn(e,o,r,a)}function es(e,o){return rs(e,o,-1)}function os(e,o){return rs(e,o,0)}function ts(e,o){return rs(e,o,1)}function rs(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),qn(e,o,r,a)}function as(e,o){let t=new Date;return t.setMonth(0),t.setDate(1),t.setHours(0,0,0,0),qn(e,o,t,new Date)}function qn(e,o,t,r){return e=Pa(e,o),e=ec(e,o,M.Operator.GREATER_THAN_OR_EQUALS,t),e=ec(e,o,M.Operator.LESS_THAN_OR_EQUALS,r),e}function ec(e,o,t,r){return _t(e,o,t,r.toISOString())}function Gn(e,o,t=!0){return _t(e,o,M.Operator.MISSING,t.toString())}function oc(e,o){return e.offset===o?e:{...e,offset:o,name:void 0}}function ns(e,o){let t=e.count??M.DEFAULT_SEARCH_COUNT,r=(o-1)*t;return oc(e,r)}function Un(e,o,t){return o===ls(e)&&t!==void 0&&t===fs(e)?e:{...e,sortRules:[{code:o,descending:!!t}],name:void 0}}function hp(e,o){let t=!1;return ls(e)===o&&(t=!fs(e)),Un(e,o,t)}function ls(e){let o=e.sortRules;if(!o||o.length===0)return;let t=o[0].code;return t.startsWith("-")?t.substr(1):t}function fs(e){let o=e.sortRules;return!o||o.length===0?!1:!!o[0].descending}function ss(e){return pp[e.type]}function Tr(e){return xp[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(M.capitalize).join(" "))}function is(e,o){let t=o.name;return t==="id"?e.id:t==="meta.versionId"?e.meta?.versionId:t==="_lastUpdated"?(0,M.formatDateTime)(e.meta?.lastUpdated):o.elementDefinition&&`${e.resourceType}.${o.name}`===o.elementDefinition.path?yp(e,o.elementDefinition):o.searchParams&&o.searchParams.length===1&&o.name===o.searchParams[0].code?vp(e,o.searchParams[0]):null}function yp(e,o){let t=o.path?.split(".")?.pop()?.replaceAll("[x]","")??"",[r,a]=ct({type:e.resourceType,value:e},t);return r?(0,Rr.jsx)(ke,{property:o,propertyType:a,value:r,maxWidth:200,ignoreMissingValues:!0,link:!1}):null}function vp(e,o){let t=(0,M.evalFhirPathTyped)(o.expression,[{type:e.resourceType,value:e}]);return!t||t.length===0?null:(0,Rr.jsx)(Rr.Fragment,{children:t.map((r,a)=>(0,Rr.jsx)(ke,{propertyType:r.type,value:r.value,maxWidth:200,ignoreMissingValues:!0,link:!1},`${a}-${t.length}`))})}var gt=require("react/jsx-runtime");function us(e){let o=(0,Zo.useRef)(!1),[t,r]=(0,Zo.useState)({search:JSON.parse((0,Dr.stringify)(e.search))}),[a,n]=(0,Zo.useState)(!1);(0,Zo.useEffect)(()=>{r({search:e.search})},[e.search]);let l=(0,Zo.useMemo)(()=>{if(!e.visible)return[];let i=e.search.resourceType,s=(0,Dr.getDataType)(i),u=(0,Dr.getSearchParameters)(i);return Sp(s,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 f(i){r({search:{...t.search,fields:i}})}return(0,gt.jsx)(Bo.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:(0,gt.jsx)("div",{"data-testid":"overlay-child"})},children:(0,gt.jsxs)(Bo.Stack,{children:[(0,gt.jsx)(Bo.MultiSelect,{withinPortal:!0,style:{width:550},placeholder:"Select fields to display",data:l,value:t.search.fields??[],onChange:f,onDropdownOpen:()=>n(!0),onDropdownClose:()=>n(!1),maxDropdownHeight:"250px",dropdownPosition:"bottom",clearButtonProps:{"aria-label":"Clear selection"},clearable:!0,searchable:!0}),(0,gt.jsx)(Bo.Group,{position:"right",children:(0,gt.jsx)(Bo.Button,{onClick:()=>e.onOk(t.search),children:"OK"})})]})})}function Sp(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 l=Je(n);!r.has(n)&&!a.has(l)&&(t.push(n),r.add(n),a.add(l))}return t}var $e=require("@mantine/core"),Ta=require("@medplum/core"),jo=require("react");var Io=require("@medplum/core");var Kt=require("react/jsx-runtime");function Qn(e){let{resourceType:o,filter:t}=e,r=Io.globalSchema.types[o].searchParams?.[t.code];if(r){if(r.type==="reference"&&(t.operator===Io.Operator.EQUALS||t.operator===Io.Operator.NOT_EQUALS))return(0,Kt.jsx)(po,{value:{reference:t.value}});let a=(0,Io.getSearchParameterDetails)(o,r);if(t.code==="_lastUpdated"||a.type===Io.SearchParameterType.DATETIME)return(0,Kt.jsx)(Kt.Fragment,{children:(0,Io.formatDateTime)(t.value)})}return(0,Kt.jsx)(Kt.Fragment,{children:t.value})}var kr=require("@mantine/core"),Yo=require("@medplum/core");var ht=require("react/jsx-runtime");function zn(e){let o=(0,Yo.getSearchParameterDetails)(e.resourceType,e.searchParam),t="filter-value";switch(o.type){case Yo.SearchParameterType.REFERENCE:return(0,ht.jsx)(zt,{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 Yo.SearchParameterType.BOOLEAN:return(0,ht.jsx)(kr.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 Yo.SearchParameterType.DATE:return(0,ht.jsx)(kr.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 Yo.SearchParameterType.DATETIME:return(0,ht.jsx)(no,{name:t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:e.onChange});case Yo.SearchParameterType.NUMBER:return(0,ht.jsx)(kr.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 Yo.SearchParameterType.QUANTITY:return(0,ht.jsx)(ze,{name:t,defaultValue:Cp(e.defaultValue),autoFocus:e.autoFocus,onChange:r=>{r?e.onChange(`${r.value}`):e.onChange("")}});default:return(0,ht.jsx)(kr.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 Cp(e){if(e){let[o,t,r]=e.split("|");if(o)return{value:parseFloat(o),system:t,unit:r}}}var N=require("react/jsx-runtime");function cs(e){let[o,t]=(0,jo.useState)(JSON.parse((0,Ta.stringify)(e.search))),[r,a]=(0,jo.useState)(-1),n=(0,jo.useRef)(o);n.current=o,(0,jo.useEffect)(()=>{t(JSON.parse((0,Ta.stringify)(e.search)))},[e.search]);function l(u){t(_t(n.current,u.code,u.operator,u.value))}if(!e.visible)return null;let f=e.search.resourceType,i=(0,Ta.getSearchParameters)(f)??{},s=o.filters||[];return(0,N.jsxs)($e.Modal,{title:"Filters",closeButtonProps:{"aria-label":"Close"},size:900,opened:e.visible,onClose:e.onCancel,children:[(0,N.jsx)("div",{children:(0,N.jsxs)("table",{children:[(0,N.jsxs)("colgroup",{children:[(0,N.jsx)("col",{style:{width:200}}),(0,N.jsx)("col",{style:{width:200}}),(0,N.jsx)("col",{style:{width:380}}),(0,N.jsx)("col",{style:{width:120}})]}),(0,N.jsx)("thead",{children:(0,N.jsxs)("tr",{children:[(0,N.jsx)("th",{children:"Field"}),(0,N.jsx)("th",{children:"Operation"}),(0,N.jsx)("th",{children:"Value"}),(0,N.jsx)("th",{children:"Actions"})]})}),(0,N.jsxs)("tbody",{children:[s.map((u,c)=>c===r?(0,N.jsx)(tc,{resourceType:f,searchParams:i,defaultValue:u,okText:"Save",onOk:d=>{let m=[...s];m[c]=d,t(Pr(n.current,m)),a(-1)},onCancel:()=>a(-1)},`filter-${u.code}-${u.operator}-${u.value}-input`):(0,N.jsx)(bp,{resourceType:f,searchParams:i,filter:u,onEdit:()=>a(c),onDelete:()=>t(_f(n.current,c))},`filter-${u.code}-${u.operator}-${u.value}-display`)),(0,N.jsx)(tc,{resourceType:f,searchParams:i,okText:"Add",onOk:l})]})]})}),(0,N.jsx)($e.Group,{position:"right",mt:"xl",children:(0,N.jsx)($e.Button,{onClick:()=>e.onOk(n.current),children:"OK"})})]})}function bp(e){let{filter:o}=e;return(0,N.jsxs)("tr",{children:[(0,N.jsx)("td",{children:Je(o.code)}),(0,N.jsx)("td",{children:Tr(o.operator)}),(0,N.jsx)("td",{children:(0,N.jsx)(Qn,{resourceType:e.resourceType,filter:o})}),(0,N.jsxs)("td",{children:[(0,N.jsx)($e.Button,{compact:!0,variant:"outline",onClick:e.onEdit,children:"Edit"}),(0,N.jsx)($e.Button,{compact:!0,variant:"outline",onClick:e.onDelete,children:"Delete"})]})]})}function tc(e){let[o,t]=(0,jo.useState)(e.defaultValue??{}),r=(0,jo.useRef)(o);r.current=o;function a(s){t({...r.current,code:s})}function n(s){t({...r.current,operator:s})}function l(s){t({...r.current,value:s})}let f=e.searchParams[o.code],i=f&&ss(f);return(0,N.jsxs)("tr",{children:[(0,N.jsx)("td",{children:(0,N.jsx)($e.NativeSelect,{"data-testid":"filter-field",defaultValue:r.current.code,onChange:s=>a(s.currentTarget.value),data:["",...Object.keys(e.searchParams).map(s=>({value:s,label:Je(s)}))]})}),(0,N.jsx)("td",{children:i&&(0,N.jsx)($e.NativeSelect,{"data-testid":"filter-operation",defaultValue:o.operator,onChange:s=>n(s.currentTarget.value),data:["",...i.map(s=>({value:s,label:Tr(s)}))]})}),(0,N.jsx)("td",{children:f&&o.operator&&(0,N.jsx)(zn,{resourceType:e.resourceType,searchParam:f,defaultValue:o.value,onChange:l})}),(0,N.jsxs)("td",{children:[o.code&&o.operator&&(0,N.jsx)($e.Button,{compact:!0,variant:"outline",onClick:()=>{e.onOk(r.current),t({})},children:e.okText}),e.onCancel&&(0,N.jsx)($e.Button,{compact:!0,variant:"outline",onClick:e.onCancel,children:"Cancel"})]})]})}var yt=require("@mantine/core"),rc=require("react");var et=require("react/jsx-runtime");function ac(e){let[o,t]=(0,rc.useState)(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function r(){e.onOk({...e.filter,value:o})}return(0,et.jsx)(yt.Modal,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel,children:(0,et.jsx)(ae,{onSubmit:r,children:(0,et.jsxs)(yt.Grid,{children:[(0,et.jsx)(yt.Grid.Col,{span:10,children:(0,et.jsx)(zn,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:o,autoFocus:!0,onChange:t})}),(0,et.jsx)(yt.Grid.Col,{span:2,children:(0,et.jsx)(yt.Button,{onClick:r,fullWidth:!0,children:"OK"})})]})})})}var F=require("@mantine/core"),Te=require("@medplum/core");var I=require("react/jsx-runtime");function nc(e){if(!e.searchParams)return null;function o(n,l){a(Un(e.search,n.code,l))}function t(n){a(Pa(e.search,n.code))}function r(n,l){e.onPrompt(n,{code:n.code,operator:l,value:""})}function a(n){e.onChange(n)}return e.searchParams.length===1?(0,I.jsx)(Rp,{search:e.search,searchParam:e.searchParams[0],onSort:o,onPrompt:r,onChange:a,onClear:t}):(0,I.jsx)(F.Menu.Dropdown,{children:e.searchParams.map(n=>(0,I.jsx)(F.Menu.Item,{children:Je(n.code)},n.code))})}function Rp(e){switch(e.searchParam.type){case"date":return(0,I.jsx)(Pp,{...e});case"number":case"quantity":return(0,I.jsx)(Tp,{...e});case"reference":return(0,I.jsx)(Dp,{...e});case"string":case"token":case"uri":return(0,I.jsx)(kp,{...e});default:return(0,I.jsxs)(I.Fragment,{children:["Unknown search param type: ",e.searchParam.type]})}}function Pp(e){let{searchParam:o}=e,t=o.code;return(0,I.jsxs)(F.Menu.Dropdown,{children:[(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Wr,{size:14}),onClick:()=>e.onSort(o,!1),children:"Sort Oldest to Newest"}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Xr,{size:14}),onClick:()=>e.onSort(o,!0),children:"Sort Newest to Oldest"}),(0,I.jsx)(F.Menu.Divider,{}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(ar,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS),children:"Equals..."}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(rr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT_EQUALS),children:"Does not equal..."}),(0,I.jsx)(F.Menu.Divider,{}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)($a,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.ENDS_BEFORE),children:"Before..."}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Ja,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.STARTS_AFTER),children:"After..."}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Dl,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS),children:"Between..."}),(0,I.jsx)(F.Menu.Divider,{}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Lo,{size:14}),onClick:()=>e.onChange(Yf(e.search,t)),children:"Tomorrow"}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Lo,{size:14}),onClick:()=>e.onChange(Zf(e.search,t)),children:"Today"}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Lo,{size:14}),onClick:()=>e.onChange(Kf(e.search,t)),children:"Yesterday"}),(0,I.jsx)(F.Menu.Divider,{}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Lo,{size:14}),onClick:()=>e.onChange(ts(e.search,t)),children:"Next Month"}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Lo,{size:14}),onClick:()=>e.onChange(os(e.search,t)),children:"This Month"}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Lo,{size:14}),onClick:()=>e.onChange(es(e.search,t)),children:"Last Month"}),(0,I.jsx)(F.Menu.Divider,{}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Lo,{size:14}),onClick:()=>e.onChange(as(e.search,t)),children:"Year to date"}),(0,I.jsx)(Wn,{...e})]})}function Tp(e){let{searchParam:o}=e;return(0,I.jsxs)(F.Menu.Dropdown,{children:[(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Wr,{size:14}),onClick:()=>e.onSort(o,!1),children:"Sort Smallest to Largest"}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Xr,{size:14}),onClick:()=>e.onSort(o,!0),children:"Sort Largest to Smallest"}),(0,I.jsx)(F.Menu.Divider,{}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(ar,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS),children:"Equals..."}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(rr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT_EQUALS),children:"Does not equal..."}),(0,I.jsx)(F.Menu.Divider,{}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Ja,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.GREATER_THAN),children:"Greater than..."}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(nr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.GREATER_THAN_OR_EQUALS),children:"Greater than or equal to..."}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)($a,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.LESS_THAN),children:"Less than..."}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(nr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.LESS_THAN_OR_EQUALS),children:"Less than or equal to..."}),(0,I.jsx)(Wn,{...e})]})}function Dp(e){let{searchParam:o}=e;return(0,I.jsxs)(F.Menu.Dropdown,{children:[(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(ar,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS),children:"Equals..."}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(rr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT),children:"Does not equal..."}),(0,I.jsx)(Wn,{...e})]})}function kp(e){let{searchParam:o}=e;return(0,I.jsxs)(F.Menu.Dropdown,{children:[(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Wr,{size:14}),onClick:()=>e.onSort(o,!1),children:"Sort A to Z"}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Xr,{size:14}),onClick:()=>e.onSort(o,!0),children:"Sort Z to A"}),(0,I.jsx)(F.Menu.Divider,{}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(ar,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS),children:"Equals..."}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(rr,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.NOT),children:"Does not equal..."}),(0,I.jsx)(F.Menu.Divider,{}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Bl,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.CONTAINS),children:"Contains..."}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(kl,{size:14}),onClick:()=>e.onPrompt(o,Te.Operator.EQUALS),children:"Does not contain..."}),(0,I.jsx)(Wn,{...e})]})}function Wn(e){let{searchParam:o}=e,t=o.code;return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(F.Menu.Divider,{}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Pl,{size:14}),onClick:()=>e.onChange(Gn(e.search,t)),children:"Missing"}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Rl,{size:14}),onClick:()=>e.onChange(Gn(e.search,t,!1)),children:"Not missing"}),(0,I.jsx)(F.Menu.Divider,{}),(0,I.jsx)(F.Menu.Item,{icon:(0,I.jsx)(Kl,{size:14}),onClick:()=>e.onClear(o),children:"Clear filters"})]})}var vt=require("@medplum/core");function ds(e){let o=e.resourceType,t=[];for(let r of e.fields||["id","_lastUpdated"])t.push(Bp(o,r));return t}function Bp(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,vt.getElementDefinition)(e,o),r=(0,vt.getSearchParameter)(e,o.toLowerCase());if(t&&r)return{name:o,elementDefinition:t,searchParams:[r]};if(t){let a=(0,vt.getSearchParameters)(e),n;if(a){let l=new RegExp(`${e}\\.${o.replaceAll("[x]","")}([^\\w-]|$)`);n=Object.values(a).filter(f=>!!f.expression&&l.test(f?.expression)),n.length===0&&(n=void 0)}return{name:o,elementDefinition:t,searchParams:n}}if(r){let a=(0,vt.getSearchParameterDetails)(e,r);return{name:o,elementDefinition:a.elementDefinitions?.[0],searchParams:[r]}}return{name:o}}var D=require("react/jsx-runtime"),Xn=class extends Event{constructor(t){super("change");this.definition=t}},Jn=class extends Event{constructor(t){super("load");this.response=t}},St=class extends Event{constructor(t,r){super("click");this.resource=t,this.browserEvent=r}},Ap=(0,q.createStyles)(e=>({root:{maxWidth:"100%",overflow:"auto",textAlign:"left",marginBottom:"20px"},table:{cursor:"pointer"},tr:{"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[7]:e.colors.gray[0]}},th:{padding:"0 !important"},control:{width:"100%",padding:`${e.spacing.xs} ${e.spacing.md}`,"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[6]:e.colors.gray[0]}},icon:{width:21,height:21,borderRadius:21}}));function lc(e){let{classes:o}=Ap(),t=P(),[r,a]=(0,Qe.useState)(!1),[n,l]=(0,Qe.useState)(),{search:f,onLoad:i}=e,[s,u]=(0,Qe.useState)({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,exportDialogVisible:!1,filterDialogVisible:!1}),c=(0,Qe.useRef)(s);c.current=s;let d=f.total??"accurate",m=(0,Qe.useCallback)(T=>{l(void 0),t.search(f.resourceType,(0,Br.formatSearchQuery)({...f,total:d,fields:void 0}),T).then(J=>{u({...c.current,searchResponse:J}),i&&i(new Jn(J))}).catch(J=>{u({...c.current,searchResponse:void 0}),l(J)})},[t,f,d,i]),p=(0,Qe.useCallback)(()=>{u({...c.current,searchResponse:void 0}),m({cache:"reload"})},[m]);(0,Qe.useEffect)(()=>{m()},[m]);function x(T,J){T.stopPropagation();let De=T.target.checked,Fe={...c.current.selected};De?Fe[J]=!0:delete Fe[J],u({...c.current,selected:Fe})}function C(T){T.stopPropagation();let ge=T.target.checked,De={},Fe=c.current.searchResponse;ge&&Fe?.entry&&Fe.entry.forEach(Vr=>{Vr.resource?.id&&(De[Vr.resource.id]=!0)}),u({...c.current,selected:De})}function v(){let T=c.current;if(!T.searchResponse?.entry||T.searchResponse.entry.length===0)return!1;for(let J of T.searchResponse.entry)if(J.resource?.id&&!T.selected[J.resource.id])return!1;return!0}function S(T){e.onChange&&e.onChange(new Xn(T))}function b(T,J){if(Ya(T.target)||T.button===2)return;V(T);let ge=T.button===1||T.ctrlKey||T.metaKey;!ge&&e.onClick&&e.onClick(new St(J,T)),ge&&e.onAuxClick&&e.onAuxClick(new St(J,T))}function A(){return!!(e.onExport??e.onExportCsv??e.onExportTransactionBundle)}if((0,Qe.useEffect)(()=>{a(!1),t.requestSchema(e.search.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.search.resourceType]),!r)return(0,D.jsx)(q.Center,{style:{width:"100%",height:"100%"},children:(0,D.jsx)(q.Loader,{})});let h=e.checkboxesEnabled,w=ds(f),j=f.resourceType,pe=s.searchResponse,to=pe?.entry?.map(T=>T.resource),ro="subtle",R="gray",H=16,rt=window.innerWidth<768;return(0,D.jsxs)("div",{className:o.root,"data-testid":"search-control",children:[!e.hideToolbar&&(0,D.jsxs)(q.Group,{position:"apart",mb:"xl",children:[(0,D.jsxs)(q.Group,{spacing:2,children:[(0,D.jsx)(q.Button,{compact:!0,variant:ro,color:R,leftIcon:(0,D.jsx)(Fl,{size:H}),onClick:()=>u({...c.current,fieldEditorVisible:!0}),children:"Fields"}),(0,D.jsx)(q.Button,{compact:!0,variant:ro,color:R,leftIcon:(0,D.jsx)(Vl,{size:H}),onClick:()=>u({...c.current,filterEditorVisible:!0}),children:"Filters"}),e.onNew&&(0,D.jsx)(q.Button,{compact:!0,variant:ro,color:R,leftIcon:(0,D.jsx)(Nl,{size:H}),onClick:e.onNew,children:"New..."}),!rt&&A()&&(0,D.jsx)(q.Button,{compact:!0,variant:ro,color:R,leftIcon:(0,D.jsx)(_l,{size:H}),onClick:e.onExport?e.onExport:()=>u({...c.current,exportDialogVisible:!0}),children:"Export..."}),!rt&&e.onDelete&&(0,D.jsx)(q.Button,{compact:!0,variant:ro,color:R,leftIcon:(0,D.jsx)(Jr,{size:H}),onClick:()=>e.onDelete(Object.keys(s.selected)),children:"Delete..."}),!rt&&e.onBulk&&(0,D.jsx)(q.Button,{compact:!0,variant:ro,color:R,leftIcon:(0,D.jsx)(Tl,{size:H}),onClick:()=>e.onBulk(Object.keys(s.selected)),children:"Bulk..."})]}),(0,D.jsxs)(q.Group,{spacing:2,children:[pe&&(0,D.jsxs)(q.Text,{size:"xs",color:"dimmed",children:[Ep(f,pe.total),"-",Lp(f,pe.total)," of"," ",`${d==="estimate"?"~":""}${pe.total?.toLocaleString()}`]}),(0,D.jsx)(q.ActionIcon,{title:"Refresh",onClick:p,children:(0,D.jsx)(Wl,{size:"1.125rem"})})]})]}),(0,D.jsxs)(q.Table,{className:o.table,children:[(0,D.jsxs)("thead",{children:[(0,D.jsxs)("tr",{children:[h&&(0,D.jsx)("th",{children:(0,D.jsx)("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:v(),onChange:T=>C(T)})}),w.map(T=>(0,D.jsx)("th",{children:(0,D.jsxs)(q.Menu,{shadow:"md",width:240,position:"bottom-end",children:[(0,D.jsx)(q.Menu.Target,{children:(0,D.jsx)(q.UnstyledButton,{className:o.control,children:(0,D.jsxs)(q.Group,{position:"apart",noWrap:!0,children:[(0,D.jsx)(q.Text,{weight:500,size:"sm",children:Je(T.name)}),(0,D.jsx)(q.Center,{className:o.icon,children:(0,D.jsx)(Sl,{size:14,stroke:1.5})})]})})}),(0,D.jsx)(nc,{search:e.search,searchParams:T.searchParams,onPrompt:(J,ge)=>{u({...c.current,filterDialogVisible:!0,filterDialogSearchParam:J,filterDialogFilter:ge})},onChange:J=>{S(J)}})]})},T.name))]}),!e.hideFilters&&(0,D.jsxs)("tr",{children:[h&&(0,D.jsx)("th",{}),w.map(T=>(0,D.jsx)("th",{children:T.searchParams&&(0,D.jsx)(Fp,{resourceType:j,searchParams:T.searchParams,filters:e.search.filters})},T.name))]})]}),(0,D.jsx)("tbody",{children:to?.map(T=>T&&(0,D.jsxs)("tr",{className:o.tr,"data-testid":"search-control-row",onClick:J=>b(J,T),onAuxClick:J=>b(J,T),children:[h&&(0,D.jsx)("td",{children:(0,D.jsx)("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${T.id}`,checked:!!s.selected[T.id],onChange:J=>x(J,T.id)})}),w.map(J=>(0,D.jsx)("td",{children:is(T,J)},J.name))]},T.id))})]}),to?.length===0&&(0,D.jsx)(zo,{children:(0,D.jsx)(q.Center,{style:{height:150},children:(0,D.jsx)(q.Text,{size:"xl",color:"dimmed",children:"No results"})})}),pe?.total!==void 0&&pe.total>0&&(0,D.jsx)(q.Center,{m:"md",p:"md",children:(0,D.jsx)(q.Pagination,{value:wp(f),total:Op(f,pe.total),onChange:T=>S(ns(f,T)),getControlProps:T=>{switch(T){case"previous":return{"aria-label":"Previous page"};case"next":return{"aria-label":"Next page"};default:return{}}}})}),n&&(0,D.jsx)("div",{"data-testid":"search-error",children:(0,D.jsx)("pre",{style:{textAlign:"left"},children:JSON.stringify(n,void 0,2)})}),(0,D.jsx)(us,{search:e.search,visible:c.current.fieldEditorVisible,onOk:T=>{S(T),u({...c.current,fieldEditorVisible:!1})},onCancel:()=>{u({...c.current,fieldEditorVisible:!1})}}),(0,D.jsx)(cs,{search:e.search,visible:c.current.filterEditorVisible,onOk:T=>{S(T),u({...c.current,filterEditorVisible:!1})},onCancel:()=>{u({...c.current,filterEditorVisible:!1})}}),(0,D.jsx)(ju,{visible:c.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{u({...c.current,exportDialogVisible:!1})}}),(0,D.jsx)(ac,{visible:c.current.filterDialogVisible,title:s.filterDialogSearchParam?.code?Je(s.filterDialogSearchParam.code):"",resourceType:j,searchParam:s.filterDialogSearchParam,filter:s.filterDialogFilter,defaultValue:"",onOk:T=>{S(_t(e.search,T.code,T.operator,T.value)),u({...c.current,filterDialogVisible:!1})},onCancel:()=>{u({...c.current,filterDialogVisible:!1})}},s.filterDialogSearchParam?.code)]})}var Mp=(0,Qe.memo)(lc);function Fp(e){let o=(e.filters??[]).filter(t=>e.searchParams.find(r=>r.code===t.code));return o.length===0?(0,D.jsx)("span",{children:"no filters"}):(0,D.jsx)(D.Fragment,{children:o.map(t=>(0,D.jsxs)("div",{children:[Tr(t.operator),"\xA0",(0,D.jsx)(Qn,{resourceType:e.resourceType,filter:t})]},`filter-${t.code}-${t.operator}-${t.value}`))})}function wp(e){return Math.floor((e.offset??0)/(e.count??Br.DEFAULT_SEARCH_COUNT))+1}function Op(e,o){let t=e.count??Br.DEFAULT_SEARCH_COUNT;return Math.ceil(o/t)}function Ep(e,o){return Math.min(o,(e.offset??0)+1)}function Lp(e,o){return Math.min(o,((e.offset??0)+1)*(e.count??Br.DEFAULT_SEARCH_COUNT))}var Se=require("react/jsx-runtime");function sc(e){let o=P(),[t,r]=(0,_e.useState)(!1),[a,n]=(0,_e.useState)(),{query:l,fields:f}=e,[i,s]=(0,_e.useState)(),[u,c]=(0,_e.useState)({}),d=(0,_e.useRef)();d.current=i;let m=(0,_e.useRef)({});m.current=u,(0,_e.useEffect)(()=>{n(void 0),o.graphql(l).then(s).catch(b=>n((0,fc.normalizeOperationOutcome)(b)))},[o,l]);function p(b,A){b.stopPropagation();let w=b.target.checked,j={...m.current};w?j[A]=!0:delete j[A],c(j)}function x(b){b.stopPropagation();let h=b.target.checked,w={},j=d.current?.data.ResourceList;h&&j&&j.forEach(pe=>{pe.id&&(w[pe.id]=!0)}),c(w)}function C(){let b=d.current?.data.ResourceList;if(!b||b.length===0)return!1;for(let A of b)if(A.id&&!m.current[A.id])return!1;return!0}function v(b,A){Ya(b.target)||(V(b),b.button!==1&&e.onClick&&e.onClick(new St(A,b)),b.button===1&&e.onAuxClick&&e.onAuxClick(new St(A,b)))}if((0,_e.useEffect)(()=>{o.requestSchema(e.resourceType).then(()=>r(!0)).catch(console.log)},[o,e.resourceType]),!t)return(0,Se.jsx)(Ar.Loader,{});let S=e.checkboxesEnabled;return(0,Se.jsxs)("div",{onContextMenu:b=>V(b),"data-testid":"search-control",children:[(0,Se.jsxs)(Ar.Table,{children:[(0,Se.jsx)("thead",{children:(0,Se.jsxs)("tr",{children:[S&&(0,Se.jsx)("th",{children:(0,Se.jsx)("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:C(),onChange:b=>x(b)})}),f.map(b=>(0,Se.jsx)("th",{children:b.name},b.name))]})}),(0,Se.jsx)("tbody",{children:i?.data.ResourceList.map(b=>b&&(0,Se.jsxs)("tr",{"data-testid":"search-control-row",onClick:A=>v(A,b),onAuxClick:A=>v(A,b),children:[S&&(0,Se.jsx)("td",{children:(0,Se.jsx)("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${b.id}`,checked:!!u[b.id],onChange:A=>p(A,b.id)})}),f.map(A=>(0,Se.jsx)("td",{children:(0,Se.jsx)(Ku,{propertyType:A.propertyType,path:A.fhirPath,resource:b})},A.name))]},b.id))})]}),i?.data.ResourceList.length===0&&(0,Se.jsx)("div",{"data-testid":"empty-search",children:"No results"}),a&&(0,Se.jsx)("div",{"data-testid":"search-error",children:(0,Se.jsx)("pre",{style:{textAlign:"left"},children:JSON.stringify(a,void 0,2)})}),e.onBulk&&(0,Se.jsx)(Ar.Button,{onClick:()=>e.onBulk(Object.keys(m.current)),children:"Bulk..."})]})}var Np=(0,_e.memo)(sc);var ot=require("react/jsx-runtime");function tt(e){return(0,ot.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size},children:[(0,ot.jsx)("title",{children:"Medplum Logo"}),(0,ot.jsx)("path",{fill:e.fill??"#ad7136",d:"M282 67c6-16 16-29 29-40L289 0c-22 17-37 41-43 68l17 23 19-24z"}),(0,ot.jsx)("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"}),(0,ot.jsx)("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"}),(0,ot.jsx)("path",{fill:e.fill??"#40bc26",d:"M207 220a176 176 0 01-177 43A176 176 0 01251 43l1 5c17 59 2 125-45 172z"}),(0,ot.jsx)("path",{fill:e.fill??"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"})]})}var $n=require("@mantine/core");var le=require("@mantine/core"),ms=require("@medplum/core");var _=require("react/jsx-runtime");function ic(e){let{group:o}=e;return(0,_.jsx)(le.Paper,{withBorder:!0,radius:"md",p:"xs",display:"flex",sx:{alignItems:"center",justifyContent:"center"},children:(0,_.jsxs)(le.Group,{children:[o.measureScore&&(0,_.jsx)(Hp,{group:o}),!o.measureScore&&(0,_.jsx)(Vp,{group:o})]})})}function uc(e){let{measure:o}=e;return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(le.Text,{fz:"md",fw:500,mb:8,children:o.title}),(0,_.jsx)(le.Text,{fz:"xs",c:"dimmed",mb:8,children:o.subtitle})]})}function Vp(e){let{group:o}=e,t=o.population,r=t?.find(i=>(0,ms.formatCodeableConcept)(i.code)==="numerator"),a=t?.find(i=>(0,ms.formatCodeableConcept)(i.code)==="denominator"),n=r?.count,l=a?.count;if(l===0)return(0,_.jsxs)(le.Box,{children:[(0,_.jsx)(le.Title,{order:3,children:"Not Applicable"}),(0,_.jsx)(le.Text,{children:`Denominator: ${l}`})]});if(n===void 0||l===void 0)return(0,_.jsxs)(le.Box,{children:[(0,_.jsx)(le.Title,{order:3,children:"Insufficient Data"}),(0,_.jsx)(le.Text,{children:`Numerator: ${n}`}),(0,_.jsx)(le.Text,{children:`Denominator: ${l}`})]});let f=n/l*100;return(0,_.jsx)(le.RingProgress,{size:120,thickness:12,roundCaps:!0,sections:[{value:f,color:cc(f)}],label:(0,_.jsx)(le.Flex,{justify:"center",children:(0,_.jsxs)(le.Text,{fw:700,fz:18,children:[n," / ",l]})})})}function Hp(e){let{group:o}=e,t=o.measureScore?.unit??o.measureScore?.code;return(0,_.jsx)(_.Fragment,{children:t==="%"?(0,_.jsx)(le.RingProgress,{size:120,thickness:12,roundCaps:!0,sections:[{value:qp(o),color:cc(o?.measureScore?.value??0)}],label:(0,_.jsx)(le.Flex,{justify:"center",children:(0,_.jsx)(le.Text,{fw:700,fz:18,children:(0,_.jsx)(Ho,{value:o.measureScore})})})}):(0,_.jsx)(le.Flex,{h:120,align:"center",children:(0,_.jsx)(le.Title,{order:3,children:(0,_.jsx)(Ho,{value:o.measureScore})})})})}function qp(e){let o=e.measureScore?.value,t=e.measureScore?.unit;return o?o<=1&&t==="%"?o*100:o:0}function cc(e){return e<=33?"red":e<=67?"yellow":"green"}var Mr=require("react/jsx-runtime");function Gp(e){let o=Z(e.measureReport),[t]=xl("Measure",{url:o?.measure});return o?(0,Mr.jsxs)($n.Box,{children:[t&&(0,Mr.jsx)(uc,{measure:t}),(0,Mr.jsx)($n.SimpleGrid,{cols:3,breakpoints:[{maxWidth:"48rem",cols:2,spacing:"md"},{maxWidth:"36rem",cols:1,spacing:"sm"}],spacing:"md",children:o.group?.map((r,a)=>(0,Mr.jsx)(ic,{group:r},r.id??a))})]}):null}var dc=require("@mantine/core"),mc=require("@medplum/core");var _n=require("react/jsx-runtime");function Zt(e){let o=e.outcome?.issue||e.issues;return!o||o.length===0?null:(0,_n.jsx)(dc.Alert,{icon:(0,_n.jsx)(Bt,{size:16}),color:"red",children:o.map(t=>(0,_n.jsx)("div",{"data-testid":"text-field-error",children:(0,mc.operationOutcomeIssueToString)(t)},t.details?.text))})}var Da=require("@medplum/core"),pc=require("react");var xc=require("react/jsx-runtime");function Up(e){let o=(0,pc.useCallback)((t,r,a)=>{let n=`${r}/${a}`,l=100;return Promise.allSettled([t.readHistory("Patient",a),t.search("Communication",{subject:n,_count:l}),t.search("Device",{patient:n,_count:l}),t.search("DeviceRequest",{patient:n,_count:l}),t.search("DiagnosticReport",{subject:n,_count:l}),t.search("Media",{subject:n,_count:l}),t.search("ServiceRequest",{subject:n,_count:l}),t.search("Task",{subject:n,_count:l})])},[]);return(0,xc.jsx)(Ko,{value:e.patient,loadTimelineResources:o,createCommunication:(t,r,a)=>({resourceType:"Communication",status:"completed",subject:(0,Da.createReference)(t),sender:(0,Da.createReference)(r),sent:new Date().toISOString(),payload:[{contentString:a}]}),createMedia:(t,r,a)=>({resourceType:"Media",status:"completed",subject:(0,Da.createReference)(t),operator:(0,Da.createReference)(r),issued:new Date().toISOString(),content:a})})}var Ne=require("@mantine/core"),Ic=require("@medplum/core");var io=require("react");var G=require("react/jsx-runtime"),gc=(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 Qp(e){let o=P(),t=Z(e.value),[r,a]=(0,io.useState)(!1),[n,l]=(0,io.useState)(),[f,i]=(0,io.useState)(),[s,u]=(0,io.useState)();function c(){i(void 0)}function d(){l(void 0)}let m=(0,io.useRef)();if(m.current=s,(0,io.useEffect)(()=>{o.requestSchema("PlanDefinition").then(()=>a(!0)).catch(console.log)},[o]),(0,io.useEffect)(()=>(u(_p(t??{resourceType:"PlanDefinition"})),document.addEventListener("mouseover",c),document.addEventListener("click",d),()=>{document.removeEventListener("mouseover",c),document.removeEventListener("click",d)}),[t]),!r||!s)return null;function p(x,C){u({...m.current,[x]:C})}return(0,G.jsx)("div",{children:(0,G.jsxs)(ae,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(s),children:[(0,G.jsx)(Ne.TextInput,{label:"Plan Title",defaultValue:s.title,onChange:x=>p("title",x.currentTarget.value)}),(0,G.jsx)(hc,{actions:s.action||[],selectedKey:n,setSelectedKey:l,hoverKey:f,setHoverKey:i,onChange:x=>p("action",x)}),(0,G.jsx)(Ne.Button,{type:"submit",children:"Save"})]})})}function hc(e){let{classes:o}=gc(),t=(0,io.useRef)();t.current=e.actions;function r(l){e.onChange(t.current.map(f=>f.id===l.id?l:f))}function a(l){e.onChange([...t.current,l]),e.setSelectedKey(l.id)}function n(l){e.onChange(t.current.filter(f=>f!==l))}return(0,G.jsxs)("div",{className:o.section,children:[e.actions.map(l=>(0,G.jsx)("div",{children:(0,G.jsx)(zp,{action:l,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:r,onRemove:()=>n(l)})},l.id)),(0,G.jsx)("div",{className:o.bottomActions,children:(0,G.jsx)(Ne.Anchor,{href:"#",onClick:l=>{V(l),a({id:vc()})},children:"Add action"})})]})}function zp(e){let{classes:o,cx:t}=gc(),{action:r}=e,a=$p(r),n=e.selectedKey===e.action.id,l=e.hoverKey===e.action.id;function f(u){u.stopPropagation(),e.setSelectedKey(e.action.id)}function i(u){V(u),e.setHoverKey(e.action.id)}let s=t(o.section,{[o.editing]:n,[o.hovering]:l&&!n});return(0,G.jsxs)("div",{"data-testid":r.id,className:s,onClick:f,onMouseOver:i,onFocus:i,children:[n?(0,G.jsx)(Xp,{action:r,actionType:a,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):(0,G.jsx)(Wp,{action:r,actionType:a}),(0,G.jsx)("div",{className:o.bottomActions,children:(0,G.jsx)(Ne.Anchor,{href:"#",onClick:u=>{u.preventDefault(),e.onRemove()},children:"Remove"})})]})}var xs={path:"PlanDefinition.action.timing[x]",min:0,max:1,description:"",isArray:!1,constraints:[],type:["dateTime","Period","Range","Timing"].map(e=>({code:e}))};function Wp(e){let{action:o,actionType:t}=e,[r,a]=yc(o);return(0,G.jsxs)("div",{children:[(0,G.jsxs)("div",{children:[o.title||"Untitled"," ",t&&`(${t})`]}),o.definitionCanonical&&(0,G.jsx)("div",{children:(0,G.jsx)(st,{value:{reference:o.definitionCanonical}})}),r&&(0,G.jsx)("div",{children:(0,G.jsx)(ke,{property:xs,propertyType:a,value:r})})]})}function Xp(e){let{action:o}=e,[t,r]=(0,io.useState)(e.actionType);function a(n,l){e.onChange({...o,[n]:l})}return(0,G.jsxs)(Ne.Stack,{spacing:"xl",children:[(0,G.jsx)(Ne.TextInput,{name:`actionTitle-${o.id}`,label:"Title",defaultValue:o.title,onChange:n=>a("title",n.currentTarget.value)}),(0,G.jsx)(Ne.TextInput,{name:`actionDescription-${o.id}`,label:"Description",defaultValue:o.description,onChange:n=>a("description",n.currentTarget.value)}),(0,G.jsx)(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&&(0,G.jsx)(hc,{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(0,G.jsx)(Kn,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:o,onChange:e.onChange});case"lab":return(0,G.jsx)(Kn,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});case"questionnaire":return(0,G.jsx)(Kn,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:o,onChange:e.onChange});case"task":return(0,G.jsx)(Kn,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});default:return null}})(),(0,G.jsx)(Oe,{title:"Timing",description:"When the action should take place.",children:(0,G.jsx)(Jp,{name:"timing-"+o.id,action:o,onChange:e.onChange})})]})}function Kn(e){let{id:o,definitionCanonical:t}=e.action,r=t?.startsWith(e.resourceType+"/")?{reference:t}:void 0;return(0,G.jsx)(xa,{name:o,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:a=>{a?e.onChange({...e.action,definitionCanonical:(0,Ic.getReferenceString)(a)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function Jp(e){let o=e.action,t="timing",[r,a]=yc(o);return(0,G.jsx)(Uo,{property:xs,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(n,l)=>{e.onChange(mr(o,t,l??t,xs,n))},outcome:void 0})}function $p(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task"}function yc(e){return ct({type:"PlanDefinitionAction",value:e},"timing")}var ps=1;function vc(e){if(e){if(e.startsWith("id-")){let o=parseInt(e.substring(3),10);isNaN(o)||(ps=Math.max(ps,o+1))}return e}return"id-"+ps++}function _p(e){return{...e,action:Sc(e.action)}}function Sc(e){if(e)return e.map(o=>({...o,id:vc(o.id),action:Sc(o.action)}))}var Q=require("@mantine/core"),jn=require("@medplum/core");var Ao=require("react");var Ce=require("@mantine/core"),te=require("@medplum/core"),Dc=require("react");var ye=require("@medplum/core"),ka=(v=>(v.group="group",v.display="display",v.question="question",v.boolean="boolean",v.decimal="decimal",v.integer="integer",v.date="date",v.dateTime="dateTime",v.time="time",v.string="string",v.text="text",v.url="url",v.choice="choice",v.openChoice="open-choice",v.attachment="attachment",v.reference="reference",v.quantity="quantity",v))(ka||{});function Is(e){return e.type==="choice"||e.type==="open-choice"}function gs(e,o){if(!e.enableWhen)return!0;let t=e.enableBehavior??"any";for(let r of e.enableWhen){let a=Cc(o,r.question);if(r.operator==="exists"&&!r.answerBoolean&&!a?.length){if(t==="any")return!0;continue}let{anyMatch:n,allMatch:l}=Zp(r,a,t);if(t==="any"&&n)return!0;if(t==="all"&&!l)return!1}return t!=="any"}function hs(e,o,t){return e.map(r=>{let a=t.answerOption?.find(l=>(0,ye.formatCoding)(l.valueCoding)===r||l[o]===r),n=(0,ye.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:a},"value");return{[o]:n?.value}})}function Cc(e,o){if(e)for(let t of e){if(t.linkId===o)return t.answer;if(t.item){let r=Cc(t.item,o);if(r)return r}}}function Kp(e,o,t){if(t==="exists")return!!e===o.value;if(e){let r=t==="="||t==="!="?t?.replace("=","~"):t,[{value:a}]=(0,ye.evalFhirPathTyped)(`%actualAnswer ${r} %expectedAnswer`,[e],{actualAnswer:e,expectedAnswer:o});return a}else return!1}function Zp(e,o,t){let r=o||[],a=(0,ye.getTypedPropertyValue)({type:"QuestionnaireItemEnableWhen",value:e},"answer[x]"),n=!1,l=!0;for(let f of r){let i=(0,ye.getTypedPropertyValue)({type:"QuestionnaireResponseItemAnswer",value:f},"value[x]"),{operator:s}=e;if(Kp(i,a,s)?n=!0:l=!1,t==="any"&&n)break}return{anyMatch:n,allMatch:l}}function Ba(e){let o=(0,ye.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 Aa(e,o){let t=(0,ye.deepClone)(e),r=(0,ye.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 ys(e,o,t){let r=(0,ye.getExtension)(e,"http://hl7.org/fhir/StructureDefinition/questionnaire-referenceFilter");if(!r?.valueString)return;let a=r.valueString;o?.reference&&(a=a.replaceAll("$subj",o.reference)),t?.reference&&(a=a.replaceAll("$encounter",t.reference));let n={},l=a.split("&");for(let f of l){let[i,s]=(0,ye.splitN)(f,"=",2);n[i]=s}return n}function vs(e){return{resourceType:"QuestionnaireResponse",questionnaire:(0,ye.getReferenceString)(e),item:bc(e.item)}}function bc(e){return e?.map(Zn)??[]}function Zn(e){return{id:jp(),linkId:e.linkId,text:e.text,item:bc(e.item),answer:e.initial?.map(ex)??[]}}var Yp=1;function jp(){return"id-"+Yp++}function ex(e){return{...e}}function Ss(e){return e.value.display||e.value.reference||(0,ye.stringify)(e.value)}function Cs(e){let o=e?.item?.[0];return o&&(0,ye.getExtension)(o,"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl")?.valueCodeableConcept?.coding?.[0]?.code==="page"?e.item.length:1}var Rc=require("react"),Yn=(0,Rc.createContext)({});var oe=require("react/jsx-runtime");function Ma(e){let o=(0,Dc.useContext)(Yn),t=e.item,r=e.response;function a(s){let u;Array.isArray(s)?u=s:e.index>=(e.response?.answer?.length??0)?u=(e.response?.answer??[]).concat([s]):u=(e.response?.answer??[]).map((d,m)=>m===e.index?s:d)??[],e.onChange({id:r?.id,linkId:r?.linkId,text:t.text,answer:u})}let n=t.type;if(!n)return null;let l=t.linkId;if(!l)return null;let f=t.initial&&t.initial.length>0?t.initial[0]:void 0,i=bs(r,e.index)??(0,te.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:f},"value");switch(n){case"display":return(0,oe.jsx)("p",{children:e.item.text},e.item.linkId);case"boolean":return(0,oe.jsx)(ta,{title:e.item.text,htmlFor:e.item.linkId,children:(0,oe.jsx)(Ce.Checkbox,{id:e.item.linkId,name:e.item.linkId,defaultChecked:i?.value,onChange:s=>a({valueBoolean:s.currentTarget.checked})})},e.item.linkId);case"decimal":return(0,oe.jsx)(Ce.TextInput,{type:"number",step:"any",id:l,name:l,required:t.required,defaultValue:i?.value,onChange:s=>a({valueDecimal:s.currentTarget.valueAsNumber})});case"integer":return(0,oe.jsx)(Ce.TextInput,{type:"number",step:1,id:l,name:l,required:t.required,defaultValue:i?.value,onChange:s=>a({valueInteger:s.currentTarget.valueAsNumber})});case"date":return(0,oe.jsx)(Ce.TextInput,{type:"date",id:l,name:l,required:t.required,defaultValue:i?.value,onChange:s=>a({valueDate:s.currentTarget.value})});case"dateTime":return(0,oe.jsx)(no,{name:l,required:t.required,defaultValue:i?.value,onChange:s=>a({valueDateTime:s})});case"time":return(0,oe.jsx)(Ce.TextInput,{type:"time",id:l,name:l,required:t.required,defaultValue:i?.value,onChange:s=>a({valueTime:s.currentTarget.value})});case"string":case"url":return(0,oe.jsx)(Ce.TextInput,{id:l,name:l,required:t.required,defaultValue:i?.value,onChange:s=>a({valueString:s.currentTarget.value})});case"text":return(0,oe.jsx)(Ce.Textarea,{id:l,name:l,required:t.required,defaultValue:i?.value,onChange:s=>a({valueString:s.currentTarget.value})});case"attachment":return(0,oe.jsx)(Ce.Group,{py:4,children:(0,oe.jsx)(Yr,{name:l,defaultValue:i?.value,onChange:s=>a({valueAttachment:s})})});case"reference":return(0,oe.jsx)(zt,{name:l,required:t.required,targetTypes:Ba(t),searchCriteria:ys(t,o.subject,o.encounter),defaultValue:i?.value,onChange:s=>a({valueReference:s})});case"quantity":return(0,oe.jsx)(ze,{name:l,required:t.required,defaultValue:i?.value,onChange:s=>a({valueQuantity:s}),disableWheel:!0});case"choice":case"open-choice":return lx(t)&&!t.answerValueSet?(0,oe.jsx)(ox,{name:l,item:t,initial:f,response:r,onChangeAnswer:s=>a(s)}):(0,oe.jsx)(tx,{name:l,item:t,initial:f,response:r,onChangeAnswer:s=>a(s)});default:return null}}function ox(e){let{name:o,item:t,initial:r,response:a}=e;if(!t.answerOption?.length)return(0,oe.jsx)(kc,{});let n=(0,te.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),l=[""];for(let i of t.answerOption){let s=(0,te.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:i},"value");l.push(Pc(s))}let f=bs(a)??n;if(t.repeats){let{propertyName:i,data:s}=fx(e.item),u=ax(a);return(0,oe.jsx)(Ce.MultiSelect,{data:s,placeholder:"Select items",searchable:!0,defaultValue:u||[Pc(n)],onChange:c=>{let d=hs(c,i,t);e.onChangeAnswer(d)}})}return(0,oe.jsx)(Ce.NativeSelect,{id:o,name:o,onChange:i=>{let s=i.currentTarget.selectedIndex;if(s===0){e.onChangeAnswer({});return}let u=t.answerOption[s-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)(f?.value)||f?.value,data:l})}function tx(e){let{name:o,item:t,initial:r,onChangeAnswer:a,response:n}=e;return!t.answerOption?.length&&!t.answerValueSet?(0,oe.jsx)(kc,{}):t.answerValueSet?(0,oe.jsx)(na,{name:o,binding:t.answerValueSet,onChange:l=>a({valueCoding:l})}):(0,oe.jsx)(rx,{name:n?.id??o,item:t,initial:r,response:n,onChangeAnswer:a})}function rx(e){let{name:o,item:t,initial:r,onChangeAnswer:a,response:n}=e,l=(0,te.getElementDefinition)("QuestionnaireItemAnswerOption","value[x]"),f=(0,te.getTypedPropertyValue)({type:"QuestionnaireItemInitial",value:r},"value"),i=[],s;if(t.answerOption)for(let d=0;d<t.answerOption.length;d++){let m=t.answerOption[d],p=`${o}-option-${d}`,x=(0,te.getTypedPropertyValue)({type:"QuestionnaireItemAnswerOption",value:m},"value");x?.value&&(f&&(0,te.stringify)(x)===(0,te.stringify)(f)&&(s=p),i.push([p,x]))}let u=bs(n),c=nx(i,u);return(0,oe.jsx)(Ce.Radio.Group,{name:o,value:c??s,onChange:d=>{let m=i.find(p=>p[0]===d);if(m){let p=m[1],x="value"+(0,te.capitalize)(p.type);a({[x]:p.value})}},children:i.map(([d,m])=>(0,oe.jsx)(Ce.Radio,{id:d,value:d,py:4,label:(0,oe.jsx)(ke,{property:l,propertyType:m.type,value:m.value})},d))})}function kc(){return(0,oe.jsx)(Ce.TextInput,{disabled:!0,placeholder:"No Answers Defined"})}function Bc(e){return(0,te.getTypedPropertyValue)({type:"QuestionnaireItemAnswer",value:e},"value")}function bs(e,o=0){let t=e.answer;return Bc(t?.[o]??{})}function ax(e){let o=e.answer;return o?o.map(r=>Bc(r)).map(r=>(0,te.formatCoding)(r?.value)||r?.value):[]}function nx(e,o){return e.find(t=>(0,te.deepEquals)(t[1].value,o?.value))?.[0]}function Pc(e){if(e)return e.type==="CodeableConcept"?(0,te.formatCodeableConcept)(e.value):e.type==="Coding"?(0,te.formatCoding)(e.value):e.type==="Reference"?Ss(e):e.value.toString()}function lx(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function fx(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:Tc(n,r),label:Tc(n,r)}));return{propertyName:r,data:a}}function Tc(e,o){return(0,te.formatCoding)(e.valueCoding)||e[o]?.toString()}var k=require("react/jsx-runtime"),sx=(0,Q.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 ix(e){let o=P(),t=Z(e.questionnaire),[r,a]=(0,Ao.useState)(!1),[n,l]=(0,Ao.useState)(),[f,i]=(0,Ao.useState)(),[s,u]=(0,Ao.useState)();function c(){u(void 0)}function d(){i(void 0)}(0,Ao.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>a(!0)).catch(console.log)},[o]),(0,Ao.useEffect)(()=>(l(mx(t??{resourceType:"Questionnaire"})),document.addEventListener("mouseover",c),document.addEventListener("click",d),()=>{document.removeEventListener("mouseover",c),document.removeEventListener("click",d)}),[t]);let m=(p,x)=>{l(p),e.autoSave&&!x&&e.onSubmit&&e.onSubmit(p)};return!r||!n?null:(0,k.jsx)("div",{children:(0,k.jsxs)(ae,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(n),children:[(0,k.jsx)(Ac,{item:n,selectedKey:f,setSelectedKey:i,hoverKey:s,setHoverKey:u,onChange:m}),(0,k.jsx)(Q.Button,{type:"submit",children:"Save"})]})})}function Ac(e){let{classes:o,cx:t}=sx(),r=e.item,a=e.item,n=(0,jn.isResource)(e.item),l=n||a.type==="group",f=a.linkId??"[untitled]",i=e.selectedKey===e.item.id,s=e.hoverKey===e.item.id,u=(0,Ao.useRef)();u.current=e.item;function c(h){V(h),e.setSelectedKey(e.item.id)}function d(h){V(h),e.setHoverKey(e.item.id)}function m(h){let w=u.current;e.onChange({...w,item:w.item?.map(j=>j.id===h.id?h:j)})}function p(h,w){e.onChange({...e.item,item:[...e.item.item??[],h]},w)}function x(h){e.onChange({...e.item,item:e.item.item?.filter(w=>w!==h)})}function C(h,w){e.onChange({...u.current,[h]:w})}function v(h){e.onChange({...e.item,...h})}function S(h){e.onChange({...e.item,item:e.item.item?.map(w=>w===h?{...w,repeats:!w.repeats}:w)})}function b(h,w){let j=Ix(e.item.item,h,w);e.onChange({...e.item,item:j})}let A=t(o.section,{[o.editing]:i,[o.hovering]:s&&!i});return(0,k.jsxs)("div",{"data-testid":a.linkId,className:A,onClick:c,onMouseOver:d,onFocus:d,children:[(0,k.jsx)("div",{className:o.questionBody,children:i?(0,k.jsxs)(k.Fragment,{children:[n&&(0,k.jsx)(Q.TextInput,{size:"xl",defaultValue:r.title,onBlur:h=>C("title",h.currentTarget.value)}),!n&&(0,k.jsx)(Q.Textarea,{autosize:!0,minRows:2,defaultValue:a.text,onBlur:h=>C("text",h.currentTarget.value)}),a.type==="reference"&&(0,k.jsx)(dx,{item:a,onChange:v}),Is(a)&&(0,k.jsx)(ux,{item:a,onChange:h=>v(h)})]}):(0,k.jsxs)(k.Fragment,{children:[r.title&&(0,k.jsx)(Q.Title,{children:r.title}),a.text&&(0,k.jsx)("div",{children:a.text}),!l&&(0,k.jsx)(Ma,{item:a,index:0,onChange:()=>{},response:{}})]})}),a.item?.map((h,w)=>(0,k.jsx)("div",{children:(0,k.jsx)(Ac,{item:h,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,isFirst:w===0,isLast:w===(e.item.item??[]).length-1,setHoverKey:e.setHoverKey,onChange:m,onRemove:()=>x(h),onRepeatable:S,onMoveUp:()=>b(w,-1),onMoveDown:()=>b(w,1)})},h.id)),!l&&(0,k.jsx)("div",{className:o.topActions,children:i?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Q.TextInput,{size:"xs",className:o.linkIdInput,defaultValue:a.linkId,onBlur:h=>C("linkId",h.currentTarget.value)}),!l&&(0,k.jsx)(Q.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:a.type,onChange:h=>C("type",h.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"}]})]}):(0,k.jsx)("div",{children:f})}),!n&&(0,k.jsx)(Q.Box,{className:o.movementActions,children:(0,k.jsxs)(Q.Box,{className:o.columnAlignment,children:[!e.isFirst&&(0,k.jsx)(Q.Anchor,{href:"#",onClick:h=>{h.preventDefault(),e.onMoveUp&&e.onMoveUp()},children:(0,k.jsx)(bl,{"data-testid":"up-button",size:15,className:o.movementIcons})}),!e.isLast&&(0,k.jsx)(Q.Anchor,{href:"#",onClick:h=>{h.preventDefault(),e.onMoveDown&&e.onMoveDown()},children:(0,k.jsx)(Cl,{"data-testid":"down-button",size:15,className:o.movementIcons})})]})}),(0,k.jsxs)("div",{className:o.bottomActions,children:[l&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Q.Anchor,{href:"#",onClick:h=>{h.preventDefault(),p({id:Yt(),linkId:Ts("q"),type:"string",text:"Question"})},children:"Add item"}),(0,k.jsx)(Q.Anchor,{href:"#",onClick:h=>{h.preventDefault(),p({id:Yt(),linkId:Ts("g"),type:"group",text:"Group"},!0)},children:"Add group"})]}),n&&(0,k.jsx)(Q.Anchor,{href:"#",onClick:h=>{h.preventDefault(),p(xx(),!0)},children:"Add Page"}),i&&!n&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Q.Anchor,{href:"#",onClick:h=>{h.preventDefault(),e.onRepeatable&&e.onRepeatable(a)},children:a.repeats?"Remove Repeatable":"Make Repeatable"}),(0,k.jsx)(Q.Anchor,{href:"#",onClick:h=>{h.preventDefault(),e.onRemove&&e.onRemove()},children:"Remove"})]})]})]})}function ux(e){let o=(0,jn.getElementDefinition)("QuestionnaireItemAnswerOption","value[x]"),t=e.item.answerOption??[];return(0,k.jsxs)("div",{children:[e.item.answerValueSet!==void 0?(0,k.jsx)(Q.TextInput,{placeholder:"Enter Value Set",defaultValue:e.item.answerValueSet,onChange:r=>e.onChange({...e.item,answerValueSet:r.target.value})}):(0,k.jsx)(cx,{options:t,property:o,item:e.item,onChange:e.onChange}),(0,k.jsxs)(Q.Box,{display:"flex",children:[(0,k.jsx)(Q.Anchor,{href:"#",onClick:r=>{V(r),e.onChange({...e.item,answerValueSet:void 0,answerOption:[...t,{id:Yt()}]})},children:"Add choice"}),(0,k.jsx)(Q.Space,{w:"lg"}),(0,k.jsx)(Q.Anchor,{href:"#",onClick:r=>{V(r),e.onChange({...e.item,answerOption:[],answerValueSet:""})},children:"Add value set"})]})]})}function cx(e){return(0,k.jsx)("div",{children:e.options.map(o=>{let[t,r]=ct({type:"QuestionnaireItemAnswerOption",value:o},"value");return(0,k.jsxs)("div",{style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"},children:[(0,k.jsx)("div",{children:(0,k.jsx)(Uo,{name:"value[x]",property:e.property,defaultPropertyType:r,defaultValue:t,onChange:(a,n)=>{let l=[...e.options],f=l.findIndex(i=>i.id===o.id);l[f]={id:o.id,[n]:a},e.onChange({...e.item,answerOption:l})},outcome:void 0},o.id)}),(0,k.jsx)("div",{children:(0,k.jsx)(Q.Anchor,{href:"#",onClick:a=>{V(a),e.onChange({...e.item,answerOption:e.options.filter(n=>n.id!==o.id)})},children:"Remove"})})]},o.id)})})}function dx(e){let o=Ba(e.item)??[];return(0,k.jsxs)(k.Fragment,{children:[o.map((t,r)=>(0,k.jsxs)(Q.Group,{children:[(0,k.jsx)(fr,{name:"resourceType",placeholder:"Resource Type",defaultValue:t,onChange:a=>{e.onChange(Aa(e.item,o.map(n=>n===t?a:n)))}}),(0,k.jsx)(Q.Anchor,{href:"#",onClick:a=>{V(a),e.onChange(Aa(e.item,o.filter(n=>n!==t)))},children:"Remove"})]},`${t}-${r}`)),(0,k.jsx)(Q.Anchor,{href:"#",onClick:t=>{V(t),e.onChange(Aa(e.item,[...o,""]))},children:"Add Resource Type"})]})}var Rs=1,Ps=1;function Ts(e){return e+Rs++}function Yt(){return"id-"+Ps++}function mx(e){return{...e,id:e.id||Yt(),item:Mc(e.item)}}function Mc(e){if(e)return e.forEach(o=>{o.id?.match(/^id-\d+$/)&&(Ps=Math.max(Ps,parseInt(o.id.substring(3),10)+1)),o.linkId?.match(/^q\d+$/)&&(Rs=Math.max(Rs,parseInt(o.linkId.substring(1),10)+1))}),e.map(o=>({...o,id:o.id||Yt(),item:Mc(o.item),answerOption:px(o.answerOption)}))}function px(e){if(e)return e.map(o=>({...o,id:o.id||Yt()}))}function xx(){return{id:Yt(),linkId:Ts("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 Ix(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 Nc=require("@mantine/core"),ol=require("@medplum/core");var er=require("react");var go=require("@mantine/core");var Fc=require("@mantine/core"),wc=require("react");var jt=require("react/jsx-runtime");function el(e){let{item:o,response:t,onChange:r}=e,[a,n]=(0,wc.useState)(gx(o,t??{}));if(!e.checkForQuestionEnabled(o)||!t)return null;if(o.type==="display")return(0,jt.jsx)("p",{children:o.text},o.linkId);let l=o?.repeats&&o.type!=="choice"&&o.type!=="open-choice";return o.type==="boolean"?(0,jt.jsx)(Ma,{item:o,response:t,onChange:f=>r([f]),index:0},o.linkId):(0,jt.jsxs)(Oe,{htmlFor:e.item.linkId,title:e.item.text,withAsterisk:e.item.required,children:[[...Array(a)].map((f,i)=>(0,jt.jsx)(Ma,{item:o,response:t,onChange:s=>r([s]),index:i},`${o.linkId}-${i}`)),l&&(0,jt.jsx)(Fc.Anchor,{onClick:()=>n(f=>f+1),children:"Add Item"})]},e.item.linkId)}function gx(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"),Oc=require("react");var Ke=require("react/jsx-runtime");function Ds(e){let[o,t]=(0,Oc.useState)(e.response);if(o.length===0)return null;function r(n,l){let f=o.map((i,s)=>s===l?n[0]:i);t(f),e.onChange(f)}function a(){let n=Zn(e.item);t([...o,n])}return(0,Ke.jsxs)(Ke.Fragment,{children:[o.map((n,l)=>(0,Ke.jsx)(Ec,{item:e.item,response:n,checkForQuestionEnabled:e.checkForQuestionEnabled,onChange:f=>r(f,l)},n.id)),e.item.repeats&&(0,Ke.jsx)(Fr.Anchor,{onClick:a,children:`Add Group: ${e.item.text}`})]})}function Ec(e){let{response:o,checkForQuestionEnabled:t,onChange:r}=e;function a(n){let f=o.item?.map(s=>n.find(c=>c.id===s.id)??s)?.concat(n.slice(1)),i={...o,item:f};r([i])}return e.checkForQuestionEnabled(e.item)?(0,Ke.jsxs)("div",{children:[e.item.text&&(0,Ke.jsx)(Fr.Title,{order:3,mb:"md",children:e.item.text}),(0,Ke.jsx)(Fr.Stack,{children:e.item.item?.map(n=>n.type==="group"?n.repeats?(0,Ke.jsx)(Ds,{item:n,response:o.item?.filter(l=>l.linkId===n.linkId)??[],checkForQuestionEnabled:t,onChange:a},n.linkId):(0,Ke.jsx)(Ec,{item:n,checkForQuestionEnabled:t,response:o.item?.find(l=>l.linkId===n.linkId)??{},onChange:a},n.linkId):(0,Ke.jsx)(el,{item:n,response:o.item?.find(l=>l.linkId===n.linkId),onChange:a,checkForQuestionEnabled:t},n.linkId))})]},e.item.linkId):null}var Ve=require("react/jsx-runtime");function Lc(e){let{items:o,response:t,activePage:r,onChange:a,nextStep:n,prevStep:l,numberOfPages:f,renderPages:i,submitButtonText:s,checkForQuestionEnabled:u}=e,c=o.map(d=>{let m=t?.item?.filter(x=>x.linkId===d.linkId)??[],p=d.type==="group"?(0,Ve.jsx)(Ds,{item:d,response:m,onChange:a,checkForQuestionEnabled:u},d.linkId):(0,Ve.jsx)(el,{item:d,response:m?.[0],onChange:a,checkForQuestionEnabled:u},d.linkId);return i?(0,Ve.jsx)(go.Stepper.Step,{label:d.text,children:p},d.linkId):p});return(0,Ve.jsxs)(Ve.Fragment,{children:[i&&(0,Ve.jsx)(go.Stepper,{active:r??0,allowNextStepsSelect:!1,p:6,children:c}),!i&&(0,Ve.jsx)(go.Stack,{children:c}),(0,Ve.jsx)(hx,{activePage:r??0,numberOfPages:f,nextStep:n,prevStep:l,submitButtonText:s})]})}function hx(e){let o=e.activePage>0,t=e.activePage<e.numberOfPages-1,r=e.activePage===e.numberOfPages-1;return(0,Ve.jsxs)(go.Group,{position:"right",mt:"xl",spacing:"xs",children:[o&&(0,Ve.jsx)(go.Button,{onClick:e.prevStep,children:"Back"}),t&&(0,Ve.jsx)(go.Button,{onClick:a=>{a.currentTarget.closest("form").reportValidity()&&e.nextStep()},children:"Next"}),r&&(0,Ve.jsx)(go.Button,{type:"submit",children:e.submitButtonText??"Submit"})]})}var wr=require("react/jsx-runtime");function ks(e){let o=P(),t=o.getProfile(),[r,a]=(0,er.useState)(!1),n=Z(e.questionnaire),[l,f]=(0,er.useState)(),[i,s]=(0,er.useState)(0);(0,er.useEffect)(()=>{o.requestSchema("Questionnaire").then(()=>o.requestSchema("QuestionnaireResponse")).then(()=>a(!0)).catch(console.log)},[o]),(0,er.useEffect)(()=>{f(n?vs(n):void 0)},[n]);function u(x){let C=l?.item??[],S={resourceType:"QuestionnaireResponse",item:Vc(C,Array.isArray(x)?x:[x])};f(S)}function c(x){return gs(x,l?.item??[])}if(!r||!n)return null;let d=Cs(n),m=()=>s(x=>x+1),p=()=>s(x=>x-1);return(0,wr.jsx)(Yn.Provider,{value:{subject:e.subject,encounter:e.encounter},children:(0,wr.jsxs)(ae,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&l&&e.onSubmit({...l,questionnaire:(0,ol.getReferenceString)(n),subject:e.subject,source:(0,ol.createReference)(t),authored:new Date().toISOString(),status:"completed"})},children:[n.title&&(0,wr.jsx)(Nc.Title,{children:n.title}),(0,wr.jsx)(Lc,{items:n.item??[],response:l,onChange:u,renderPages:d>1,activePage:i,numberOfPages:d,submitButtonText:e.submitButtonText,checkForQuestionEnabled:c,nextStep:m,prevStep:p})]})})}function yx(e,o){let t=Vc(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 Vc(e,o){let t=[],r=new Set;for(let a of e){let n=a.id,l=o.find(f=>f.id===n);l?(t.push(yx(a,l)),r.add(l.id)):t.push(a)}for(let a of o)r.has(a.id)||t.push(a);return t}var K=require("@mantine/core"),Fa=require("@medplum/core");var Or=require("react");var W=require("react/jsx-runtime"),vx=(0,K.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"}})),Sx=["gender","age","gestationalAge","context","appliesTo","category"],Cx={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function bx(e){e=Object.assign(Cx,e);let o=e.definition,[t,r]=(0,Or.useState)([]),[a,n]=(0,Or.useState)(1),[l,f]=(0,Or.useState)(1);return(0,Or.useEffect)(()=>{let p=Px(o,f);r(Tx(p.qualifiedInterval||[],n))},[o]),(0,W.jsxs)(ae,{testid:"reference-range-editor",onSubmit:i,children:[(0,W.jsx)(K.Stack,{children:t.map(p=>(0,W.jsx)(Hc,{unit:kx(o.quantitativeDetails?.unit),onChange:c,onAdd:d,onRemove:m,onRemoveGroup:u,intervalGroup:p},`group-${p.id}`))}),(0,W.jsx)(K.ActionIcon,{title:"Add Group",size:"sm",onClick:p=>{V(p),s({id:`group-id-${a}`,filters:{},intervals:[]}),n(x=>x+1)},children:(0,W.jsx)(At,{})}),(0,W.jsx)(K.Group,{position:"right",children:(0,W.jsx)(K.Button,{type:"submit",children:"Save"})})]});function i(){let p=t.flatMap(x=>x.intervals).filter(x=>!Bx(x));e.onSubmit({...o,qualifiedInterval:p})}function s(p){r(x=>[...x,p])}function u(p){r(x=>x.filter(C=>C.id!==p.id))}function c(p,x){r(C=>{C=[...C];let v=C.find(b=>b.id===p),S=v?.intervals.findIndex(b=>b.id===x.id);return S!==void 0&&v?.intervals[S]&&(v.intervals[S]=x),C})}function d(p,x){x.id===void 0&&(x.id=`id-${l}`,f(C=>C+1)),r(C=>{C=[...C];let v=C.findIndex(S=>S.id===p);if(v!==-1){let S={...C[v]};x={...x,...S.filters},S.intervals=[...S.intervals,x],C[v]=S}return C})}function m(p,x){r(C=>{C=[...C];let v=C.find(S=>S.id===p);return v&&(v.intervals=v.intervals.filter(S=>S.id!==x.id)),C})}}function Hc(e){let{intervalGroup:o,unit:t}=e,{classes:r}=vx();return(0,W.jsx)(zo,{"data-testid":o.id,className:r.section,children:(0,W.jsxs)(K.Stack,{spacing:"lg",children:[(0,W.jsx)(K.Group,{position:"right",children:(0,W.jsx)(K.ActionIcon,{title:"Remove Group","data-testid":`remove-group-button-${o.id}`,size:"sm",onClick:a=>{V(a),e.onRemoveGroup(o)},children:(0,W.jsx)(nt,{})},`remove-group-button-${o.id}`)}),(0,W.jsx)(Rx,{intervalGroup:o,onChange:e.onChange}),(0,W.jsx)(K.Divider,{}),o.intervals.map(a=>(0,W.jsxs)(K.Stack,{spacing:"xs",children:[(0,W.jsxs)(K.Group,{children:[(0,W.jsx)(K.TextInput,{"data-testid":`condition-${a.id}`,defaultValue:a.condition,label:"Condition: ",size:"sm",onChange:n=>{V(n),e.onChange(o.id,{...a,condition:n.currentTarget.value.trim()})}},`condition-${a.id}`),(0,W.jsx)(K.ActionIcon,{title:"Remove Interval",size:"sm","data-testid":`remove-interval-${a.id}`,onClick:n=>{V(n),e.onRemove(o.id,a)},children:(0,W.jsx)(nt,{})},`remove-interval-${a.id}`)]}),(0,W.jsx)(hr,{onChange:n=>{e.onChange(o.id,{...a,range:n})},name:`range-${a.id}`,defaultValue:a.range},`range-${a.id}`)]},`interval-${a.id}`)),(0,W.jsx)(K.ActionIcon,{title:"Add Interval",size:"sm",onClick:a=>{V(a),e.onAdd(o.id,{range:{low:{unit:t},high:{unit:t}}})},children:(0,W.jsx)(At,{})})]})})}function Rx(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(0,W.jsxs)(K.Stack,{style:{maxWidth:"50%"},children:[(0,W.jsx)(K.Group,{children:(0,W.jsx)(K.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})}}})}),(0,W.jsxs)(K.Group,{spacing:"xs",children:[(0,W.jsx)(K.Text,{component:"label",htmlFor:`div-age-${o.id}`,children:"Age:"}),(0,W.jsx)("div",{id:`div-age-${o.id}`,children:(0,W.jsx)(hr,{name:`age-${o.id}`,defaultValue:o.filters.age,onChange:r=>{for(let a of o.intervals)t(o.id,{...a,age:r})}},`age-${o.id}`)})]}),(0,W.jsx)(K.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"}]}})}}}),(0,W.jsx)(K.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 Px(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 Tx(e,o){let t=1,r={};for(let a of e){let n=Dx(a);n in r||(r[n]={id:`group-id-${t++}`,filters:Object.fromEntries(Sx.map(l=>[l,a[l]])),intervals:[]}),r[n].intervals.push(a)}return o(t),Object.values(r)}function Dx(e){return[`gender=${e.gender}`,`age=${(0,Fa.formatRange)(e.age)}`,`gestationalAge=${(0,Fa.formatRange)(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map(t=>t.text).join("+")}`,`category=${e.category}`].join(":")}function kx(e){return e&&((0,Fa.getCodeBySystem)(e,"http://unitsofmeasure.org")||e.text)}function Bx(e){return e.range?.low?.value===void 0&&e.range?.high?.value===void 0}var Mo=require("@mantine/core"),tl=require("@medplum/core");var or=require("react");var Be=require("react/jsx-runtime");function Ax(e){let o=P(),t=Z(e.value),[r,a]=(0,or.useState)(!1),[n,l]=(0,or.useState)();if((0,or.useEffect)(()=>{t&&!r&&(o.executeBatch(f(t)).then(l).catch(console.log),a(!0))},[o,t,r]),!t||!n)return null;return(0,Be.jsx)(Mo.Grid,{children:t.action?.map((s,u)=>{let c=s.resource&&i(s.resource),d=c?.input?.[0]?.valueReference,m=c?.output?.[0]?.valueReference;return(0,Be.jsxs)(or.Fragment,{children:[(0,Be.jsx)(Mo.Grid.Col,{span:1,p:"md",children:c?.status==="completed"?(0,Be.jsx)(Al,{}):(0,Be.jsx)(Jl,{color:"gray"})}),(0,Be.jsxs)(Mo.Grid.Col,{span:9,p:"xs",children:[(0,Be.jsx)(Mo.Text,{weight:500,children:s.title}),s.description&&(0,Be.jsx)("div",{children:s.description}),(0,Be.jsxs)("div",{children:["Last edited by\xA0",(0,Be.jsx)(po,{value:c?.meta?.author}),"\xA0on\xA0",(0,tl.formatDateTime)(c?.meta?.lastUpdated)]}),(0,Be.jsxs)("div",{children:["Status: ",(0,Be.jsx)(Sa,{status:c?.status||"unknown"})]})]}),(0,Be.jsxs)(Mo.Grid.Col,{span:2,p:"md",children:[d&&!m&&(0,Be.jsx)(Mo.Button,{onClick:()=>e.onStart(c,d),children:"Start"}),d&&m&&(0,Be.jsx)(Mo.Button,{onClick:()=>e.onEdit(c,d,m),children:"Edit"})]})]},`action-${u}`)})});function f(s){let u=[];if(s.action)for(let c of s.action)c.resource?.reference&&u.push({request:{method:"GET",url:c.resource.reference}});return{resourceType:"Bundle",type:"batch",entry:u}}function i(s){for(let u of n?.entry)if(u.resource&&s.reference===(0,tl.getReferenceString)(u.resource))return u.resource}}var zc=require("@mantine/core");var al=require("react");var qc=require("@medplum/core");function rl(e,o){let t=Mx(e,o);return Fx(t,e,o)}function Mx(e,o){let t=e.length,r=o.length,a=t+r+1,n=1+2*a,l=n/2|0,f=new Array(n);f[l+1]={i:0,j:-1,prev:void 0,snake:!0};for(let i=0;i<a;i++){for(let s=-i;s<=i;s+=2){let u=l+s,c=u+1,d=u-1,m=f[c],p=f[d],x,C=0;s===-i||s!==i&&p.i<m.i?(C=m.i,x=m):(C=p.i+1,x=p),f[d]=void 0;let v=C-s,S={i:C,j:v,prev:wx(x),snake:!1};for(;C<t&&v<r&&e[C]===o[v];)C++,v++;if(C>S.i&&(S={i:C,j:v,prev:S,snake:!0}),f[u]=S,C>=t&&v>=r)return f[u]}f[l+i-1]=void 0}}function Fx(e,o,t){let r=[],a=e;for(a.snake&&(a=a.prev);a?.prev&&a.prev.j>=0;){let n=a.i,l=a.j;a=a.prev;let f=a.i,i=a.j,s={position:f,lines:o.slice(f,n)},u={position:i,lines:t.slice(i,l)},c;s.lines.length===0&&u.lines.length>0?c="insert":s.lines.length>0&&u.lines.length===0?c="delete":c="change",r.push({original:s,revised:u,type:c}),a.snake&&(a=a.prev)}return r}function wx(e){return e&&!e.snake&&e.prev?e.prev:e}function Gc(e){let o=e.entry.filter(r=>!!r.resource).map(r=>({meta:r.resource?.meta,lines:(0,qc.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 Ox(t,o),Ex(t),t}function Ox(e,o){for(let t=1;t<o.length;t++){let r=rl(o[t-1].lines,o[t].lines);for(let a of r){let n=a.original.position,l=a.original.lines,f=a.revised.lines;if((a.type==="delete"||a.type==="change")&&e.splice(n,l.length),a.type==="insert"||a.type==="change")for(let i=0;i<a.revised.lines.length;i++)e.splice(n+i,0,{id:o[t].meta.versionId,meta:o[t].meta,value:f[i],span:1})}}}function Ex(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 Uc(e,o){return`/${e.resourceType}/${e.id}/_history/${o}`}function Qc(e){let o=Math.floor((Date.now()-Date.parse(e))/1e3),t=Math.floor(o/31536e3);if(t>0)return Er(t,"year");let r=Math.floor(o/2592e3);if(r>0)return Er(r,"month");let a=Math.floor(o/86400);if(a>0)return Er(a,"day");let n=Math.floor(o/3600);if(n>0)return Er(n,"hour");let l=Math.floor(o/60);return l>0?Er(l,"minute"):Er(o,"second")}function Er(e,o){return`${e} ${e===1?o:o+"s"} ago`}var Ae=require("react/jsx-runtime"),Lx=(0,zc.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 Nx(e){let{classes:o}=Lx(),t=P(),[r,a]=(0,al.useState)(e.history);if((0,al.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(0,Ae.jsx)("div",{children:"Loading..."});let n=r.entry?.[0]?.resource;if(!n)return null;let l=Gc(r);return(0,Ae.jsx)("div",{className:o.container,children:(0,Ae.jsx)("table",{className:o.root,children:(0,Ae.jsx)("tbody",{children:l.map((f,i)=>(0,Ae.jsxs)("tr",{className:f.span>0?o.startRow:o.normalRow,children:[f.span>0&&(0,Ae.jsxs)(Ae.Fragment,{children:[(0,Ae.jsx)("td",{className:o.author,rowSpan:f.span,children:(0,Ae.jsx)(Wo,{value:f.meta.author,link:!0})}),(0,Ae.jsx)("td",{className:o.dateTime,rowSpan:f.span,children:(0,Ae.jsx)(Pe,{to:Uc(n,f.meta.versionId),children:Qc(f.meta.lastUpdated)})})]}),(0,Ae.jsx)("td",{className:o.lineNumber,children:i+1}),(0,Ae.jsx)("td",{className:o.line,children:(0,Ae.jsx)("pre",{className:o.pre,children:f.value})})]},"row-"+i))})})})}var Wc=require("@mantine/core"),Bs=require("@medplum/core");var ho=require("react/jsx-runtime"),Vx=(0,Wc.createStyles)(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function Hx(e){let o=e.original,t=e.revised;e.ignoreMeta&&(o={...o,meta:void 0},t={...t,meta:void 0});let r=(0,Bs.stringify)(o,!0).match(/[^\r\n]+/g),a=(0,Bs.stringify)(t,!0).match(/[^\r\n]+/g),n=rl(r,a);return(0,ho.jsx)("pre",{style:{color:"gray"},children:n.map((l,f)=>(0,ho.jsx)(qx,{delta:l},"delta"+f))})}function qx(e){let{classes:o}=Vx();return(0,ho.jsxs)(ho.Fragment,{children:["...",(0,ho.jsx)("br",{}),e.delta.original.lines.length>0&&(0,ho.jsx)("div",{className:o.removed,children:e.delta.original.lines.join(`
|
|
72
|
+
`)}),e.delta.revised.lines.length>0&&(0,ho.jsx)("div",{className:o.added,children:e.delta.revised.lines.join(`
|
|
73
|
+
`)}),"...",(0,ho.jsx)("br",{})]})}var Fo=require("@mantine/core"),nl=require("@medplum/core");var wa=require("react");var Ze=require("react/jsx-runtime");function Gx(e){let{outcome:o}=e,t=P(),r=Z(e.defaultValue),[a,n]=(0,wa.useState)(),[l,f]=(0,wa.useState)();return(0,wa.useEffect)(()=>{if(r)if(f((0,nl.deepClone)(r)),e.profileUrl){let i=e.profileUrl;t.requestProfileSchema(e.profileUrl).then(()=>{let s=(0,nl.tryGetProfile)(i);s?n(s.name):console.log(`Schema not found for ${i}`)}).catch(console.log)}else{let i=e.schemaName??r?.resourceType;t.requestSchema(i).then(()=>n(i)).catch(console.log)}},[t,r,e.schemaName,e.profileUrl]),!a||!l?(0,Ze.jsx)("div",{children:"Loading..."}):(0,Ze.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:i=>{i.preventDefault(),e.onSubmit&&e.onSubmit(l)},children:[(0,Ze.jsxs)(Fo.Stack,{mb:"xl",children:[(0,Ze.jsx)(Oe,{title:"Resource Type",htmlFor:"resourceType",outcome:o,children:(0,Ze.jsx)(Fo.TextInput,{name:"resourceType",defaultValue:l.resourceType,disabled:!0})}),(0,Ze.jsx)(Oe,{title:"ID",htmlFor:"id",outcome:o,children:(0,Ze.jsx)(Fo.TextInput,{name:"id",defaultValue:l.id,disabled:!0})})]}),(0,Ze.jsx)(Gt,{typeName:a,defaultValue:l,outcome:o,onChange:f,profileUrl:e.profileUrl}),(0,Ze.jsxs)(Fo.Group,{position:"right",mt:"xl",children:[(0,Ze.jsx)(Fo.Button,{type:"submit",children:"OK"}),e.onDelete&&(0,Ze.jsx)(Fo.Button,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(l)},children:"Delete"})]})]})}var Xc=require("@mantine/core"),ll=require("@medplum/core");var fl=require("react");var Re=require("react/jsx-runtime");function Ux(e){let o=P(),[t,r]=(0,fl.useState)(e.history);return(0,fl.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?(0,Re.jsxs)(Xc.Table,{withBorder:!0,withColumnBorders:!0,children:[(0,Re.jsx)("thead",{children:(0,Re.jsxs)("tr",{children:[(0,Re.jsx)("th",{children:"Author"}),(0,Re.jsx)("th",{children:"Date"}),(0,Re.jsx)("th",{children:"Version"})]})}),(0,Re.jsx)("tbody",{children:t.entry?.map((a,n)=>(0,Re.jsx)(Qx,{entry:a},"entry-"+n))})]}):(0,Re.jsx)("div",{children:"Loading..."})}function Qx(e){let{response:o,resource:t}=e.entry;return t?(0,Re.jsxs)("tr",{children:[(0,Re.jsx)("td",{children:(0,Re.jsx)(Wo,{value:t.meta?.author,link:!0})}),(0,Re.jsx)("td",{children:(0,ll.formatDateTime)(t.meta?.lastUpdated)}),(0,Re.jsx)("td",{children:(0,Re.jsx)(Pe,{to:zx(t),children:t.meta?.versionId})})]}):(0,Re.jsx)("tr",{children:(0,Re.jsx)("td",{colSpan:3,children:(0,ll.normalizeErrorString)(o?.outcome)})})}function zx(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}var Ct=require("@mantine/core"),sl=require("@medplum/core");var Oa=require("react");var de=require("react/jsx-runtime"),Wx=(0,Ct.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 Xx(e){let{classes:o}=Wx(),t=Z(e.schedule),r=Z(e.questionnaire),[a,n]=(0,Oa.useState)(Bn()),[l,f]=(0,Oa.useState)(),[i,s]=(0,Oa.useState)(),[u,c]=(0,Oa.useState)(),[d]=Il("Slot",new URLSearchParams([["_count",(30*24).toString()],["schedule",(0,sl.isReference)(e.schedule)?e.schedule.reference:(0,sl.getReferenceString)(e.schedule)],["start","gt"+Jx(a)],["start","lt"+$x(a)]]));if(!t||!d||!r)return null;let m=t.actor?.[0];return(0,de.jsxs)("div",{className:o.container,"data-testid":"scheduler",children:[(0,de.jsxs)("div",{className:o.info,children:[m&&(0,de.jsx)(we,{value:m,size:"xl"}),m&&(0,de.jsx)(Ct.Text,{size:"xl",weight:500,children:(0,de.jsx)(po,{value:m})}),(0,de.jsx)("p",{children:"1 hour"}),l&&(0,de.jsx)("p",{children:l.toLocaleDateString()}),i&&(0,de.jsx)("p",{children:Jc(new Date(i.start))})]}),(0,de.jsxs)("div",{className:o.selection,children:[!l&&(0,de.jsxs)("div",{children:[(0,de.jsx)("h3",{children:"Select date"}),(0,de.jsx)(Af,{slots:d,onChangeMonth:n,onClick:f})]}),l&&!i&&(0,de.jsxs)("div",{children:[(0,de.jsx)("h3",{children:"Select time"}),(0,de.jsx)(Ct.Stack,{children:d.map(p=>{let x=new Date(p.start);return x.getTime()>l.getTime()&&x.getTime()<l.getTime()+24*3600*1e3&&(0,de.jsx)("div",{children:(0,de.jsx)(Ct.Button,{variant:"outline",style:{width:150},onClick:()=>s(p),children:Jc(x)})},p.id)})})]}),l&&i&&!u&&(0,de.jsx)(ks,{questionnaire:r,submitButtonText:"Next",onSubmit:c}),l&&i&&u&&(0,de.jsxs)("div",{children:[(0,de.jsx)("h3",{children:"You're all set!"}),(0,de.jsx)("p",{children:"Check your email for a calendar invite."})]})]})]})}function Jx(e){return $c(e.getTime())}function $x(e){return $c(e.getTime()+31*24*60*60*1e3)}function $c(e){let o=new Date(Math.max(Date.now(),e));return o.setHours(0,0,0,0),o.toISOString()}function Jc(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}var Ea=require("@medplum/core");var _c=require("react/jsx-runtime");function _x(e){return(0,_c.jsx)(Ko,{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,Ea.createReference)(o)],subject:o.subject,sender:(0,Ea.createReference)(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",basedOn:[(0,Ea.createReference)(o)],subject:o.subject,operator:(0,Ea.createReference)(t),issued:new Date().toISOString(),content:r})})}var ed=require("@medplum/core");var Na=require("react");var Me=require("@mantine/core"),Kc=require("@medplum/core"),Zc=require("react");var Ye=require("react/jsx-runtime");function il(e){let o=P(),[t,r]=(0,Zc.useState)();return(0,Ye.jsxs)(ae,{style:{maxWidth:400},onSubmit:async a=>{try{e.handleAuthResponse(await o.startNewProject({login:e.login,projectName:a.projectName}))}catch(n){r((0,Kc.normalizeOperationOutcome)(n))}},children:[(0,Ye.jsxs)(Me.Center,{sx:{flexDirection:"column"},children:[(0,Ye.jsx)(tt,{size:32}),(0,Ye.jsx)(Me.Title,{children:"Create project"})]}),(0,Ye.jsxs)(Me.Stack,{spacing:"xl",children:[(0,Ye.jsx)(Me.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:$(t,"firstName")}),(0,Ye.jsxs)(Me.Text,{color:"dimmed",size:"xs",children:["By clicking submit you agree to the Medplum"," ",(0,Ye.jsx)(Me.Anchor,{href:"https://www.medplum.com/privacy",children:"Privacy\xA0Policy"})," and ",(0,Ye.jsx)(Me.Anchor,{href:"https://www.medplum.com/terms",children:"Terms\xA0of\xA0Service"}),"."]})]}),(0,Ye.jsx)(Me.Group,{position:"right",mt:"xl",noWrap:!0,children:(0,Ye.jsx)(Me.Button,{type:"submit",children:"Create project"})})]})}var re=require("@mantine/core"),Fs=require("@medplum/core");var dl=require("react");var bt=require("react");function La(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)}var Yc=require("react/jsx-runtime");function ul(e){let o=P(),{googleClientId:t,handleGoogleCredential:r}=e,a=(0,bt.useRef)(null),[n,l]=(0,bt.useState)(typeof google<"u"),[f,i]=(0,bt.useState)(!1),[s,u]=(0,bt.useState)(!1);return(0,bt.useEffect)(()=>{if(typeof google>"u"){La("https://accounts.google.com/gsi/client",()=>l(!0));return}f||(google.accounts.id.initialize({client_id:t,callback:r}),i(!0)),a.current&&!s&&(google.accounts.id.renderButton(a.current,{}),u(!0))},[o,t,f,n,a,s,r]),t?(0,Yc.jsx)("div",{ref:a}):null}function cl(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 As(e){typeof grecaptcha>"u"&&La("https://www.google.com/recaptcha/api.js?render="+e)}function Ms(e){return new Promise((o,t)=>{grecaptcha.ready(async()=>{try{o(await grecaptcha.execute(e,{action:"submit"}))}catch(r){t(r)}})})}var ie=require("react/jsx-runtime");function jc(e){let o=cl(e.googleClientId),t=e.recaptchaSiteKey,r=P(),[a,n]=(0,dl.useState)(),l=ra(a,void 0);return(0,dl.useEffect)(()=>{t&&As(t)},[t]),(0,ie.jsxs)(ae,{style:{maxWidth:400},onSubmit:async f=>{try{let i="";t&&(i=await Ms(t)),e.handleAuthResponse(await r.startNewUser({projectId:e.projectId,clientId:e.clientId,firstName:f.firstName,lastName:f.lastName,email:f.email,password:f.password,remember:f.remember==="true",recaptchaSiteKey:t,recaptchaToken:i}))}catch(i){n((0,Fs.normalizeOperationOutcome)(i))}},children:[(0,ie.jsx)(re.Center,{sx:{flexDirection:"column"},children:e.children}),(0,ie.jsx)(Zt,{issues:l}),o&&(0,ie.jsxs)(ie.Fragment,{children:[(0,ie.jsx)(re.Group,{position:"center",p:"xl",style:{height:70},children:(0,ie.jsx)(ul,{googleClientId:o,handleGoogleCredential:async f=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:f.clientId,googleCredential:f.credential,createUser:!0}))}catch(i){n((0,Fs.normalizeOperationOutcome)(i))}}})}),(0,ie.jsx)(re.Divider,{label:"or",labelPosition:"center",my:"lg"})]}),(0,ie.jsxs)(re.Stack,{spacing:"xl",children:[(0,ie.jsx)(re.TextInput,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:$(a,"firstName")}),(0,ie.jsx)(re.TextInput,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:$(a,"lastName")}),(0,ie.jsx)(re.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:$(a,"email")}),(0,ie.jsx)(re.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,error:$(a,"password")}),(0,ie.jsxs)(re.Text,{color:"dimmed",size:"xs",children:["By clicking submit you agree to the Medplum"," ",(0,ie.jsx)(re.Anchor,{href:"https://www.medplum.com/privacy",children:"Privacy\xA0Policy"})," and ",(0,ie.jsx)(re.Anchor,{href:"https://www.medplum.com/terms",children:"Terms\xA0of\xA0Service"}),"."]}),(0,ie.jsxs)(re.Text,{color:"dimmed",size:"xs",children:["This site is protected by reCAPTCHA and the Google"," ",(0,ie.jsx)(re.Anchor,{href:"https://policies.google.com/privacy",children:"Privacy\xA0Policy"})," and ",(0,ie.jsx)(re.Anchor,{href:"https://policies.google.com/terms",children:"Terms\xA0of\xA0Service"})," apply."]})]}),(0,ie.jsxs)(re.Group,{position:"apart",mt:"xl",noWrap:!0,children:[(0,ie.jsx)(re.Checkbox,{name:"remember",label:"Remember me",size:"xs"}),(0,ie.jsx)(re.Button,{type:"submit",children:"Create account"})]})]})}var Lr=require("react/jsx-runtime");function Kx(e){let{type:o,projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,onSuccess:l}=e,f=P(),[i,s]=(0,Na.useState)(),[u,c]=(0,Na.useState)();(0,Na.useEffect)(()=>{o==="patient"&&i&&f.startNewPatient({login:i,projectId:t}).then(m=>f.processCode(m.code)).then(()=>l()).catch(m=>c((0,ed.normalizeOperationOutcome)(m)))},[f,o,t,i,l]);function d(m){m.code?f.processCode(m.code).then(()=>l()).catch(console.log):m.login&&s(m.login)}return(0,Lr.jsxs)(ba,{width:450,children:[u&&(0,Lr.jsx)("pre",{children:JSON.stringify(u,null,2)}),!i&&(0,Lr.jsx)(jc,{projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,handleAuthResponse:d,children:e.children}),i&&o==="project"&&(0,Lr.jsx)(il,{login:i,handleAuthResponse:d})]})}var ws=require("@mantine/notifications"),Os=require("@medplum/core");var wo=require("react");var me=require("@mantine/core"),od=require("@medplum/core");var Rt=require("react");var fe=require("react/jsx-runtime");function td(e){let[o,t]=(0,Rt.useState)();return o?(0,fe.jsx)(Yx,{email:o,...e}):(0,fe.jsx)(Zx,{setEmail:t,...e})}function Zx(e){let{setEmail:o,onRegister:t,handleAuthResponse:r,children:a,disableEmailAuth:n,...l}=e,f=P(),i=!e.disableGoogleAuth&&cl(e.googleClientId),s=(0,Rt.useCallback)(async d=>{if(!d.authorizeUrl)return!1;let m=JSON.stringify({...await f.ensureCodeChallenge(l),domain:d.domain}),p=new URL(d.authorizeUrl);return p.searchParams.set("state",m),window.location.assign(p.toString()),!0},[f,l]),u=(0,Rt.useCallback)(async d=>{let m=await f.post("auth/method",{email:d.email});await s(m)||o(d.email)},[f,s,o]),c=(0,Rt.useCallback)(async d=>{let m=await f.startGoogleLogin({...l,googleCredential:d.credential});await s(m)||r(m)},[f,l,s,r]);return(0,fe.jsxs)(ae,{style:{maxWidth:400},onSubmit:u,children:[(0,fe.jsx)(me.Center,{sx:{flexDirection:"column"},children:a}),i&&(0,fe.jsxs)(fe.Fragment,{children:[(0,fe.jsx)(me.Group,{position:"center",p:"xl",style:{height:70},children:(0,fe.jsx)(ul,{googleClientId:i,handleGoogleCredential:c})}),!n&&(0,fe.jsx)(me.Divider,{label:"or",labelPosition:"center",my:"lg"})]}),!n&&(0,fe.jsx)(me.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),(0,fe.jsxs)(me.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0,children:[(0,fe.jsx)("div",{children:t&&(0,fe.jsx)(me.Anchor,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs",children:"Register"})}),!n&&(0,fe.jsx)(me.Button,{type:"submit",children:"Next"})]})]})}function Yx(e){let{onForgotPassword:o,handleAuthResponse:t,children:r,...a}=e,n=P(),[l,f]=(0,Rt.useState)(),i=ra(l,void 0),s=(0,Rt.useCallback)(u=>{n.startLogin({...a,password:u.password,remember:u.remember==="on"}).then(t).catch(c=>f((0,od.normalizeOperationOutcome)(c)))},[n,a,t]);return(0,fe.jsxs)(ae,{style:{maxWidth:400},onSubmit:s,children:[(0,fe.jsx)(me.Center,{sx:{flexDirection:"column"},children:r}),(0,fe.jsx)(Zt,{issues:i}),(0,fe.jsx)(me.Stack,{spacing:"xl",children:(0,fe.jsx)(me.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:$(l,"password")})}),(0,fe.jsxs)(me.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0,children:[o&&(0,fe.jsx)(me.Anchor,{component:"button",type:"button",color:"dimmed",onClick:o,size:"xs",children:"Forgot password"}),(0,fe.jsx)(me.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),(0,fe.jsx)(me.Button,{type:"submit",children:"Sign in"})]})]})}var He=require("@mantine/core"),rd=require("@medplum/core"),ad=require("react");var je=require("react/jsx-runtime");function nd(e){let o=P(),[t,r]=(0,ad.useState)();return(0,je.jsxs)(He.Stack,{children:[(0,je.jsxs)(He.Center,{sx:{flexDirection:"column"},children:[(0,je.jsx)(tt,{size:32}),(0,je.jsx)(He.Title,{order:3,children:"Choose profile"})]}),(0,je.jsx)(Zt,{outcome:t}),e.memberships.map(a=>(0,je.jsx)(He.UnstyledButton,{onClick:()=>{o.post("auth/profile",{login:e.login,profile:a.id}).then(e.handleAuthResponse).catch(n=>r((0,rd.normalizeOperationOutcome)(n)))},children:(0,je.jsxs)(He.Group,{children:[(0,je.jsx)(He.Avatar,{radius:"xl"}),(0,je.jsxs)("div",{style:{flex:1},children:[(0,je.jsx)(He.Text,{size:"sm",weight:500,children:a.profile?.display}),(0,je.jsx)(He.Text,{color:"dimmed",size:"xs",children:a.project?.display})]})]})},a.id))]})}var eo=require("@mantine/core");var yo=require("react/jsx-runtime");function ld(e){let o=P();return(0,yo.jsx)(ae,{style:{maxWidth:400},onSubmit:t=>{o.post("auth/scope",{login:e.login,scope:Object.keys(t).join(" ")}).then(e.handleAuthResponse).catch(console.log)},children:(0,yo.jsxs)(eo.Stack,{children:[(0,yo.jsxs)(eo.Center,{sx:{flexDirection:"column"},children:[(0,yo.jsx)(tt,{size:32}),(0,yo.jsx)(eo.Title,{children:"Choose scope"})]}),(0,yo.jsx)(eo.Stack,{children:(e.scope??"openid").split(" ").map(t=>(0,yo.jsx)(eo.Checkbox,{id:t,name:t,label:t,defaultChecked:!0},t))}),(0,yo.jsx)(eo.Group,{position:"right",mt:"xl",children:(0,yo.jsx)(eo.Button,{type:"submit",children:"Set scope"})})]})})}var qe=require("@mantine/core"),fd=require("@medplum/core");var sd=require("react");var oo=require("react/jsx-runtime");function id(e){let o=P(),[t,r]=(0,sd.useState)();return(0,oo.jsx)(ae,{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,fd.normalizeErrorString)(n)))},children:(0,oo.jsxs)(qe.Stack,{children:[(0,oo.jsxs)(qe.Center,{sx:{flexDirection:"column"},children:[(0,oo.jsx)(tt,{size:32}),(0,oo.jsx)(qe.Title,{children:"Enter MFA code"})]}),t&&(0,oo.jsx)(qe.Alert,{icon:(0,oo.jsx)(Bt,{size:16}),title:"Error",color:"red",children:t}),(0,oo.jsx)(qe.Stack,{children:(0,oo.jsx)(qe.TextInput,{name:"token",label:"MFA code",required:!0})}),(0,oo.jsx)(qe.Group,{position:"right",mt:"xl",children:(0,oo.jsx)(qe.Button,{type:"submit",children:"Submit code"})})]})})}var Pt=require("react/jsx-runtime");function jx(e){let{login:o,chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:n,onCode:l,...f}=e,i=P(),[s,u]=(0,wo.useState)(),[c,d]=(0,wo.useState)(!1),[m,p]=(0,wo.useState)(),x=(0,wo.useCallback)(S=>{l?l(S):i.processCode(S).then(()=>{r&&r()}).catch(b=>(0,ws.showNotification)({color:"red",message:(0,Os.normalizeErrorString)(b)}))},[i,l,r]),C=(0,wo.useCallback)(S=>{d(!!S.mfaRequired),S.login&&u(S.login),S.memberships&&p(S.memberships),S.code&&(t?p(void 0):x(S.code))},[t,x]),v=(0,wo.useCallback)(S=>{x(S.code)},[x]);return(0,wo.useEffect)(()=>{o&&!s&&i.get("auth/login/"+o).then(C).catch(S=>(0,ws.showNotification)({color:"red",message:(0,Os.normalizeErrorString)(S)}))},[i,o,s,C]),(0,Pt.jsx)(ba,{width:450,children:s?c?(0,Pt.jsx)(id,{login:s,handleAuthResponse:C}):m?(0,Pt.jsx)(nd,{login:s,memberships:m,handleAuthResponse:C}):e.projectId==="new"?(0,Pt.jsx)(il,{login:s,handleAuthResponse:C}):e.chooseScopes?(0,Pt.jsx)(ld,{login:s,scope:e.scope,handleAuthResponse:v}):(0,Pt.jsx)("div",{children:"Success"}):(0,Pt.jsx)(td,{onForgotPassword:a,onRegister:n,handleAuthResponse:C,disableGoogleAuth:e.disableGoogleAuth,disableEmailAuth:e.disableEmailAuth,...f,children:e.children})})}
|
|
68
74
|
//# sourceMappingURL=index.cjs.map
|