@medplum/react 1.0.3 → 1.0.4

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.
Files changed (53) hide show
  1. package/dist/cjs/Container/Container.d.ts +3 -0
  2. package/dist/cjs/Document/Document.d.ts +3 -6
  3. package/dist/cjs/Panel/Panel.d.ts +11 -0
  4. package/dist/cjs/Timeline/Timeline.d.ts +2 -4
  5. package/dist/cjs/index.d.ts +2 -0
  6. package/dist/cjs/index.js +97 -40
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/index.min.js +1 -1
  9. package/dist/cjs/index.min.js.map +1 -1
  10. package/dist/esm/AttachmentDisplay/AttachmentDisplay.js +2 -1
  11. package/dist/esm/AttachmentDisplay/AttachmentDisplay.js.map +1 -1
  12. package/dist/esm/BackboneElementDisplay/BackboneElementDisplay.js +3 -0
  13. package/dist/esm/BackboneElementDisplay/BackboneElementDisplay.js.map +1 -1
  14. package/dist/esm/Container/Container.d.ts +3 -0
  15. package/dist/esm/Container/Container.js +20 -0
  16. package/dist/esm/Container/Container.js.map +1 -0
  17. package/dist/esm/Document/Document.d.ts +3 -6
  18. package/dist/esm/Document/Document.js +5 -6
  19. package/dist/esm/Document/Document.js.map +1 -1
  20. package/dist/esm/Panel/Panel.d.ts +11 -0
  21. package/dist/esm/Panel/Panel.js +35 -0
  22. package/dist/esm/Panel/Panel.js.map +1 -0
  23. package/dist/esm/PlanDefinitionBuilder/PlanDefinitionBuilder.js +3 -3
  24. package/dist/esm/PlanDefinitionBuilder/PlanDefinitionBuilder.js.map +1 -1
  25. package/dist/esm/QuestionnaireBuilder/QuestionnaireBuilder.js +6 -6
  26. package/dist/esm/QuestionnaireBuilder/QuestionnaireBuilder.js.map +1 -1
  27. package/dist/esm/ReferenceRangeEditor/ReferenceRangeEditor.js +4 -3
  28. package/dist/esm/ReferenceRangeEditor/ReferenceRangeEditor.js.map +1 -1
  29. package/dist/esm/ResourceInput/ResourceInput.js +1 -0
  30. package/dist/esm/ResourceInput/ResourceInput.js.map +1 -1
  31. package/dist/esm/ResourcePropertyDisplay/ResourcePropertyDisplay.js +4 -0
  32. package/dist/esm/ResourcePropertyDisplay/ResourcePropertyDisplay.js.map +1 -1
  33. package/dist/esm/ResourcePropertyInput/ResourcePropertyInput.js +4 -0
  34. package/dist/esm/ResourcePropertyInput/ResourcePropertyInput.js.map +1 -1
  35. package/dist/esm/ResourceTimeline/ResourceTimeline.js +3 -2
  36. package/dist/esm/ResourceTimeline/ResourceTimeline.js.map +1 -1
  37. package/dist/esm/SearchControl/SearchControl.js +2 -1
  38. package/dist/esm/SearchControl/SearchControl.js.map +1 -1
  39. package/dist/esm/Timeline/Timeline.d.ts +2 -4
  40. package/dist/esm/Timeline/Timeline.js +14 -10
  41. package/dist/esm/Timeline/Timeline.js.map +1 -1
  42. package/dist/esm/auth/AuthenticationForm.js +2 -2
  43. package/dist/esm/auth/AuthenticationForm.js.map +1 -1
  44. package/dist/esm/auth/NewProjectForm.js +5 -4
  45. package/dist/esm/auth/NewProjectForm.js.map +1 -1
  46. package/dist/esm/auth/NewUserForm.js +7 -6
  47. package/dist/esm/auth/NewUserForm.js.map +1 -1
  48. package/dist/esm/index.d.ts +2 -0
  49. package/dist/esm/index.js +2 -0
  50. package/dist/esm/index.js.map +1 -1
  51. package/dist/esm/index.min.js +1 -1
  52. package/dist/esm/index.min.js.map +1 -1
  53. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{formatAddress as e,createReference as t,formatCodeableConcept as n,formatCoding as r,formatHumanName as a,formatQuantity as l,formatRange as o,stringify as i,buildTypeName as c,PropertyType as s,formatTiming as u,formatPeriod as d,formatDateTime as m,getTypedPropertyValue as p,globalSchema as g,getPropertyDisplayName as v,capitalize as h,isValidDate as f,getDisplayString as E,getImageSrc as y,formatObservationValue as b,toTypedValue as C,normalizeErrorString as x,getReferenceString as T,evalFhirPath as k,Operator as O,DEFAULT_SEARCH_COUNT as j,evalFhirPathTyped as w,getSearchParameterDetails as S,SearchParameterType as A,formatSearchQuery as D,deepEquals as I,getQuestionnaireAnswers as V,getCodeBySystem as R}from"@medplum/core";import P,{useState as N,useRef as $,createContext as z,useEffect as L,useContext as F,useCallback as M,forwardRef as _,useMemo as U}from"react";import{Group as q,NativeSelect as W,TextInput as K,ActionIcon as Q,Button as H,Container as B,Paper as G,Center as J,Title as Y,Stack as X,Text as Z,Alert as ee,Divider as te,PasswordInput as ne,Checkbox as re,Anchor as ae,UnstyledButton as le,Avatar as oe,createStyles as ie,Input as ce,MultiSelect as se,JsonInput as ue,Autocomplete as de,Loader as me,Modal as pe,Textarea as ge,Menu as ve,ScrollArea as he,Table as fe,Pagination as Ee,Radio as ye,Badge as be,Grid as Ce}from"@mantine/core";import{IconCircleMinus as xe,IconCloudUpload as Te,IconAlertCircle as ke,IconCirclePlus as Oe,IconDots as je,IconMessage as we,IconCheck as Se,IconFileAlert as Ae,IconPin as De,IconPinnedOff as Ie,IconListDetails as Ve,IconEdit as Re,IconTrash as Pe,IconSortAscending as Ne,IconSortDescending as $e,IconEqual as ze,IconEqualNot as Le,IconMathLower as Fe,IconMathGreater as Me,IconBracketsContain as _e,IconCalendar as Ue,IconSettings as qe,IconBucket as We,IconBucketOff as Ke,IconBleach as Qe,IconBleachOff as He,IconX as Be,IconFilter as Ge,IconColumns as Je,IconFilePlus as Ye,IconTableExport as Xe,IconBoxMultiple as Ze,IconAdjustmentsHorizontal as et,IconCheckbox as tt,IconSquare as nt}from"@tabler/icons";import{useNavigate as rt}from"react-router-dom";import{updateNotification as at,showNotification as lt}from"@mantine/notifications";function ot(t){const n=t.value;return n?P.createElement(P.Fragment,null,e(n)):null}function it(e,t){return e&&e.line&&e.line.length>t?e.line[t]:""}function ct(e,t,n){const r=e.line||[];for(;r.length<=t;)r.push("");return r[t]=n,Object.assign(Object.assign({},e),{line:r})}function st(e){const[t,n]=N(e.defaultValue||{}),r=$();function a(t){n(t),e.onChange&&e.onChange(t)}return r.current=t,P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(W,{"data-testid":"address-use",defaultValue:null==t?void 0:t.use,onChange:e=>{return t=e.currentTarget.value,void a(Object.assign(Object.assign({},r.current),{use:t}));var t},data:["","home","work","temp","old","billing"]}),P.createElement(W,{"data-testid":"address-type",defaultValue:null==t?void 0:t.type,onChange:e=>{return t=e.currentTarget.value,void a(Object.assign(Object.assign({},r.current),{type:t}));var t},data:["","postal","physical","both"]}),P.createElement(K,{placeholder:"Line 1",defaultValue:it(t,0),onChange:e=>{return t=e.currentTarget.value,void a(ct(r.current||{},0,t));var t}}),P.createElement(K,{placeholder:"Line 2",defaultValue:it(t,1),onChange:e=>{return t=e.currentTarget.value,void a(ct(r.current||{},1,t));var t}}),P.createElement(K,{placeholder:"City",defaultValue:t.city,onChange:e=>{return t=e.currentTarget.value,void a(Object.assign(Object.assign({},r.current),{city:t}));var t}}),P.createElement(K,{placeholder:"State",defaultValue:t.state,onChange:e=>{return t=e.currentTarget.value,void a(Object.assign(Object.assign({},r.current),{state:t}));var t}}),P.createElement(K,{placeholder:"Postal Code",defaultValue:t.postalCode,onChange:e=>{return t=e.currentTarget.value,void a(Object.assign(Object.assign({},r.current),{postalCode:t}));var t}}))}const ut=z(void 0);function dt(e){const t=e.medplum,[n,r]=N({profile:t.getProfile(),loading:!1});L((()=>{function e(){r(Object.assign(Object.assign({},n),{profile:t.getProfile()}))}return t.addEventListener("change",e),()=>t.removeEventListeneer("change",e)}),[t,n]);const a=Object.assign(Object.assign({},n),{medplum:t});return P.createElement(ut.Provider,{value:a},e.children)}function mt(){return F(ut)}function pt(){return mt().medplum}function gt(){return mt().profile}function vt(e){const n=gt(),[r,a]=N(e.defaultValue||{});return $().current=r,P.createElement(K,{name:e.name,placeholder:"Annotation text",defaultValue:r.text,onChange:r=>function(r){const l=r?{text:r,authorReference:n&&t(n),time:(new Date).toISOString()}:{};a(l),e.onChange&&e.onChange(l)}(r.currentTarget.value)})}function ht(e){const t=e.value,{contentType:n,url:r,title:a}=null!=t?t:{};return r?P.createElement("div",{"data-testid":"attachment-display"},(null==n?void 0:n.startsWith("image/"))&&P.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:r,alt:null==t?void 0:t.title}),(null==n?void 0:n.startsWith("video/"))&&P.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},P.createElement("source",{type:n,src:r})),"application/pdf"===n&&!(null==a?void 0:a.endsWith(".pdf"))&&P.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},P.createElement("iframe",{width:"100%",height:"400",src:r+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),P.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},P.createElement("a",{href:null==t?void 0:t.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},(null==t?void 0:t.title)||"Download"))):null}function ft(e){return P.createElement("div",null,e.values&&e.values.map(((t,n)=>P.createElement("div",{key:"attatchment-"+n},P.createElement(ht,{value:t,maxWidth:e.maxWidth})))))}function Et(e){e.preventDefault(),e.stopPropagation()}function yt(e){if(bt(e))return!0;if(e instanceof HTMLTableCellElement){const t=e.children;if(1===t.length&&bt(t[0]))return!0}return!1}function bt(e){return e instanceof HTMLInputElement&&"checkbox"===e.type}function Ct(e){const t=pt(),n=$(null);function r(n){if(!n)return;if(!n.name)return;e.onUploadStart&&e.onUploadStart();const r=n.name,a=n.type||"application/octet-stream";t.createBinary(n,r,a,e.onUploadProgress).then((t=>{e.onUpload({contentType:t.contentType,url:t.url,title:r})})).catch((e=>{var t,n,r;alert(null===(r=null===(n=null===(t=null==e?void 0:e.issue)||void 0===t?void 0:t[0])||void 0===n?void 0:n.details)||void 0===r?void 0:r.text)}))}return P.createElement(P.Fragment,null,P.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:n,onChange:e=>function(e){Et(e);const t=e.target.files;t&&Array.from(t).forEach(r)}(e)}),e.children({onClick:function(e){var t;Et(e),null===(t=n.current)||void 0===t||t.click()}}))}function xt(e){var t;const[n,r]=N(null!==(t=e.defaultValue)&&void 0!==t?t:[]),a=$();function l(t){r(t),e.onChange&&e.onChange(t)}return a.current=n,P.createElement("table",{style:{width:"100%"}},P.createElement("colgroup",null,P.createElement("col",{width:"97%"}),P.createElement("col",{width:"3%"})),P.createElement("tbody",null,n.map(((e,t)=>P.createElement("tr",{key:`${t}-${n.length}`},P.createElement("td",null,P.createElement(ht,{value:e,maxWidth:200})),P.createElement("td",null,P.createElement(Q,{title:"Remove",size:"sm",onClick:e=>{Et(e);const r=n.slice();r.splice(t,1),l(r)}},P.createElement(xe,null)))))),P.createElement("tr",null,P.createElement("td",null),P.createElement("td",null,P.createElement(Ct,{onUpload:e=>{l([...a.current,e])}},(e=>P.createElement(Q,Object.assign({},e,{title:"Add",size:"sm",color:"green"}),P.createElement(Te,{size:16}))))))))}function Tt(e){const[t,n]=N(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return t?P.createElement(P.Fragment,null,P.createElement(ht,{value:t,maxWidth:200}),P.createElement(H,{onClick:e=>{Et(e),r(void 0)}},"Remove")):P.createElement(Ct,{onUpload:r},(e=>P.createElement(H,Object.assign({},e),"Upload...")))}function kt(e){let t;return e.width&&(t={maxWidth:e.width}),P.createElement(B,null,P.createElement(G,{style:t,mx:"auto",my:"lg",p:"lg",shadow:"xs",radius:"sm",withBorder:!0},e.children))}function Ot(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}function jt(e,t,n,r){return new(n||(n=Promise))((function(a,l){function o(e){try{c(r.next(e))}catch(e){l(e)}}function i(e){try{c(r.throw(e))}catch(e){l(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,i)}c((r=r.apply(e,t||[])).next())}))}function wt(e){const t={};for(const n of Array.from(e.elements))n instanceof HTMLInputElement?St(t,n):n instanceof HTMLTextAreaElement?t[n.name]=n.value:n instanceof HTMLSelectElement&&At(t,n);return t}function St(e,t){t.disabled||("checkbox"!==t.type&&"radio"!==t.type||t.checked)&&(e[t.name]=t.value)}function At(e,t){e[t.name]=t.value}function Dt(e){return P.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:t=>{t.preventDefault();const n=wt(t.target);e.onSubmit&&e.onSubmit(n)}},e.children)}function It(e){return P.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},P.createElement("title",null,"Medplum Logo"),P.createElement("path",{fill:e.fill||"#ad7136",d:"M282 67c6-16 16-29 29-40L289 0c-22 17-37 41-43 68l17 23 19-24z"}),P.createElement("path",{fill:e.fill||"#946af9",d:"M311 63c-17 0-33 4-48 11-16-7-32-11-49-11-87 0-158 96-158 214s71 214 158 214c17 0 33-4 49-11 15 7 31 11 48 11 87 0 158-96 158-214S398 63 311 63z"}),P.createElement("path",{fill:e.fill||"#7857c5",d:"M231 489l-17 2c-87 0-158-96-158-214S127 63 214 63l17 1c-39 12-70 102-70 213s31 201 70 212z"}),P.createElement("path",{fill:e.fill||"#40bc26",d:"M207 220a176 176 0 01-177 43A176 176 0 01251 43l1 5c17 59 2 125-45 172z"}),P.createElement("path",{fill:e.fill||"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}function Vt(e,t){var n,r,a;return null===(a=null===(r=null===(n=null==e?void 0:e.issue)||void 0===n?void 0:n.filter((e=>{var n;return Pt(null===(n=e.expression)||void 0===n?void 0:n[0],t)})))||void 0===r?void 0:r.map((e=>{var t;return null===(t=e.details)||void 0===t?void 0:t.text})))||void 0===a?void 0:a.join("\n")}function Rt(e,t){var n;return null===(n=null==e?void 0:e.issue)||void 0===n?void 0:n.filter((e=>{var n;return Pt(null===(n=e.expression)||void 0===n?void 0:n[0],t)}))}function Pt(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=e.indexOf(".");if(n>=0&&e.substring(n+1)===t)return!0;const r=t.indexOf(".");return r>=0&&t.substring(r+1)===e}function Nt(e){const t=pt(),[n,r]=N();return P.createElement(Dt,{style:{maxWidth:400},onSubmit:n=>jt(this,void 0,void 0,(function*(){try{e.handleAuthResponse(yield t.startNewProject({login:e.login,projectName:n.projectName}))}catch(e){r(e)}}))},P.createElement(J,{sx:{flexDirection:"column"}},P.createElement(It,{size:32}),P.createElement(Y,null,"Create project")),P.createElement(X,{spacing:"xl"},P.createElement(K,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:Vt(n,"firstName")}),P.createElement(Z,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum ",P.createElement("a",{href:"https://www.medplum.com/privacy"},"Privacy Policy")," and ",P.createElement("a",{href:"https://www.medplum.com/terms"},"Terms of Service"),".")),P.createElement(q,{position:"right",mt:"xl",noWrap:!0},P.createElement(H,{type:"submit"},"Create project")))}function $t(e,t){const n=document.getElementsByTagName("head")[0],r=document.createElement("script");r.async=!0,r.src=e,r.onload=t||null,n.appendChild(r)}function zt(e){const t=pt(),{googleClientId:n,handleGoogleCredential:r}=e,a=$(null),[l,o]=N("undefined"!=typeof google),[i,c]=N(!1),[s,u]=N(!1);return L((()=>{"undefined"!=typeof google?(i||(google.accounts.id.initialize({client_id:n,callback:r}),c(!0)),a.current&&!s&&(google.accounts.id.renderButton(a.current,{}),u(!0))):$t("https://accounts.google.com/gsi/client",(()=>o(!0)))}),[t,n,i,l,a,s,r]),n?P.createElement("div",{ref:a}):null}function Lt(e){var t,n;if(e)return e;const r=window.location.protocol+"//"+window.location.host;return(null!==(n=null===(t="http://localhost:3000,http://127.0.0.1:3000,http://localhost:6006,http://127.0.0.1:6006,https://app.medplum.com,https://docs.medplum.com,https://storybook.medplum.com,https://graphiql.medplum.com,https://www.medplum.com")?void 0:t.split(","))&&void 0!==n?n:[]).includes(r)?"921088377005-3j1sa10vr6hj86jgmdfh2l53v3mp7lfi.apps.googleusercontent.com":void 0}function Ft(e){"undefined"==typeof grecaptcha&&$t("https://www.google.com/recaptcha/api.js?render="+e)}function Mt(e){return new Promise(((t,n)=>{grecaptcha.ready((()=>jt(this,void 0,void 0,(function*(){try{t(yield grecaptcha.execute(e,{action:"submit"}))}catch(e){n(e)}}))))}))}function _t(e){const t=Lt(e.googleClientId),n=e.recaptchaSiteKey,r=pt(),[a,l]=N(),o=Rt(a,void 0);return L((()=>Ft(n)),[n]),P.createElement(Dt,{style:{maxWidth:400},onSubmit:t=>jt(this,void 0,void 0,(function*(){try{const a=yield Mt(n);e.handleAuthResponse(yield r.startNewUser({projectId:e.projectId,firstName:t.firstName,lastName:t.lastName,email:t.email,password:t.password,remember:"true"===t.remember,recaptchaSiteKey:n,recaptchaToken:a}))}catch(e){l(e)}}))},P.createElement(J,{sx:{flexDirection:"column"}},e.children),o&&P.createElement(ee,{icon:P.createElement(ke,{size:16}),color:"red"},o.map((e=>{var t,n;return P.createElement("div",{"data-testid":"text-field-error",key:null===(t=e.details)||void 0===t?void 0:t.text},null===(n=e.details)||void 0===n?void 0:n.text)}))),t&&P.createElement(P.Fragment,null,P.createElement(q,{position:"center",p:"xl",style:{height:70}},P.createElement(zt,{googleClientId:t,handleGoogleCredential:t=>jt(this,void 0,void 0,(function*(){try{yield r.startPkce(),e.handleAuthResponse(yield r.startGoogleLogin({googleClientId:t.clientId,googleCredential:t.credential,createUser:!0}))}catch(e){l(e)}}))})),P.createElement(te,{label:"or",labelPosition:"center",my:"lg"})),P.createElement(X,{spacing:"xl"},P.createElement(K,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:Vt(a,"firstName")}),P.createElement(K,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:Vt(a,"lastName")}),P.createElement(K,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:Vt(a,"email")}),P.createElement(ne,{name:"password",label:"Password",autoComplete:"off",required:!0,error:Vt(a,"password")}),P.createElement(Z,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum ",P.createElement("a",{href:"https://www.medplum.com/privacy"},"Privacy Policy")," and ",P.createElement("a",{href:"https://www.medplum.com/terms"},"Terms of Service"),"."),P.createElement(Z,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",P.createElement("a",{href:"https://policies.google.com/privacy"},"Privacy Policy")," and ",P.createElement("a",{href:"https://policies.google.com/terms"},"Terms of Service")," apply.")),P.createElement(q,{position:"apart",mt:"xl",noWrap:!0},P.createElement(re,{name:"remember",label:"Remember me",size:"xs"}),P.createElement(H,{type:"submit"},"Create account")))}function Ut(e){const{type:t,projectId:n,googleClientId:r,recaptchaSiteKey:a,onSuccess:l}=e,o=pt(),[i,c]=N(void 0),[s,u]=N();function d(e){e.code?o.processCode(e.code).then((()=>l())).catch(console.log):e.login&&c(e.login)}return L((()=>{"patient"===t&&i&&o.startNewPatient({login:i,projectId:n}).then((e=>o.processCode(e.code))).then((()=>l())).catch((e=>u(e)))}),[o,t,n,i,l]),P.createElement(kt,{width:450},s&&P.createElement("pre",null,JSON.stringify(s,null,2)),!i&&P.createElement(_t,{projectId:n,googleClientId:r,recaptchaSiteKey:a,handleAuthResponse:d},e.children),i&&"project"===t&&P.createElement(Nt,{login:i,handleAuthResponse:d}))}function qt(e){const{generatePkce:t,onForgotPassword:n,onRegister:r,handleAuthResponse:a,children:l}=e,o=Ot(e,["generatePkce","onForgotPassword","onRegister","handleAuthResponse","children"]),i=pt(),c=Lt(e.googleClientId),[s,u]=N(),d=Rt(s,void 0);function m(){return jt(this,void 0,void 0,(function*(){t&&(yield i.startPkce())}))}return P.createElement(Dt,{style:{maxWidth:400},onSubmit:e=>{m().then((()=>i.startLogin(Object.assign(Object.assign({},o),{email:e.email,password:e.password,remember:"on"===e.remember})))).then(a).catch(u)}},P.createElement(J,{sx:{flexDirection:"column"}},l),d&&P.createElement(ee,{icon:P.createElement(ke,{size:16}),color:"red"},d.map((e=>{var t,n;return P.createElement("div",{"data-testid":"text-field-error",key:null===(t=e.details)||void 0===t?void 0:t.text},null===(n=e.details)||void 0===n?void 0:n.text)}))),c&&P.createElement(P.Fragment,null,P.createElement(q,{position:"center",p:"xl",style:{height:70}},P.createElement(zt,{googleClientId:c,handleGoogleCredential:t=>{m().then((()=>i.startGoogleLogin(Object.assign(Object.assign({},o),{googleCredential:t.credential})))).then(e.handleAuthResponse).catch(u)}})),P.createElement(te,{label:"or",labelPosition:"center",my:"lg"})),P.createElement(X,{spacing:"xl"},P.createElement(K,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0,error:Vt(s,"email")}),P.createElement(ne,{name:"password",type:"password",label:"Password",autoComplete:"off",required:!0,error:Vt(s,"password")})),P.createElement(q,{position:"apart",mt:"xl",noWrap:!0},n&&P.createElement(ae,{component:"button",type:"button",color:"dimmed",onClick:n,size:"xs"},"Forgot password"),r&&P.createElement(ae,{component:"button",type:"button",color:"dimmed",onClick:r,size:"xs"},"Register"),P.createElement(re,{id:"remember",name:"remember",label:"Remember me",size:"xs"}),P.createElement(H,{type:"submit"},"Sign in")))}function Wt(e){const t=pt();return P.createElement(X,null,P.createElement(J,{sx:{flexDirection:"column"}},P.createElement(It,{size:32}),P.createElement(Y,null,"Choose profile")),e.memberships.map((n=>{var r,a;return P.createElement(le,{key:n.id,onClick:()=>{t.post("auth/profile",{login:e.login,profile:n.id}).then(e.handleAuthResponse).catch(console.log)}},P.createElement(q,null,P.createElement(oe,{radius:"xl"}),P.createElement("div",{style:{flex:1}},P.createElement(Z,{size:"sm",weight:500},null===(r=n.profile)||void 0===r?void 0:r.display),P.createElement(Z,{color:"dimmed",size:"xs"},null===(a=n.project)||void 0===a?void 0:a.display))))})))}function Kt(e){const t=pt();return P.createElement(Dt,{style:{maxWidth:400},onSubmit:n=>{t.post("auth/scope",{login:e.login,scope:Object.keys(n).join(" ")}).then(e.handleAuthResponse).catch(console.log)}},P.createElement(X,null,P.createElement(J,{sx:{flexDirection:"column"}},P.createElement(It,{size:32}),P.createElement(Y,null,"Choose scope")),P.createElement(X,null,(e.scope||"openid").split(" ").map((e=>P.createElement(re,{key:e,id:e,name:e,label:e,defaultChecked:!0})))),P.createElement(q,{position:"right",mt:"xl"},P.createElement(H,{type:"submit"},"Set scope"))))}function Qt(e){const{chooseScopes:t,onSuccess:n,onForgotPassword:r,onRegister:a,onCode:l}=e,o=Ot(e,["chooseScopes","onSuccess","onForgotPassword","onRegister","onCode"]),i=pt(),[c,s]=N(void 0),[u,d]=N(void 0);function m(e){e.login&&s(e.login),e.memberships&&d(e.memberships),e.code&&(t?d(void 0):g(e.code))}function p(e){g(e.code)}function g(e){l?l(e):i.processCode(e).then((()=>{n&&n()})).catch(console.log)}return P.createElement(kt,{width:450},c?u?P.createElement(Wt,{login:c,memberships:u,handleAuthResponse:m}):"new"===e.projectId?P.createElement(Nt,{login:c,handleAuthResponse:m}):e.chooseScopes?P.createElement(Kt,{login:c,scope:e.scope,handleAuthResponse:p}):P.createElement("div",null,"Success"):P.createElement(qt,Object.assign({generatePkce:!l,onForgotPassword:r,onRegister:a,handleAuthResponse:m},o),e.children))}const Ht=["meta","implicitRules","language","text","contained","extension","modifierExtension"],Bt=ie((e=>({root:{display:"grid",gridTemplateColumns:"30% 70%",margin:0,"& > dt, & > dd":{padding:`${e.spacing.sm}px ${e.spacing.sm}px`,borderTop:`0.1px solid ${e.colors.gray[3]}`,margin:0}},compact:{gridTemplateColumns:"20% 80%","& > dt, & > dd":{padding:`0 ${e.spacing.xs}px ${e.spacing.xs}px 0`,border:0}}})));function Gt(e){const{children:t,compact:n}=e,{classes:r,cx:a}=Bt();return P.createElement("dl",{className:a(r.root,{[r.compact]:n})},t)}function Jt(e){return P.createElement(P.Fragment,null,P.createElement("dt",null,e.term),P.createElement("dd",null,e.children))}function Yt(e){return P.createElement(P.Fragment,null,n(e.value))}function Xt(e){return P.createElement(P.Fragment,null,r(e.value))}function Zt(e){const t=e.value;if(!t)return null;const n=[];return t.value&&n.push(t.value),(t.use||t.system)&&(n.push(" ["),t.use&&n.push(t.use),t.use&&t.system&&n.push(" "),t.system&&n.push(t.system),n.push("]")),P.createElement(P.Fragment,null,n.join("").trim())}function en(e){var t;const n=e.value;return n?P.createElement(P.Fragment,null,n.name,n.name&&": ",null===(t=n.telecom)||void 0===t?void 0:t.map(((e,t)=>P.createElement(Zt,{key:"telecom-"+t,value:e})))):null}function tn(e){const t=e.value;return t?P.createElement(P.Fragment,null,a(t,e.options)):null}function nn(e){var t,n;return P.createElement("div",null,null===(t=e.value)||void 0===t?void 0:t.system,": ",null===(n=e.value)||void 0===n?void 0:n.value)}function rn(e){return P.createElement(P.Fragment,null,l(e.value))}function an(e){return P.createElement(P.Fragment,null,o(e.value))}function ln(e){const t=e.value;return t?P.createElement(P.Fragment,null,P.createElement(rn,{value:t.numerator})," / ",P.createElement(rn,{value:t.denominator})):null}function on(e){const t=rt(),{to:n,suffix:r,label:a,onClick:l,children:o}=e,i=Ot(e,["to","suffix","label","onClick","children"]);let c=function(e){if(e){if("string"==typeof e)return function(e){if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/"))return e;return"/"+e}(e);if("resourceType"in e)return function(e){return`/${e.resourceType}/${e.id}`}(e);if("reference"in e)return function(e){return`/${e.reference}`}(e)}return"#"}(n);return r&&(c+="/"+r),P.createElement(ae,Object.assign({href:c,"aria-label":a,onClick:e=>{Et(e),l?l():n&&t(c)}},i),o)}function cn(e){if(!e.value)return null;const t=e.value.display||e.value.reference||i(e.value);return!1!==e.link&&e.value.reference?P.createElement(on,{to:e.value},t):P.createElement(P.Fragment,null,t)}function sn(e){var t,n,r;const a=e.property,l=null!==(t=e.values)&&void 0!==t?t:[],o=null===(r=null===(n=a.type)||void 0===n?void 0:n[0])||void 0===r?void 0:r.code;return P.createElement(P.Fragment,null,l.map(((t,n)=>P.createElement("div",{key:`${n}-${l.length}`},P.createElement(un,{arrayElement:!0,property:a,propertyType:o,value:t,ignoreMissingValues:e.ignoreMissingValues,link:e.link})))))}function un(e){var t;const{property:n,propertyType:r,value:a}=e;if("*"===(null==n?void 0:n.max)&&!e.arrayElement)return"Attachment"===r?P.createElement(ft,{values:a,maxWidth:e.maxWidth}):P.createElement(sn,{property:n,values:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(r){case s.boolean:return P.createElement(P.Fragment,null,void 0===a?"":Boolean(a).toString());case s.SystemString:case s.code:case s.date:case s.integer:case s.positiveInt:case s.string:case s.unsignedInt:case s.uri:case s.url:return P.createElement(P.Fragment,null,a);case s.canonical:return P.createElement(cn,{value:{reference:a},link:e.link});case s.dateTime:case s.instant:return P.createElement(P.Fragment,null,m(a));case s.markdown:return P.createElement("pre",null,a);case s.Address:return P.createElement(ot,{value:a});case s.Annotation:return P.createElement(P.Fragment,null,null==a?void 0:a.text);case s.Attachment:return P.createElement(ht,{value:a,maxWidth:e.maxWidth});case s.CodeableConcept:return P.createElement(Yt,{value:a});case s.Coding:return P.createElement(Xt,{value:a});case s.ContactDetail:return P.createElement(en,{value:a});case s.ContactPoint:return P.createElement(Zt,{value:a});case s.HumanName:return P.createElement(tn,{value:a});case s.Identifier:return P.createElement(nn,{value:a});case s.Period:return P.createElement(P.Fragment,null,d(a));case s.Quantity:return P.createElement(rn,{value:a});case s.Range:return P.createElement(an,{value:a});case s.Ratio:return P.createElement(ln,{value:a});case s.Reference:return P.createElement(cn,{value:a,link:e.link});case s.Timing:return P.createElement(P.Fragment,null,u(a));default:if(!(null==n?void 0:n.path))throw Error(`Displaying property of type ${e.propertyType} requires element definition path`);return P.createElement(mn,{value:{type:c(null===(t=null==n?void 0:n.path)||void 0===t?void 0:t.split(".")),value:a},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}function dn(e,t){const n=p(e,t);return n?Array.isArray(n)?[n.map((e=>e.value)),n[0].type]:[n.value,n.type]:[void 0,"undefined"]}function mn(e){const t=e.value,n=t.value;if(!n)return null;const r=t.type,a=g.types[r];return a?"object"==typeof n&&"name"in n&&1===Object.keys(n).length&&"string"==typeof n.name?P.createElement("div",null,n.name):P.createElement(Gt,{compact:e.compact},Object.entries(a.properties).map((n=>{const r=n[0];if(Ht.indexOf(r)>=0)return null;const a=n[1],[l,o]=dn(t,r);return e.ignoreMissingValues&&(!l||Array.isArray(l)&&0===l.length)?null:P.createElement(Jt,{key:r,term:v(r)},P.createElement(un,{property:a,propertyType:o,value:l,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))}))):P.createElement("div",null,r," not implemented")}function pn(e){return P.createElement(q,{noWrap:!0},P.createElement("div",null,e.children),P.createElement("div",null,P.createElement(ce.Wrapper,{id:e.htmlFor,label:e.title,description:e.description},null)))}function gn(e){return P.createElement(ce.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,error:Vt(e.outcome,e.htmlFor)},e.children)}const vn={resourceType:"Device",id:"system",deviceName:[{name:"System"}]};function hn(e){const t=pt(),[n,r]=N(function(e,t){if(!t)return;if("resourceType"in t)return t;if("reference"in t)return"system"===t.reference?vn:e.getCachedReference(t);return}(t,e));return L((()=>{let a=!0;return!n&&e&&"reference"in e&&e.reference&&t.readReference(e).then((e=>{a&&r(e)})).catch((()=>r(void 0))),()=>a=!1}),[t,n,e]),n}function fn(e){const t=pt(),n=hn(e.defaultValue),[r,a]=N(),[l,o]=N();return L((()=>{n&&(o(JSON.parse(JSON.stringify(n))),t.requestSchema(n.resourceType).then(a).catch(console.log))}),[t,n]),r&&l?P.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:t=>{t.preventDefault(),e.onSubmit&&e.onSubmit(l)}},P.createElement(X,{mb:"xl"},P.createElement(gn,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},P.createElement(K,{name:"resourceType",defaultValue:l.resourceType,disabled:!0})),P.createElement(gn,{title:"ID",htmlFor:"id",outcome:e.outcome},P.createElement(K,{name:"id",defaultValue:l.id,disabled:!0}))),P.createElement(Jn,{typeName:l.resourceType,defaultValue:l,outcome:e.outcome,onChange:o}),P.createElement(q,{position:"right",mt:"xl"},P.createElement(H,{type:"submit"},"OK"),e.onDelete&&P.createElement(H,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(l)}},"Delete"))):P.createElement("div",null,"Loading...")}function En(e,t,n,r,a){const l=r.type;if(l.length>1)for(const n of l){const r=t.replace("[x]",h(n.code));r in e&&delete e[r]}return e[n]=a,e}function yn(e){return{value:e.code,label:(t=e,t.display||t.code||""),element:e};var t}function bn(e){const t=pt(),{property:n,defaultValue:r}=e,[a,l]=N((null==r?void 0:r.code)?[r.code]:[]),[o,i]=N((null==r?void 0:r.code)?[yn(r)]:[]),c=$();c.current=o;const s=M((e=>jt(this,void 0,void 0,(function*(){var r,a;const l=null===(r=n.binding)||void 0===r?void 0:r.valueSet,o=null===(a=(yield t.searchValueSet(l,e)).expansion)||void 0===a?void 0:a.contains,s=[...c.current];for(const e of o)e.code&&!s.some((t=>t.value===e.code))&&s.push(yn(e));i(s)}))),[t,n,c]);return L((()=>{s("").catch(console.log)}),[s]),P.createElement(se,{data:o,placeholder:e.placeholder,searchable:!0,creatable:!0,clearable:!0,value:a,filter:(e,t,n)=>{var r,l;return!(0!==a.length||t||!(null===(r=n.element.display)||void 0===r?void 0:r.toLowerCase().includes(e.toLowerCase().trim()))&&!(null===(l=n.element.code)||void 0===l?void 0:l.toLowerCase().includes(e.toLowerCase().trim())))},onChange:function(t){l(t);const n=t[0];let r;if(n&&(r=c.current.find((e=>e.value===t[0])),!r)){r=yn({code:n,display:n}),i([...c.current,r])}e.onChange&&e.onChange(null==r?void 0:r.element)},getCreateLabel:e=>`+ Create ${e}`,onCreate:e=>yn({code:e,display:e})})}function Cn(e){const[t,n]=N(e.defaultValue);return P.createElement(bn,{property:e.property,name:e.name,placeholder:e.placeholder,defaultValue:t&&(r=t,{system:null===(l=null===(a=r.coding)||void 0===a?void 0:a[0])||void 0===l?void 0:l.system,code:null===(i=null===(o=r.coding)||void 0===o?void 0:o[0])||void 0===i?void 0:i.code,display:null===(s=null===(c=r.coding)||void 0===c?void 0:c[0])||void 0===s?void 0:s.display}),onChange:function(t){const r=t&&{text:(a=t).display,coding:[{system:a.system,code:a.code,display:a.display}]};var a;n(r),e.onChange&&e.onChange(r)}});var r,a,l,o,i,c,s}function xn(e){const[t,n]=N(e.defaultValue);return P.createElement(bn,{property:e.property,name:e.name,placeholder:e.placeholder,defaultValue:(r=t,r?{code:r}:void 0),onChange:function(t){const r=null==(a=t)?void 0:a.code;var a;n(r),e.onChange&&e.onChange(r)}});var r}function Tn(e){const[t,n]=N(e.defaultValue);return P.createElement(bn,{property:e.property,name:e.name,placeholder:e.placeholder,defaultValue:t&&(r=t,{system:r.system,code:r.code,display:r.display}),onChange:function(t){const r=t&&{system:(a=t).system,code:a.code,display:a.display};var a;n(r),e.onChange&&e.onChange(r)}});var r}function kn(e){const[t,n]=N(e.defaultValue),r=$();function a(t){t&&0===Object.keys(t).length&&(t=void 0),n(t),e.onChange&&e.onChange(t)}return r.current=t,P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(W,{"data-testid":"system",defaultValue:null==t?void 0:t.system,onChange:e=>function(e){const t=Object.assign(Object.assign({},r.current),{system:e});e||delete t.system,a(t)}(e.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),P.createElement(W,{"data-testid":"use",defaultValue:null==t?void 0:t.use,onChange:e=>function(e){const t=Object.assign(Object.assign({},r.current),{use:e});e||delete t.use,a(t)}(e.currentTarget.value),data:["","home","work","temp","old","mobile"]}),P.createElement(K,{placeholder:"Value",defaultValue:null==t?void 0:t.value,onChange:e=>function(e){const t=Object.assign(Object.assign({},r.current),{value:e});e||delete t.value,a(t)}(e.currentTarget.value)}))}function On(e){var t;const[n,r]=N(e.defaultValue),a=$();function l(t){r(t),e.onChange&&e.onChange(t)}return a.current=n,P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(K,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:null==n?void 0:n.name,onChange:e=>function(e){const t=Object.assign(Object.assign({},a.current),{name:e});e||delete t.name,l(t)}(e.currentTarget.value)}),P.createElement(kn,{name:e.name+"-telecom",defaultValue:null===(t=null==n?void 0:n.telecom)||void 0===t?void 0:t[0],onChange:function(e){const t=Object.assign(Object.assign({},a.current),{telecom:e&&[e]});e||delete t.telecom,l(t)}}))}function jn(e){return P.createElement(K,{id:e.name,name:e.name,"data-testid":e.name,placeholder:e.placeholder,type:"datetime-local",defaultValue:wn(e.defaultValue),error:Vt(e.outcome,e.name),onChange:t=>{if(e.onChange){const n=t.currentTarget.value;e.onChange(Sn(n))}}})}function wn(e){if(!e)return"";const t=new Date(e);return f(t)?t.toLocaleDateString("sv")+"T"+t.toLocaleTimeString("sv"):""}function Sn(e){if(!e)return"";const t=new Date(e);return f(t)?t.toISOString():""}function An(e){return P.createElement(ue,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:i(e.defaultValue),onChange:t=>{e.onChange&&e.onChange(JSON.parse(t))}})}function Dn(e){var t,n,r;const[a,l]=N(e.defaultValue),o=$();function i(t){l(t),e.onChange&&e.onChange(t)}return o.current=a,P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(W,{defaultValue:null==a?void 0:a.use,"data-testid":"use",onChange:e=>{return t=e.currentTarget.value,void i(Object.assign(Object.assign({},o.current),{use:t||void 0}));var t},data:["","temp","old","usual","official","nickname","anonymous","maiden"]}),P.createElement(K,{placeholder:"Prefix",defaultValue:null===(t=null==a?void 0:a.prefix)||void 0===t?void 0:t.join(" "),onChange:e=>{return t=e.currentTarget.value,void i(Object.assign(Object.assign({},o.current),{prefix:t?t.split(" "):void 0}));var t}}),P.createElement(K,{placeholder:"Given",defaultValue:null===(n=null==a?void 0:a.given)||void 0===n?void 0:n.join(" "),onChange:e=>{return t=e.currentTarget.value,void i(Object.assign(Object.assign({},o.current),{given:t?t.split(" "):void 0}));var t}}),P.createElement(K,{placeholder:"Family",defaultValue:null==a?void 0:a.family,onChange:e=>{return t=e.currentTarget.value,void i(Object.assign(Object.assign({},o.current),{family:t||void 0}));var t}}),P.createElement(K,{placeholder:"Suffix",defaultValue:null===(r=null==a?void 0:a.suffix)||void 0===r?void 0:r.join(" "),onChange:e=>{return t=e.currentTarget.value,void i(Object.assign(Object.assign({},o.current),{suffix:t?t.split(" "):void 0}));var t}}))}function In(e){const[t,n]=N(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(K,{placeholder:"System",defaultValue:null==t?void 0:t.system,onChange:e=>r(Object.assign(Object.assign({},t),{system:e.currentTarget.value}))}),P.createElement(K,{placeholder:"Value",defaultValue:null==t?void 0:t.value,onChange:e=>r(Object.assign(Object.assign({},t),{value:e.currentTarget.value}))}))}function Vn(e){const[t,n]=N(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(jn,{name:e.name+".start",placeholder:"Start",defaultValue:null==t?void 0:t.start,onChange:e=>r(Object.assign(Object.assign({},t),{start:e}))}),P.createElement(jn,{name:e.name+".end",placeholder:"End",defaultValue:null==t?void 0:t.end,onChange:e=>r(Object.assign(Object.assign({},t),{end:e}))}))}function Rn(e){var t;const[n,r]=N(e.defaultValue);function a(t){r(t),e.onChange&&e.onChange(t)}return P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(W,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:null==n?void 0:n.comparator,data:["","<","<=",">=",">"],onChange:e=>a(Object.assign(Object.assign({},n),{comparator:e.currentTarget.value}))}),P.createElement(K,{id:e.name,name:e.name,"data-testid":e.name+"-value",type:"number",step:"any",placeholder:"Value",defaultValue:null===(t=null==n?void 0:n.value)||void 0===t?void 0:t.toString(),onChange:e=>a(Object.assign(Object.assign({},n),{value:Pn(e.currentTarget.value)}))}),P.createElement(K,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:null==n?void 0:n.unit,onChange:e=>a(Object.assign(Object.assign({},n),{unit:e.currentTarget.value}))}))}function Pn(e){if(e)return parseFloat(e)}function Nn(e){const[t,n]=N(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(Rn,{name:e.name+"-low",defaultValue:null==t?void 0:t.low,onChange:e=>r(Object.assign(Object.assign({},t),{low:e}))}),P.createElement(Rn,{name:e.name+"-high",defaultValue:null==t?void 0:t.high,onChange:e=>r(Object.assign(Object.assign({},t),{high:e}))}))}function $n(e){const[t,n]=N(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(Rn,{name:e.name+"-numerator",defaultValue:null==t?void 0:t.numerator,onChange:e=>r(Object.assign(Object.assign({},t),{numerator:e}))}),P.createElement(Rn,{name:e.name+"-denominator",defaultValue:null==t?void 0:t.denominator,onChange:e=>r(Object.assign(Object.assign({},t),{denominator:e}))}))}function zn(e){var t,n,r;const a=hn(e.value),l=a?E(a):null!==(t=e.alt)&&void 0!==t?t:"",o=null!==(n=a&&y(a))&&void 0!==n?n:e.src,i=null!==(r=e.radius)&&void 0!==r?r:"xl",c=Object.assign({},e);return delete c.value,delete c.link,e.link?P.createElement(on,{to:a},P.createElement(oe,Object.assign({src:o,alt:l,radius:i},c))):P.createElement(oe,Object.assign({src:o,alt:l,radius:i},c))}const Ln={Schedule:"_id",Task:"_id",Patient:"name",Practitioner:"name",Questionnaire:"name",ServiceRequest:"_id",DiagnosticReport:"_id",Specimen:"_id",Observation:"code",RequestGroup:"_id",ActivityDefinition:"name"};function Fn(e){const t=pt(),n=hn(e.defaultValue),[r,a]=N(n?E(n):""),[l,o]=N(!1),[i,c]=N([]);function s(n){return jt(this,void 0,void 0,(function*(){o(!0);const r=Ln[e.resourceType]||"name",a=new URLSearchParams({[r]:encodeURIComponent(n),_count:"10"}),l=yield t.searchResources(e.resourceType,a);c(l.map((e=>({value:E(e),resource:e})))),o(!1)}))}return L((()=>{n&&a(E(n))}),[n,a]),P.createElement(de,{itemComponent:Mn,value:r,data:i,placeholder:e.placeholder,onFocus:()=>s(r),onChange:function(e){return jt(this,void 0,void 0,(function*(){return a(e),s(e)}))},onItemSubmit:function(t){a(t.value),c([]),e.onChange&&e.onChange(t.resource)},rightSection:l?P.createElement(me,{size:16}):null})}const Mn=_(((e,t)=>{var{value:n,resource:r}=e,a=Ot(e,["value","resource"]);return P.createElement("div",Object.assign({ref:t},a),P.createElement(q,{noWrap:!0},P.createElement(zn,{value:r}),P.createElement("div",null,P.createElement(Z,null,n),P.createElement(Z,{size:"xs",color:"dimmed"},r.birthDate))))}));function _n(e){const n=e.targetTypes,r=function(e,t){var n;const r=null===(n=null==e?void 0:e.reference)||void 0===n?void 0:n.split("/")[0];if(r)return r;if(t&&t.length>0)return t[0];return}(e.defaultValue,n),[a,l]=N(e.defaultValue),[o,i]=N(r);$().current=a;return $().current=o,P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},n?P.createElement(W,{"data-testid":"reference-input-resource-type-select",defaultValue:o,onChange:e=>i(e.currentTarget.value),data:n}):P.createElement(K,{"data-testid":"reference-input-resource-type-input",defaultValue:o,onChange:e=>i(e.currentTarget.value)}),P.createElement(Fn,{resourceType:o,name:e.name+"-id",placeholder:e.placeholder,defaultValue:a,onChange:n=>{var r;r=n?t(n):void 0,l(r),e.onChange&&e.onChange(r)}}))}function Un(e){const[t,n]=N(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),r=$();function a(t){n(t),e.onChange&&e.onChange(t)}return r.current=t,P.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},P.createElement("colgroup",null,P.createElement("col",{width:"97%"}),P.createElement("col",{width:"3%"})),P.createElement("tbody",null,t.map(((n,l)=>P.createElement("tr",{key:`${l}-${t.length}`},P.createElement("td",null,P.createElement(Qn,{arrayElement:!0,property:e.property,name:e.name+"."+l,defaultValue:n,onChange:e=>{const t=[...r.current];t[l]=e,a(t)}})),P.createElement("td",{style:{textAlign:"right"}},P.createElement(Q,{title:"Remove",size:"sm",onClick:e=>{Et(e);const t=[...r.current];t.splice(l,1),a(t)}},P.createElement(xe,null)))))),P.createElement("tr",null,P.createElement("td",null),P.createElement("td",{style:{textAlign:"right"}},P.createElement(Q,{title:"Add",size:"sm",color:"green",onClick:e=>{Et(e);const t=[...r.current];t.push(void 0),a(t)}},P.createElement(Oe,null))))))}const qn=["sun","mon","tue","wed","thu","fri","sat"];function Wn(e){const[t,n]=N(e.defaultValue||{}),[r,a]=N(!1),l=$();return l.current=t,P.createElement(P.Fragment,null,P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement("span",null,u(l.current)||"No repeat"),P.createElement(H,{onClick:()=>a(!0)},"Edit")),P.createElement(Kn,{visible:r,defaultValue:l.current,onOk:t=>{e.onChange&&e.onChange(t),n(t),a(!1)},onCancel:()=>a(!1)}))}function Kn(e){var t,n;const[r,a]=N(e.defaultValue||{}),l=$();function o(e){a(Object.assign(Object.assign({},l.current),{repeat:e}))}function i(e,t){t?function(e){var t,n,r;const a=(null===(n=null===(t=l.current)||void 0===t?void 0:t.repeat)||void 0===n?void 0:n.dayOfWeek)||[];a.includes(e)||o(Object.assign(Object.assign({},null===(r=l.current)||void 0===r?void 0:r.repeat),{dayOfWeek:[...a,e]}))}(e):function(e){var t,n,r;const a=(null===(n=null===(t=l.current)||void 0===t?void 0:t.repeat)||void 0===n?void 0:n.dayOfWeek)||[];a.includes(e)&&o(Object.assign(Object.assign({},null===(r=l.current)||void 0===r?void 0:r.repeat),{dayOfWeek:a.filter((t=>t!==e))}))}(e)}return l.current=r,P.createElement(pe,{title:"Timing",closeButtonLabel:"Close",opened:e.visible,onClose:()=>e.onCancel()},P.createElement("div",{style:{padding:"5px 20px",textAlign:"left"}},P.createElement(gn,{title:"Starts on",htmlFor:"timing-dialog-start"},P.createElement(jn,{name:"timing-dialog-start",onChange:e=>{return t=e,void a(Object.assign(Object.assign({},l.current),{event:[t]}));var t}})),P.createElement(gn,{title:"Repeat every",htmlFor:"timing-dialog-period"},P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(K,{type:"number",step:1,id:"timing-dialog-period",name:"timing-dialog-period",defaultValue:null===(t=null==r?void 0:r.repeat)||void 0===t?void 0:t.period,onChange:e=>function(e){var t;o(Object.assign(Object.assign({},null===(t=l.current)||void 0===t?void 0:t.repeat),{period:e}))}(parseInt(e.currentTarget.value))}),P.createElement(W,{id:"timing-dialog-periodUnit",name:"timing-dialog-periodUnit",defaultValue:null===(n=null==r?void 0:r.repeat)||void 0===n?void 0:n.periodUnit,onChange:e=>function(e){var t;o(Object.assign(Object.assign({},null===(t=l.current)||void 0===t?void 0:t.repeat),{periodUnit:e}))}(e.currentTarget.value),data:[{label:"day",value:"d"},{label:"week",value:"wk"},{label:"month",value:"mo"},{label:"year",value:"a"}]}))),P.createElement(gn,{title:"Repeat on"},P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},qn.map((e=>P.createElement(P.Fragment,{key:e},P.createElement("label",{htmlFor:"timing-dialog-repeat-"+e},e.charAt(0).toUpperCase()),P.createElement(re,{id:"timing-dialog-repeat-"+e,name:"timing-dialog-repeat-"+e,onChange:t=>i(e,t.currentTarget.checked)}))))))),P.createElement(H,{onClick:()=>e.onOk(r)},"OK"))}function Qn(e){var t,n,r;const a=e.property,l=null!==(t=e.defaultPropertyType)&&void 0!==t?t:null===(r=null===(n=a.type)||void 0===n?void 0:n[0])||void 0===r?void 0:r.code,o=e.name,i=e.defaultValue;if("*"===a.max&&!e.arrayElement)return"Attachment"===l?P.createElement(xt,{name:o,defaultValue:i,onChange:e.onChange}):P.createElement(Un,{property:a,name:o,defaultValue:i,onChange:e.onChange});const c=a.type;return c.length>1?P.createElement(Hn,Object.assign({elementDefinitionTypes:c},e)):P.createElement(Bn,Object.assign({elementDefinitionType:c[0]},e))}function Hn(e){const t=e.elementDefinitionTypes;let n;e.defaultPropertyType&&(n=t.find((t=>t.code===e.defaultPropertyType))),n||(n=t[0]);const[r,a]=N(n);return P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(W,{style:{width:"200px"},defaultValue:null==r?void 0:r.code,onChange:e=>{a(t.find((t=>t.code===e.currentTarget.value)))},data:t.map((e=>({value:e.code,label:e.code})))}),P.createElement(Bn,Object.assign({},e,{elementDefinitionType:r,onChange:t=>{e.onChange&&e.onChange(t,e.name.replace("[x]",h(r.code)))}})))}function Bn(e){var t;const n=e.property,r=e.elementDefinitionType.code,a=e.name,l=e.defaultValue;switch(r){case s.SystemString:case s.canonical:case s.string:case s.time:case s.uri:case s.url:return P.createElement(K,{id:a,name:a,"data-testid":a,defaultValue:l,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)},error:Vt(e.outcome,a)});case s.date:return P.createElement(K,{type:"date",id:a,name:a,"data-testid":a,defaultValue:l,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)},error:Vt(e.outcome,a)});case s.dateTime:case s.instant:return P.createElement(jn,{name:a,defaultValue:l,onChange:e.onChange,outcome:e.outcome});case s.decimal:case s.integer:case s.positiveInt:case s.unsignedInt:return P.createElement(K,{type:"number",step:r===s.decimal?"any":"1",id:a,name:a,"data-testid":a,defaultValue:l,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.valueAsNumber)}});case s.code:return P.createElement(xn,{property:n,name:a,defaultValue:l,onChange:e.onChange});case s.boolean:return P.createElement(re,{id:a,name:a,"data-testid":a,defaultChecked:!!l,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.checked)}});case s.markdown:return P.createElement(ge,{id:a,name:a,"data-testid":a,defaultValue:l,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)}});case s.Address:return P.createElement(st,{name:a,defaultValue:l,onChange:e.onChange});case s.Annotation:return P.createElement(vt,{name:a,defaultValue:l,onChange:e.onChange});case s.Attachment:return P.createElement(Tt,{name:a,defaultValue:l,onChange:e.onChange});case s.CodeableConcept:return P.createElement(Cn,{property:n,name:a,defaultValue:l,onChange:e.onChange});case s.Coding:return P.createElement(Tn,{property:n,name:a,defaultValue:l,onChange:e.onChange});case s.ContactDetail:return P.createElement(On,{name:a,defaultValue:l,onChange:e.onChange});case s.ContactPoint:return P.createElement(kn,{name:a,defaultValue:l,onChange:e.onChange});case s.Extension:return P.createElement(An,{name:a,defaultValue:l,onChange:e.onChange});case s.HumanName:return P.createElement(Dn,{name:a,defaultValue:l,onChange:e.onChange});case s.Identifier:return P.createElement(In,{name:a,defaultValue:l,onChange:e.onChange});case s.Period:return P.createElement(Vn,{name:a,defaultValue:l,onChange:e.onChange});case s.Quantity:return P.createElement(Rn,{name:a,defaultValue:l,onChange:e.onChange});case s.Range:return P.createElement(Nn,{name:a,defaultValue:l,onChange:e.onChange});case s.Ratio:return P.createElement($n,{name:a,defaultValue:l,onChange:e.onChange});case s.Reference:return P.createElement(_n,{name:a,defaultValue:l,targetTypes:Gn(n),onChange:e.onChange});case s.Timing:return P.createElement(Wn,{name:a,defaultValue:l,onChange:e.onChange});default:return P.createElement(Jn,{typeName:c(null===(t=n.path)||void 0===t?void 0:t.split(".")),defaultValue:l,onChange:e.onChange,outcome:e.outcome})}}function Gn(e){var t,n,r;return null===(r=null===(n=null===(t=null==e?void 0:e.type)||void 0===t?void 0:t[0])||void 0===n?void 0:n.targetProfile)||void 0===r?void 0:r.map((e=>e.split("/").pop()))}function Jn(e){var t;const[n,r]=N(null!==(t=e.defaultValue)&&void 0!==t?t:{});function a(t){r(t),e.onChange&&e.onChange(t)}const l=e.typeName,o=g.types[l];if(!o)return P.createElement("div",null,l," not implemented");const i={type:l,value:n};return P.createElement(X,null,Object.entries(o.properties).map((t=>{const r=t[0];if("id"===r||Ht.indexOf(r)>=0)return null;const l=t[1];if(!l.type)return null;const[o,c]=dn(i,r);return 1===l.type.length&&"boolean"===l.type[0].code?P.createElement(pn,{key:r,title:v(r),description:l.definition,htmlFor:r},P.createElement(Qn,{property:l,name:r,defaultValue:o,defaultPropertyType:c,outcome:e.outcome,onChange:(e,l)=>{a(En(n,r,null!=l?l:r,t[1],e))}})):P.createElement(gn,{key:r,title:v(r),description:l.definition,htmlFor:r,outcome:e.outcome},P.createElement(Qn,{property:l,name:r,defaultValue:o,defaultPropertyType:c,outcome:e.outcome,onChange:(e,l)=>{a(En(n,r,null!=l?l:r,t[1],e))}}))})))}const Yn=ie((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 Xn(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function Zn(e){const{classes:t}=Yn(),{onChangeMonth:n,onClick:r}=e,[a,l]=N(er);function o(e){l((t=>{const r=new Date(t.getTime());return r.setMonth(t.getMonth()+e),n(r),r}))}const i=U((()=>function(e,t){const n=new Date(e.getFullYear(),e.getMonth()),r=[];let a=[];for(let e=0;e<n.getDay();e++)a.push(void 0);for(;n.getMonth()===e.getMonth();)a.push({date:new Date(n.getTime()),available:tr(n,t)}),6===n.getDay()&&(r.push(a),a=[]),n.setDate(n.getDate()+1);if(0!==n.getDay()){for(let e=n.getDay();e<7;e++)a.push(void 0);r.push(a)}return r}(a,e.slots)),[a,e.slots]);return P.createElement("div",null,P.createElement(q,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},P.createElement("p",{style:{flex:1}},Xn(a)),P.createElement(q,{position:"right",spacing:"xs"},P.createElement(H,{variant:"outline","aria-label":"Previous month",onClick:()=>o(-1)},"<"),P.createElement(H,{variant:"outline","aria-label":"Next month",onClick:()=>o(1)},">"))),P.createElement("table",{className:t.table},P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"SUN"),P.createElement("th",null,"MON"),P.createElement("th",null,"TUE"),P.createElement("th",null,"WED"),P.createElement("th",null,"THU"),P.createElement("th",null,"FRI"),P.createElement("th",null,"SAT"))),P.createElement("tbody",null,i.map(((e,t)=>P.createElement("tr",{key:"week-"+t},e.map(((e,t)=>P.createElement("td",{key:"day-"+t},e&&P.createElement(H,{disabled:!e.available,onClick:()=>r(e.date)},e.date.getDate()))))))))))}function er(){const e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}function tr(e,t){for(const n of t){const t=new Date(n.start);if(t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate())return!0}return!1}function nr(e){const{value:t,link:n}=e,r=Ot(e,["value","link"]),a=hn(t);if(!a)return null;const l=E(a);return n?P.createElement(on,Object.assign({to:a},r),l):P.createElement(Z,Object.assign({component:"span"},r),l)}function rr(e){return P.createElement(q,{spacing:"xs"},P.createElement(zn,{size:24,radius:12,value:e.value,link:e.link}),P.createElement(nr,{value:e.value,link:e.link}))}const ar=ie((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:"dark"===e.colorScheme?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]}`}}})));function lr(e){var t,n;const r=hn(e.value),a=hn(null===(t=null==r?void 0:r.specimen)||void 0===t?void 0:t[0]);if(!r)return null;let l="";if(r.presentedForm&&r.presentedForm.length>0){const e=r.presentedForm[0];(null===(n=e.contentType)||void 0===n?void 0:n.startsWith("text/plain"))&&e.data&&(l=window.atob(e.data))}if(null==a?void 0:a.note)for(const e of a.note)l+=e.text+"\n\n";return P.createElement(X,null,P.createElement(Y,null,"Diagnostic Report"),P.createElement(q,{mt:"md",spacing:30},r.subject&&P.createElement("div",null,P.createElement(Z,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),P.createElement(Z,null,P.createElement(rr,{value:r.subject,link:!0}))),r.resultsInterpreter&&r.resultsInterpreter.map((e=>P.createElement("div",{key:e.reference},P.createElement(Z,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),P.createElement(Z,null,P.createElement(rr,{value:e,link:!0}))))),r.issued&&P.createElement("div",null,P.createElement(Z,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),P.createElement(Z,null,m(r.issued))),r.status&&P.createElement("div",null,P.createElement(Z,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),P.createElement(Z,null,h(r.status)))),r.result&&P.createElement(or,{value:r.result}),l&&P.createElement("pre",null,l.trim()))}function or(e){var t;const{classes:n}=ar();return P.createElement("table",{className:n.table},P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"Test"),P.createElement("th",null,"Value"),P.createElement("th",null,"Reference Range"),P.createElement("th",null,"Interpretation"))),P.createElement("tbody",null,null===(t=e.value)||void 0===t?void 0:t.map(((e,t)=>P.createElement(ir,{key:"obs-"+t,value:e})))))}function ir(e){const{classes:t,cx:n}=ar(),r=hn(e.value);if(!r)return null;const a=function(e){var t,n,r,a;const l=null===(a=null===(r=null===(n=null===(t=e.interpretation)||void 0===t?void 0:t[0])||void 0===n?void 0:n.coding)||void 0===r?void 0:r[0])||void 0===a?void 0:a.code;return"AA"===l||"LL"===l||"HH"===l||"A"===l}(r);return P.createElement("tr",{className:n({[t.criticalRow]:a})},P.createElement("td",null,P.createElement(on,{to:r},P.createElement(Yt,{value:r.code}))),P.createElement("td",null,P.createElement(cr,{value:r})),P.createElement("td",null,P.createElement(sr,{value:r.referenceRange})),P.createElement("td",null,r.interpretation&&r.interpretation.length>0&&P.createElement(Yt,{value:r.interpretation[0]})))}function cr(e){const t=e.value;return P.createElement(P.Fragment,null,b(t))}function sr(e){const t=e.value&&e.value.length>0&&e.value[0];return t?t.text?P.createElement(P.Fragment,null,t.text):P.createElement(an,{value:t}):null}const ur=ie((e=>({root:{borderCollapse:"collapse",width:"100%","& tr":{borderTop:`0.1px solid ${e.colors.gray[3]}`},"& th, & td":{padding:`${e.spacing.sm}px ${e.spacing.sm}px`,verticalAlign:"top"}},removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}})));function dr(e){const{classes:t}=ur(),n=pt(),[r,a]=N();if(L((()=>{n.requestSchema(e.original.resourceType).then(a).catch(console.log)}),[n,e.original.resourceType]),!r)return null;const l=r.types[e.original.resourceType];return l?P.createElement("table",{className:t.root},P.createElement("colgroup",null,P.createElement("col",{style:{width:"30%"}}),P.createElement("col",{style:{width:"35%"}}),P.createElement("col",{style:{width:"35%"}})),P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"Property"),P.createElement("th",null,"Before"),P.createElement("th",null,"After"))),P.createElement("tbody",null,Object.entries(l.properties).map((n=>{const r=n[0];if("id"===r||"meta"===r)return null;const a=n[1],[l,o]=dn(C(e.original),r),[c,s]=dn(C(e.revised),r);return mr(l)&&mr(c)||i(l)===i(c)?null:P.createElement("tr",{key:r},P.createElement("td",null,v(r)),P.createElement("td",{className:t.removed},P.createElement(un,{property:a,propertyType:o,value:l,ignoreMissingValues:!0})),P.createElement("td",{className:t.added},P.createElement(un,{property:a,propertyType:s,value:c,ignoreMissingValues:!0})))})))):null}function mr(e){return!e||Array.isArray(e)&&0===e.length||"object"==typeof e&&0===Object.keys(e).length}function pr(e){const t=pt(),n=hn(e.value),[r,a]=N();return L((()=>{n&&t.requestSchema(n.resourceType).then(a).catch(console.log)}),[t,n]),r&&n?P.createElement(mn,{value:{type:n.resourceType,value:n},ignoreMissingValues:e.ignoreMissingValues}):null}class gr extends P.Component{constructor(e){super(e),this.state={}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("Uncaught error:",e,t)}render(){return this.state.error?P.createElement(ee,{icon:P.createElement(ke,{size:16}),title:"Something went wrong",color:"red"},x(this.state.error)):this.props.children}}function vr(e){return P.createElement(B,null,e.children)}function hr(e){var t,n,r;const a=null!==(t=e.profile)&&void 0!==t?t:null===(n=e.resource.meta)||void 0===n?void 0:n.author;return P.createElement(G,{"data-testid":"timeline-item",m:"lg",p:"sm",shadow:"xs",radius:"sm",withBorder:!0,className:e.className},P.createElement(q,{position:"apart",spacing:8},P.createElement(zn,{value:a,link:!0,size:"md"}),P.createElement("div",{style:{flex:1}},P.createElement(Z,{size:"sm"},P.createElement(nr,{color:"dark",weight:500,value:a,link:!0})),P.createElement(Z,{size:"xs"},P.createElement(on,{color:"dimmed",to:e.resource},m(null===(r=e.resource.meta)||void 0===r?void 0:r.lastUpdated)),P.createElement(Z,{component:"span",color:"dimmed",mx:8},"·"),P.createElement(on,{color:"dimmed",to:e.resource},e.resource.resourceType))),e.popupMenuItems&&P.createElement(ve,{position:"bottom-end",shadow:"md",width:200},P.createElement(ve.Target,null,P.createElement(Q,{radius:"xl","aria-label":`Actions for ${T(e.resource)}`},P.createElement(je,null))),e.popupMenuItems)),P.createElement(gr,null,e.padding&&P.createElement("div",{style:{padding:"2px 16px 16px 16px"}},e.children),!e.padding&&P.createElement(P.Fragment,null,e.children)))}function fr(e){e.sort(Er)}function Er(e,t){const n=yr(e),r=yr(t);return n>r?1:n<r?-1:br(e)-br(t)}function yr(e){const t=e.priority;return"string"==typeof t&&{stat:4,asap:3,urgent:2}[t]||0}function br(e){var t;if("Communication"===e.resourceType&&e.sent)return new Date(e.sent).getTime();if(("DiagnosticReport"===e.resourceType||"Media"===e.resourceType||"Observation"===e.resourceType)&&e.issued)return new Date(e.issued).getTime();if("DocumentReference"===e.resourceType&&e.date)return new Date(e.date).getTime();const n=null===(t=e.meta)||void 0===t?void 0:t.lastUpdated;return n?new Date(n).getTime():0}const Cr=ie((e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}})));function xr(e){const t=rt(),n=pt(),r=n.getProfile(),a=$(null),l=hn(e.value),[o,i]=N(),[c,s]=N([]),u=e.buildSearchRequests,d=$(c);d.current=c;const m=M((()=>{if(!l)return s([]),void i({});n.executeBatch(u(l)).then(p).catch(console.log)}),[n,l,u]);function p(e){const t=[];if(e.entry){for(const n of e.entry){const e=n.resource;if(e&&("history"===e.type&&i(e),e.entry))for(const n of e.entry)n.resource&&t.push(n.resource)}fr(t),t.reverse()}s(t)}function g(e){const t=[...d.current,...e];fr(t),t.reverse(),s(t)}function v(e,t){return n.updateResource(Object.assign(Object.assign({},e),{priority:t}))}function h(e){v(e,"stat").then(m).catch(console.log)}function f(e){v(e,"routine").then(m).catch(console.log)}function E(e){t(`/${e.resourceType}/${e.id}`)}function y(e){t(`/${e.resourceType}/${e.id}/edit`)}function b(e){t(`/${e.resourceType}/${e.id}/delete`)}function C(e){var n;t(`/${e.resourceType}/${e.id}/_history/${null===(n=e.meta)||void 0===n?void 0:n.versionId}`)}return L((()=>{m()}),[m]),l?P.createElement(vr,null,e.createCommunication&&P.createElement(G,{m:"lg",p:"sm",shadow:"xs",radius:"sm",withBorder:!0},P.createElement(Dt,{testid:"timeline-form",onSubmit:t=>{var o;o=t.text,l&&e.createCommunication&&n.createResource(e.createCommunication(l,r,o)).then((e=>{g([e])})).catch(console.log);const i=a.current;i&&(i.value="",i.focus())}},P.createElement(q,{spacing:"xs",noWrap:!0,style:{width:"100%"}},P.createElement(zn,{value:r}),P.createElement(K,{name:"text",ref:a,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),P.createElement(Q,{type:"submit",radius:"xl",color:"blue",variant:"filled"},P.createElement(we,{size:16})),P.createElement(Ct,{onUpload:function(t){l&&e.createMedia&&n.createResource(e.createMedia(l,r,t)).then((e=>g([e]))).then((()=>at({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:P.createElement(Se,{size:16}),autoClose:2e3}))).catch((e=>at({id:"upload-notification",color:"red",title:"Upload error",message:x(e),icon:P.createElement(Ae,{size:16}),autoClose:2e3})))},onUploadStart:function(){lt({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,disallowClose:!0})},onUploadProgress:function(e){at({id:"upload-notification",loading:!0,title:"Uploading...",message:Ar(e),autoClose:!1,disallowClose:!0})}},(e=>P.createElement(Q,Object.assign({},e,{radius:"xl",color:"blue",variant:"filled"}),P.createElement(Te,{size:16}))))))),c.map((e=>{var t;if(e.resourceType===l.resourceType&&e.id===l.id)return P.createElement(kr,{key:null===(t=e.meta)||void 0===t?void 0:t.versionId,history:o,resource:e,onDetails:C});const n=`${e.resourceType}/${e.id}`;switch(e.resourceType){case"AuditEvent":return P.createElement(wr,{key:n,resource:e,onDetails:E});case"Communication":return P.createElement(Or,{key:n,resource:e,onPin:"stat"!==e.priority?h:void 0,onUnpin:"stat"===e.priority?f:void 0,onDetails:E,onEdit:y,onDelete:b});case"DiagnosticReport":return P.createElement(Sr,{key:n,resource:e,onDetails:E,onEdit:y,onDelete:b});case"Media":return P.createElement(jr,{key:n,resource:e,onDetails:E,onEdit:y,onDelete:b});default:return P.createElement(hr,{key:n,resource:e,padding:!0},P.createElement(pr,{value:e,ignoreMissingValues:!0}))}}))):P.createElement(J,{style:{width:"100%",height:"100%"}},P.createElement(me,null))}function Tr(e){return P.createElement(ve.Dropdown,null,P.createElement(ve.Label,null,"Resource"),e.onPin&&P.createElement(ve.Item,{icon:P.createElement(De,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${T(e.resource)}`},"Pin"),e.onUnpin&&P.createElement(ve.Item,{icon:P.createElement(Ie,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${T(e.resource)}`},"Unpin"),e.onDetails&&P.createElement(ve.Item,{icon:P.createElement(Ve,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${T(e.resource)}`},"Details"),e.onEdit&&P.createElement(ve.Item,{icon:P.createElement(Re,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${T(e.resource)}`},"Edit"),e.onDelete&&P.createElement(P.Fragment,null,P.createElement(ve.Divider,null),P.createElement(ve.Label,null,"Danger zone"),P.createElement(ve.Item,{color:"red",icon:P.createElement(Pe,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${T(e.resource)}`},"Delete")))}function kr(e){const t=function(e,t){const n=e.entry,r=n.findIndex((e=>{var n,r,a;return(null===(r=null===(n=e.resource)||void 0===n?void 0:n.meta)||void 0===r?void 0:r.versionId)===(null===(a=t.meta)||void 0===a?void 0:a.versionId)}));if(r>=n.length-1)return;return n[r+1].resource}(e.history,e.resource);return t?P.createElement(hr,{resource:e.resource,padding:!0,popupMenuItems:P.createElement(Tr,Object.assign({},e))},P.createElement(dr,{original:t,revised:e.resource})):P.createElement(hr,{resource:e.resource,padding:!0,popupMenuItems:P.createElement(Tr,Object.assign({},e))},P.createElement("h3",null,"Created"),P.createElement(pr,{value:e.resource,ignoreMissingValues:!0}))}function Or(e){var t,n;const{classes:r}=Cr(),a=!e.resource.priority||"routine"===e.resource.priority?void 0:r.pinnedComment;return P.createElement(hr,{resource:e.resource,profile:e.resource.sender,padding:!0,className:a,popupMenuItems:P.createElement(Tr,Object.assign({},e))},P.createElement("p",null,null===(n=null===(t=e.resource.payload)||void 0===t?void 0:t[0])||void 0===n?void 0:n.contentString))}function jr(e){var t;const n=null===(t=e.resource.content)||void 0===t?void 0:t.contentType,r=n&&!n.startsWith("image/")&&!n.startsWith("video/")&&"application/pdf"!==n;return P.createElement(hr,{resource:e.resource,padding:!!r,popupMenuItems:P.createElement(Tr,Object.assign({},e))},P.createElement(ht,{value:e.resource.content}))}function wr(e){return P.createElement(hr,{resource:e.resource,padding:!0,popupMenuItems:P.createElement(Tr,Object.assign({},e))},P.createElement(he,null,P.createElement("pre",null,e.resource.outcomeDesc)))}function Sr(e){return P.createElement(hr,{resource:e.resource,padding:!0,popupMenuItems:P.createElement(Tr,Object.assign({},e))},P.createElement(lr,{value:e.resource}))}function Ar(e){if(e.lengthComputable){const t=100*e.loaded/e.total;return`Uploaded: ${Dr(e.loaded)} / ${Dr(e.total)} ${t.toFixed(2)}%`}return`Uploaded: ${Dr(e.loaded)}`}function Dr(e){if(0==e)return"0.00 B";const t=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,t)).toFixed(2)+" "+" KMGTP".charAt(t)+"B"}function Ir(e){return P.createElement(xr,{value:e.resource,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:[{request:{method:"GET",url:`${T(e)}/_history`}},{request:{method:"GET",url:`AuditEvent?entity=${T(e)}&_sort=-_lastUpdated`}}]})})}function Vr(e){return P.createElement(xr,{value:e.encounter,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:[{request:{method:"GET",url:`${T(e)}/_history`}},{request:{method:"GET",url:`Communication?encounter=${T(e)}`}},{request:{method:"GET",url:`Media?encounter=${T(e)}`}}]}),createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",encounter:t(e),subject:e.subject,sender:t(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",encounter:t(e),subject:e.subject,operator:t(n),issued:(new Date).toISOString(),content:r})})}function Rr(e){let t;try{t=k(e.path,e.resource)}catch(e){return console.warn("FhirPathDisplay:",e),null}if(t.length>1)throw new Error(`Component "path" for "FhirPathDisplay" must resolve to a single element. Received ${t.length} elements [${JSON.stringify(t,null,2)}]`);return P.createElement(un,{value:t[0]||"",propertyType:e.propertyType})}const Pr={string:[O.EQUALS,O.NOT,O.CONTAINS,O.EXACT],fulltext:[O.EQUALS,O.NOT,O.CONTAINS,O.EXACT],token:[O.EQUALS,O.NOT],reference:[O.EQUALS,O.NOT],numeric:[O.EQUALS,O.NOT_EQUALS,O.GREATER_THAN,O.LESS_THAN,O.GREATER_THAN_OR_EQUALS,O.LESS_THAN_OR_EQUALS],quantity:[O.EQUALS,O.NOT_EQUALS,O.GREATER_THAN,O.LESS_THAN,O.GREATER_THAN_OR_EQUALS,O.LESS_THAN_OR_EQUALS],date:[O.EQUALS,O.NOT_EQUALS,O.GREATER_THAN,O.LESS_THAN,O.GREATER_THAN_OR_EQUALS,O.LESS_THAN_OR_EQUALS,O.STARTS_AFTER,O.ENDS_BEFORE,O.APPROXIMATELY],datetime:[O.EQUALS,O.NOT_EQUALS,O.GREATER_THAN,O.LESS_THAN,O.GREATER_THAN_OR_EQUALS,O.LESS_THAN_OR_EQUALS,O.STARTS_AFTER,O.ENDS_BEFORE,O.APPROXIMATELY]},Nr={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"};function $r(e,t){return Object.assign(Object.assign({},e),{filters:t,offset:0,name:void 0})}function zr(e){return $r(e,[])}function Lr(e,t){return $r(e,(e.filters||[]).filter((e=>e.code!==t)))}function Fr(e,t,n,r,a){a&&(e=Lr(e,t));const l=[];return e.filters&&l.push(...e.filters),l.push({code:t,operator:n,value:r||""}),$r(e,l)}function Mr(e,t){if(e.fields&&e.fields.includes(t))return e;const n=[];return e.fields&&n.push(...e.fields),n.push(t),Object.assign(Object.assign({},e),{fields:n,name:void 0})}function _r(e,t){if(!e.filters)return e;const n=[...e.filters];return n.splice(t,1),Object.assign(Object.assign({},e),{filters:n,name:void 0})}function Ur(e,t){return Kr(e,t,-1)}function qr(e,t){return Kr(e,t,0)}function Wr(e,t){return Kr(e,t,1)}function Kr(e,t,n){const r=new Date;r.setDate(r.getDate()+n),r.setHours(0,0,0,0);const a=new Date(r.getTime());return a.setDate(a.getDate()+1),a.setTime(a.getTime()-1),Yr(e,t,r,a)}function Qr(e,t){return Gr(e,t,-1)}function Hr(e,t){return Gr(e,t,0)}function Br(e,t){return Gr(e,t,1)}function Gr(e,t,n){const r=new Date;r.setMonth(r.getMonth()+n),r.setDate(1),r.setHours(0,0,0,0);const 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),Yr(e,t,r,a)}function Jr(e,t){const n=new Date;n.setMonth(0),n.setDate(1),n.setHours(0,0,0,0);return Yr(e,t,n,new Date)}function Yr(e,t,n,r){return e=Xr(e=Lr(e,t),t,O.GREATER_THAN_OR_EQUALS,n),e=Xr(e,t,O.LESS_THAN_OR_EQUALS,r)}function Xr(e,t,n,r){return Fr(e,t,n,r.toISOString())}function Zr(e,t,n=!0){return Fr(e,t,O.MISSING,n.toString())}function ea(e,t){return e.offset===t?e:Object.assign(Object.assign({},e),{offset:t,name:void 0})}function ta(e,t){var n;return ea(e,(t-1)*(null!==(n=e.count)&&void 0!==n?n:j))}function na(e,t,n){return t===aa(e)&&void 0!==n&&n===la(e)?e:Object.assign(Object.assign({},e),{sortRules:[{code:t,descending:!!n}],name:void 0})}function ra(e,t){let n=!1;return aa(e)===t&&(n=!la(e)),na(e,t,n)}function aa(e){const t=e.sortRules;if(!t||0===t.length)return;const n=t[0].code;return n.startsWith("-")?n.substr(1):n}function la(e){const t=e.sortRules;return!(!t||0===t.length)&&!!t[0].descending}function oa(e){return Pr[e.type]}function ia(e){var t;return null!==(t=Nr[e])&&void 0!==t?t:""}function ca(e){let t=e;return t.includes(".")&&(t=t.split(".").pop()),"id"===t?"ID":"versionId"===t?"Version ID":(t=t.replace("[x]",""),t=t.replace(/([A-Z])/g," $1"),t=t.replace(/[-_]/g," "),t=t.replace(/\s+/g," "),t=t.trim(),t.split(/\s/).map(h).join(" "))}function sa(e,t){var n,r;const a=t.name;return"id"===a?e.id:"meta.versionId"===a?null===(n=e.meta)||void 0===n?void 0:n.versionId:"_lastUpdated"===a?m(null===(r=e.meta)||void 0===r?void 0:r.lastUpdated):t.elementDefinition&&`${e.resourceType}.${t.name}`===t.elementDefinition.path?function(e,t){var n,r,a;const l=(null===(a=null===(r=null===(n=t.path)||void 0===n?void 0:n.split("."))||void 0===r?void 0:r.pop())||void 0===a?void 0:a.replaceAll("[x]",""))||"",[o,i]=dn({type:e.resourceType,value:e},l);if(!o)return null;return P.createElement(un,{property:t,propertyType:i,value:o,maxWidth:200,ignoreMissingValues:!0,link:!1})}(e,t.elementDefinition):t.searchParams&&1===t.searchParams.length&&t.name===t.searchParams[0].code?function(e,t,n){const r=w(t.expression,[{type:e.resourceType,value:e}]);if(!r||0===r.length)return null;if(n)return P.createElement(un,{propertyType:r[0].type,value:r[0].value,maxWidth:200,ignoreMissingValues:!0,link:!1});return P.createElement(P.Fragment,null,r.map(((e,t)=>P.createElement("span",{key:`${t}-${r.length}`},"object"==typeof e?JSON.stringify(e):e))))}(e,t.searchParams[0],t.elementDefinition):null}function ua(e){var t;const[n,r]=N({search:JSON.parse(i(e.search))}),a=$(null),l=$(null);function o(){var e,t;const l=null!==(e=n.search.fields)&&void 0!==e?e:[],o=null===(t=a.current)||void 0===t?void 0:t.value;if(o){const e=[...l,o];r({search:Object.assign(Object.assign({},n.search),{fields:e})})}}function c(){var e,t;const a=null!==(e=n.search.fields)&&void 0!==e?e:[],o=null===(t=l.current)||void 0===t?void 0:t.value;if(o){const e=[...a];e.splice(e.indexOf(o),1),r({search:Object.assign(Object.assign({},n.search),{fields:e})})}}function s(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}if(L((()=>{r({search:e.search})}),[e.search]),!e.visible)return null;const u=e.search.resourceType,d=g.types[u],m=null!==(t=n.search.fields)&&void 0!==t?t:[],p=function(e){const t=[],n=new Set,r=new Set;for(const a of Object.keys(e.properties))t.push(a),n.add(a.toLowerCase()),r.add(ca(a));if(e.searchParams)for(const a of Object.keys(e.searchParams)){const e=ca(a);n.has(a)||r.has(e)||(t.push(a),n.add(a),r.add(ca(a)))}return t}(d).filter((e=>!(null==m?void 0:m.includes(e)))).sort();return P.createElement(pe,{title:"Fields",closeButtonLabel:"Close",opened:e.visible,onClose:e.onCancel},P.createElement("div",null,P.createElement("table",{style:{margin:"auto"}},P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",{colSpan:2,align:"center"},"Available"),P.createElement("th",{colSpan:2,align:"center"},"Selected"))),P.createElement("tbody",null,P.createElement("tr",null,P.createElement("td",{colSpan:2,align:"center"},P.createElement("select",{ref:a,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&o()}(e),onDoubleClick:()=>{o()},"data-testid":"available"},p.map((e=>P.createElement("option",{key:e,value:e},ca(e)))))),P.createElement("td",{colSpan:2,align:"center"},P.createElement("select",{ref:l,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&c()}(e),onDoubleClick:()=>{c()},"data-testid":"selected"},m.map((e=>P.createElement("option",{key:e,value:e},ca(e)))))))),P.createElement("tfoot",null,P.createElement("tr",null,P.createElement("td",{align:"center"},P.createElement(H,{compact:!0,variant:"outline",onClick:o},"Add")),P.createElement("td",{align:"center"},P.createElement(H,{compact:!0,variant:"outline",onClick:c},"Remove")),P.createElement("td",{align:"center"},P.createElement(H,{compact:!0,variant:"outline",onClick:function(){var e,t;const a=null!==(e=n.search.fields)&&void 0!==e?e:[],o=null===(t=l.current)||void 0===t?void 0:t.value;if(o){const e=[...a],t=e.indexOf(o);s(e,t,t-1),r({search:Object.assign(Object.assign({},n.search),{fields:e})})}}},"Up")),P.createElement("td",{align:"center"},P.createElement(H,{compact:!0,variant:"outline",onClick:function(){var e,t;const a=null!==(e=n.search.fields)&&void 0!==e?e:[],o=null===(t=l.current)||void 0===t?void 0:t.value;if(o){const e=[...a],t=e.indexOf(o);s(e,t,t+1),r({search:Object.assign(Object.assign({},n.search),{fields:e})})}}},"Down")))))),P.createElement(H,{onClick:()=>e.onOk(n.search)},"OK"))}function da(e){var t,n;const{resourceType:r,filter:a}=e,l=null===(n=null===(t=g.types[r])||void 0===t?void 0:t.searchParams)||void 0===n?void 0:n[a.code];if(l){if("reference"===l.type)return P.createElement(nr,{value:{reference:a.value}});const e=S(r,l);if("_lastUpdated"===a.code||e.type===A.DATETIME)return P.createElement(P.Fragment,null,m(a.value))}return P.createElement(P.Fragment,null,a.value)}function ma(e){var t;const n="filter-value";switch(S(e.resourceType,e.searchParam).type){case A.REFERENCE:return P.createElement(_n,{name:n,defaultValue:{reference:e.defaultValue},targetTypes:null===(t=e.searchParam)||void 0===t?void 0:t.target,onChange:t=>{t?e.onChange(t.reference):e.onChange("")}});case A.BOOLEAN:return P.createElement(re,{name:n,"data-testid":n,defaultChecked:"true"===e.defaultValue,onChange:t=>e.onChange(t.currentTarget.checked.toString())});case A.DATE:return P.createElement(K,{type:"date",name:n,"data-testid":n,defaultValue:e.defaultValue,onChange:t=>e.onChange(t.currentTarget.value)});case A.DATETIME:return P.createElement(jn,{name:n,defaultValue:e.defaultValue,onChange:e.onChange});case A.NUMBER:return P.createElement(K,{type:"number",name:n,"data-testid":n,defaultValue:e.defaultValue,onChange:t=>e.onChange(t.currentTarget.value)});case A.QUANTITY:return P.createElement(Rn,{name:n,defaultValue:pa(e.defaultValue),onChange:t=>{t?e.onChange(`${t.value}`):e.onChange("")}});default:return P.createElement(K,{name:n,"data-testid":n,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:t=>e.onChange(t.currentTarget.value),placeholder:"Search value"})}}function pa(e){if(e){const[t,n,r]=e.split("|");if(t)return{value:parseFloat(t),system:n,unit:r}}}function ga(e){const[t,n]=N(JSON.parse(i(e.search))),[r,a]=N(-1),l=$(t);if(l.current=t,L((()=>{n(JSON.parse(i(e.search)))}),[e.search]),!e.visible)return null;const o=e.search.resourceType,c=g.types[o].searchParams,s=t.filters||[];return P.createElement(pe,{title:"Filters",closeButtonLabel:"Close",size:900,opened:e.visible,onClose:e.onCancel},P.createElement("div",null,P.createElement("table",null,P.createElement("colgroup",null,P.createElement("col",{style:{width:200}}),P.createElement("col",{style:{width:200}}),P.createElement("col",{style:{width:380}}),P.createElement("col",{style:{width:120}})),P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"Field"),P.createElement("th",null,"Operation"),P.createElement("th",null,"Value"),P.createElement("th",null,"Actions"))),P.createElement("tbody",null,s.map(((e,t)=>t===r?P.createElement(ha,{key:`filter-${t}-${s.length}-input`,resourceType:o,searchParams:c,defaultValue:e,okText:"Save",onOk:e=>{const r=[...s];r[t]=e,n($r(l.current,r)),a(-1)},onCancel:()=>a(-1)}):P.createElement(va,{key:`filter-${t}-${s.length}-display`,resourceType:o,searchParams:c,filter:e,onEdit:()=>a(t),onDelete:()=>n(_r(l.current,t))}))),P.createElement(ha,{resourceType:o,searchParams:c,okText:"Add",onOk:function(e){n(Fr(l.current,e.code,e.operator,e.value))}})))),P.createElement(q,{position:"right",mt:"xl"},P.createElement(H,{onClick:()=>e.onOk(l.current)},"OK")))}function va(e){const{filter:t}=e;return P.createElement("tr",null,P.createElement("td",null,ca(t.code)),P.createElement("td",null,ia(t.operator)),P.createElement("td",null,P.createElement(da,{resourceType:e.resourceType,filter:t})),P.createElement("td",null,P.createElement(H,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),P.createElement(H,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function ha(e){var t;const[n,r]=N(null!==(t=e.defaultValue)&&void 0!==t?t:{}),a=$(n);a.current=n;const l=e.searchParams[n.code],o=l&&oa(l);return P.createElement("tr",null,P.createElement("td",null,P.createElement(W,{"data-testid":"filter-field",defaultValue:a.current.code,onChange:e=>{return t=e.currentTarget.value,void r(Object.assign(Object.assign({},a.current),{code:t}));var t},data:Object.keys(e.searchParams).map((e=>({value:e,label:ca(e)})))})),P.createElement("td",null,o&&P.createElement(W,{"data-testid":"filter-operation",defaultValue:n.operator,onChange:e=>{return t=e.currentTarget.value,void r(Object.assign(Object.assign({},a.current),{operator:t}));var t},data:["",...o.map((e=>({value:e,label:ia(e)})))]})),P.createElement("td",null,l&&n.operator&&P.createElement(ma,{resourceType:e.resourceType,searchParam:l,defaultValue:n.value,onChange:function(e){r(Object.assign(Object.assign({},a.current),{value:e}))}})),P.createElement("td",null,n.code&&n.operator&&n.value&&P.createElement(H,{compact:!0,variant:"outline",onClick:()=>{e.onOk(a.current),r({})}},e.okText),e.onCancel&&P.createElement(H,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}function fa(e){var t;const[n,r]=N(null!==(t=e.defaultValue)&&void 0!==t?t:"");if(!e.visible||!e.searchParam||!e.filter)return null;function a(){e.onOk(Object.assign(Object.assign({},e.filter),{value:n}))}return P.createElement(pe,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},P.createElement("div",{style:{width:500}},P.createElement(Dt,{onSubmit:a},P.createElement(ma,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:n,autoFocus:!0,onChange:r}))),P.createElement(H,{onClick:a},"OK"))}function Ea(e){if(!e.searchParams)return null;function t(t){e.onChange(t)}return 1===e.searchParams.length?P.createElement(ya,{search:e.search,searchParam:e.searchParams[0],onSort:function(n,r){t(na(e.search,n.code,r))},onPrompt:function(t,n){e.onPrompt(t,{code:t.code,operator:n,value:""})},onChange:t,onClear:function(n){t(Lr(e.search,n.code))}}):P.createElement(ve.Dropdown,null,e.searchParams.map((e=>P.createElement(ve.Item,{key:e.code},ca(e.code)))))}function ya(e){switch(e.searchParam.type){case"date":return P.createElement(ba,Object.assign({},e));case"number":case"quantity":return P.createElement(Ca,Object.assign({},e));case"reference":return P.createElement(xa,Object.assign({},e));case"string":case"token":case"uri":return P.createElement(Ta,Object.assign({},e));default:return P.createElement(P.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function ba(e){const{searchParam:t}=e,n=t.code;return P.createElement(ve.Dropdown,null,P.createElement(ve.Item,{icon:P.createElement(Ne,{size:14}),onClick:()=>e.onSort(t,!1)},"Sort Oldest to Newest"),P.createElement(ve.Item,{icon:P.createElement($e,{size:14}),onClick:()=>e.onSort(t,!0)},"Sort Newest to Oldest"),P.createElement(ve.Divider,null),P.createElement(ve.Item,{icon:P.createElement(ze,{size:14}),onClick:()=>e.onPrompt(t,O.EQUALS)},"Equals..."),P.createElement(ve.Item,{icon:P.createElement(Le,{size:14}),onClick:()=>e.onPrompt(t,O.NOT_EQUALS)},"Does not equal..."),P.createElement(ve.Divider,null),P.createElement(ve.Item,{icon:P.createElement(Fe,{size:14}),onClick:()=>e.onPrompt(t,O.ENDS_BEFORE)},"Before..."),P.createElement(ve.Item,{icon:P.createElement(Me,{size:14}),onClick:()=>e.onPrompt(t,O.STARTS_AFTER)},"After..."),P.createElement(ve.Item,{icon:P.createElement(_e,{size:14}),onClick:()=>e.onPrompt(t,O.EQUALS)},"Between..."),P.createElement(ve.Divider,null),P.createElement(ve.Item,{icon:P.createElement(Ue,{size:14}),onClick:()=>e.onChange(Wr(e.search,n))},"Tomorrow"),P.createElement(ve.Item,{icon:P.createElement(Ue,{size:14}),onClick:()=>e.onChange(qr(e.search,n))},"Today"),P.createElement(ve.Item,{icon:P.createElement(Ue,{size:14}),onClick:()=>e.onChange(Ur(e.search,n))},"Yesterday"),P.createElement(ve.Divider,null),P.createElement(ve.Item,{icon:P.createElement(Ue,{size:14}),onClick:()=>e.onChange(Br(e.search,n))},"Next Month"),P.createElement(ve.Item,{icon:P.createElement(Ue,{size:14}),onClick:()=>e.onChange(Hr(e.search,n))},"This Month"),P.createElement(ve.Item,{icon:P.createElement(Ue,{size:14}),onClick:()=>e.onChange(Qr(e.search,n))},"Last Month"),P.createElement(ve.Divider,null),P.createElement(ve.Item,{icon:P.createElement(Ue,{size:14}),onClick:()=>e.onChange(Jr(e.search,n))},"Year to date"),P.createElement(ka,Object.assign({},e)))}function Ca(e){const{searchParam:t}=e;return P.createElement(ve.Dropdown,null,P.createElement(ve.Item,{icon:P.createElement(Ne,{size:14}),onClick:()=>e.onSort(t,!1)},"Sort Smallest to Largest"),P.createElement(ve.Item,{icon:P.createElement($e,{size:14}),onClick:()=>e.onSort(t,!0)},"Sort Largest to Smallest"),P.createElement(ve.Divider,null),P.createElement(ve.Item,{icon:P.createElement(ze,{size:14}),onClick:()=>e.onPrompt(t,O.EQUALS)},"Equals..."),P.createElement(ve.Item,{icon:P.createElement(Le,{size:14}),onClick:()=>e.onPrompt(t,O.NOT_EQUALS)},"Does not equal..."),P.createElement(ve.Divider,null),P.createElement(ve.Item,{icon:P.createElement(Me,{size:14}),onClick:()=>e.onPrompt(t,O.GREATER_THAN)},"Greater than..."),P.createElement(ve.Item,{icon:P.createElement(qe,{size:14}),onClick:()=>e.onPrompt(t,O.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),P.createElement(ve.Item,{icon:P.createElement(Fe,{size:14}),onClick:()=>e.onPrompt(t,O.LESS_THAN)},"Less than..."),P.createElement(ve.Item,{icon:P.createElement(qe,{size:14}),onClick:()=>e.onPrompt(t,O.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),P.createElement(ka,Object.assign({},e)))}function xa(e){const{searchParam:t}=e;return P.createElement(ve.Dropdown,null,P.createElement(ve.Item,{icon:P.createElement(ze,{size:14}),onClick:()=>e.onPrompt(t,O.EQUALS)},"Equals..."),P.createElement(ve.Item,{icon:P.createElement(Le,{size:14}),onClick:()=>e.onPrompt(t,O.NOT)},"Does not equal..."),P.createElement(ka,Object.assign({},e)))}function Ta(e){const{searchParam:t}=e;return P.createElement(ve.Dropdown,null,P.createElement(ve.Item,{icon:P.createElement(Ne,{size:14}),onClick:()=>e.onSort(t,!1)},"Sort A to Z"),P.createElement(ve.Item,{icon:P.createElement($e,{size:14}),onClick:()=>e.onSort(t,!0)},"Sort Z to A"),P.createElement(ve.Divider,null),P.createElement(ve.Item,{icon:P.createElement(ze,{size:14}),onClick:()=>e.onPrompt(t,O.EQUALS)},"Equals..."),P.createElement(ve.Item,{icon:P.createElement(Le,{size:14}),onClick:()=>e.onPrompt(t,O.NOT)},"Does not equal..."),P.createElement(ve.Divider,null),P.createElement(ve.Item,{icon:P.createElement(We,{size:14}),onClick:()=>e.onPrompt(t,O.CONTAINS)},"Contains..."),P.createElement(ve.Item,{icon:P.createElement(Ke,{size:14}),onClick:()=>e.onPrompt(t,O.EQUALS)},"Does not contain..."),P.createElement(ka,Object.assign({},e)))}function ka(e){const{searchParam:t}=e,n=t.code;return P.createElement(P.Fragment,null,P.createElement(ve.Divider,null),P.createElement(ve.Item,{icon:P.createElement(Qe,{size:14}),onClick:()=>e.onChange(Zr(e.search,n))},"Missing"),P.createElement(ve.Item,{icon:P.createElement(He,{size:14}),onClick:()=>e.onChange(Zr(e.search,n,!1))},"Not missing"),P.createElement(ve.Divider,null),P.createElement(ve.Item,{icon:P.createElement(Be,{size:14}),onClick:()=>e.onClear(t)},"Clear filters"))}function Oa(e,t){var n;if("_lastUpdated"===t)return{name:"_lastUpdated",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_lastUpdated",name:"_lastUpdated",type:"date",expression:"Resource.meta.lastUpdated"}]};if("meta.versionId"===t)return{name:"meta.versionId",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_versionId",name:"_versionId",type:"token",expression:"Resource.meta.versionId"}]};const r=g.types[e],a=r.properties[t],l=null===(n=r.searchParams)||void 0===n?void 0:n[t.toLowerCase()];if(a&&l)return{name:t,elementDefinition:a,searchParams:[l]};if(a){let n;if(r.searchParams){const a=`${e}.${t.replaceAll("[x]","")}`;n=Object.values(r.searchParams).filter((e=>{var t;return null===(t=e.expression)||void 0===t?void 0:t.includes(a)})),0===n.length&&(n=void 0)}return{name:t,elementDefinition:a,searchParams:n}}if(l){return{name:t,elementDefinition:S(e,l).elementDefinition,searchParams:[l]}}return{name:t}}class ja extends Event{constructor(e){super("change"),this.definition=e}}class wa extends Event{constructor(e){super("load"),this.response=e}}class Sa extends Event{constructor(e,t){super("click"),this.resource=e,this.browserEvent=t}}const Aa=ie((e=>({root:{maxWidth:"100%",overflow:"auto",textAlign:"left",marginBottom:"20px"},table:{cursor:"pointer"},tr:{"&:hover":{backgroundColor:"dark"===e.colorScheme?e.colors.dark[7]:e.colors.gray[0]}},th:{padding:"0 !important"},control:{width:"100%",padding:`${e.spacing.xs}px ${e.spacing.md}px`,"&:hover":{backgroundColor:"dark"===e.colorScheme?e.colors.dark[6]:e.colors.gray[0]}},icon:{width:21,height:21,borderRadius:21}})));function Da(e){var t,n,r;const{classes:a}=Aa(),l=pt(),[o,i]=N(!1),[c,s]=N(),{search:u,onLoad:d}=e,[m,p]=N({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,filterDialogVisible:!1}),v=$(m);function h(t){e.onChange&&e.onChange(new ja(t))}function f(t,n){yt(t.target)||2!==t.button&&(Et(t),1!==t.button&&e.onClick&&e.onClick(new Sa(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new Sa(n,t)))}v.current=m,L((()=>{s(void 0),l.search(u.resourceType,D(Object.assign(Object.assign({},u),{total:"accurate",fields:void 0}))).then((e=>{p(Object.assign(Object.assign({},v.current),{searchResponse:e})),d&&d(new wa(e))})).catch((e=>{p(Object.assign(Object.assign({},v.current),{searchResponse:void 0})),s(e)}))}),[l,u,d]),L((()=>{i(!1),l.requestSchema(e.search.resourceType).then((()=>i(!0))).catch(console.log)}),[l,e.search.resourceType]);if(!(o&&(null===(t=null==g?void 0:g.types)||void 0===t?void 0:t[e.search.resourceType])))return P.createElement(J,{style:{width:"100%",height:"100%"}},P.createElement(me,null));const E=e.checkboxesEnabled,y=function(e){const t=e.resourceType,n=[];for(const r of e.fields||["id","_lastUpdated"])n.push(Oa(t,r));return n}(u),b=u.resourceType,C=m.searchResponse,x=null==C?void 0:C.entry,T=null==x?void 0:x.map((e=>e.resource)),k="subtle",O="gray",w=16,S=window.innerWidth<768;return P.createElement("div",{className:a.root,"data-testid":"search-control"},!e.hideToolbar&&P.createElement(q,{position:"apart",mb:"xl"},P.createElement(q,{spacing:2},P.createElement(H,{compact:!0,variant:k,color:O,leftIcon:P.createElement(Ge,{size:w}),onClick:()=>p(Object.assign(Object.assign({},v.current),{fieldEditorVisible:!0}))},"Fields"),P.createElement(H,{compact:!0,variant:k,color:O,leftIcon:P.createElement(Je,{size:w}),onClick:()=>p(Object.assign(Object.assign({},v.current),{filterEditorVisible:!0}))},"Filters"),e.onNew&&P.createElement(H,{compact:!0,variant:k,color:O,leftIcon:P.createElement(Ye,{size:w}),onClick:e.onNew},"New..."),!S&&e.onExport&&P.createElement(H,{compact:!0,variant:k,color:O,leftIcon:P.createElement(Xe,{size:w}),onClick:e.onExport},"Export..."),!S&&e.onDelete&&P.createElement(H,{compact:!0,variant:k,color:O,leftIcon:P.createElement(Pe,{size:w}),onClick:()=>e.onDelete(Object.keys(m.selected))},"Delete..."),!S&&e.onBulk&&P.createElement(H,{compact:!0,variant:k,color:O,leftIcon:P.createElement(Ze,{size:w}),onClick:()=>e.onBulk(Object.keys(m.selected))},"Bulk...")),C&&P.createElement(Z,{size:"xs",color:"dimmed"},function(e,t){var n;return Math.min(t,(null!==(n=e.offset)&&void 0!==n?n:0)+1)}(u,C.total),"-",function(e,t){var n,r;return Math.min(t,((null!==(n=e.offset)&&void 0!==n?n:0)+1)*(null!==(r=e.count)&&void 0!==r?r:j))}(u,C.total)," of"," ",null===(n=C.total)||void 0===n?void 0:n.toLocaleString())),P.createElement(fe,{className:a.table},P.createElement("thead",null,P.createElement("tr",null,E&&P.createElement("th",null,P.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:function(){var e,t;const n=v.current;if(!(null===(e=n.searchResponse)||void 0===e?void 0:e.entry)||0===n.searchResponse.entry.length)return!1;for(const e of n.searchResponse.entry)if((null===(t=e.resource)||void 0===t?void 0:t.id)&&!n.selected[e.resource.id])return!1;return!0}(),onChange:e=>function(e){var t;e.stopPropagation();const n=e.target.checked,r={},a=null===(t=v.current)||void 0===t?void 0:t.searchResponse;n&&(null==a?void 0:a.entry)&&a.entry.forEach((e=>{var t;(null===(t=e.resource)||void 0===t?void 0:t.id)&&(r[e.resource.id]=!0)})),p(Object.assign(Object.assign({},v.current),{selected:r}))}(e)})),y.map((t=>P.createElement("th",{key:t.name},P.createElement(ve,{shadow:"md",width:240,position:"bottom-end"},P.createElement(ve.Target,null,P.createElement(le,{className:a.control},P.createElement(q,{position:"apart",noWrap:!0},P.createElement(Z,{weight:500,size:"sm"},ca(t.name)),P.createElement(J,{className:a.icon},P.createElement(et,{size:14,stroke:1.5}))))),P.createElement(Ea,{search:e.search,searchParams:t.searchParams,onPrompt:(e,t)=>{p(Object.assign(Object.assign({},v.current),{filterDialogVisible:!0,filterDialogSearchParam:e,filterDialogFilter:t}))},onChange:e=>{h(e)}})))))),!e.hideFilters&&P.createElement("tr",null,E&&P.createElement("th",null),y.map((t=>P.createElement("th",{key:t.name},t.searchParams&&P.createElement(Va,{resourceType:b,searchParams:t.searchParams,filters:e.search.filters})))))),P.createElement("tbody",null,null==T?void 0:T.map((e=>e&&P.createElement("tr",{key:e.id,className:a.tr,"data-testid":"search-control-row",onClick:t=>f(t,e),onAuxClick:t=>f(t,e)},E&&P.createElement("td",null,P.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!m.selected[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,r=Object.assign({},v.current.selected);n?r[t]=!0:delete r[t],p(Object.assign(Object.assign({},v.current),{selected:r}))}(t,e.id)})),y.map((t=>P.createElement("td",{key:t.name},sa(e,t))))))))),0===(null==T?void 0:T.length)&&P.createElement(B,null,P.createElement(J,null,P.createElement(Z,{size:"xl",color:"dimmed"},"No results"))),void 0!==(null==C?void 0:C.total)&&C.total>0&&P.createElement(J,{m:"md",p:"md"},P.createElement(Ee,{page:Ra(u),total:Pa(u,C.total),onChange:e=>h(ta(u,e)),getItemAriaLabel:e=>{switch(e){case"prev":return"Previous page";case"next":return"Next page";default:return}}})),c&&P.createElement("div",{"data-testid":"search-error"},P.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(c,void 0,2))),P.createElement(ua,{search:e.search,visible:v.current.fieldEditorVisible,onOk:e=>{h(e),p(Object.assign(Object.assign({},v.current),{fieldEditorVisible:!1}))},onCancel:()=>{p(Object.assign(Object.assign({},v.current),{fieldEditorVisible:!1}))}}),P.createElement(ga,{search:e.search,visible:v.current.filterEditorVisible,onOk:e=>{h(e),p(Object.assign(Object.assign({},v.current),{filterEditorVisible:!1}))},onCancel:()=>{p(Object.assign(Object.assign({},v.current),{filterEditorVisible:!1}))}}),P.createElement(fa,{key:null===(r=m.filterDialogSearchParam)||void 0===r?void 0:r.code,visible:v.current.filterDialogVisible,title:"Input",resourceType:b,searchParam:m.filterDialogSearchParam,filter:m.filterDialogFilter,defaultValue:"",onOk:t=>{h(Fr(e.search,t.code,t.operator,t.value)),p(Object.assign(Object.assign({},v.current),{filterDialogVisible:!1}))},onCancel:()=>{p(Object.assign(Object.assign({},v.current),{filterDialogVisible:!1}))}}))}const Ia=P.memo(Da);function Va(e){var t;const n=(null!==(t=e.filters)&&void 0!==t?t:[]).filter((t=>e.searchParams.find((e=>e.code===t.code))));return 0===n.length?P.createElement("span",null,"no filters"):P.createElement(P.Fragment,null,n.map(((t,r)=>P.createElement("div",{key:`filter-${r}-${n.length}`},ia(t.operator)," ",P.createElement(da,{resourceType:e.resourceType,filter:t})))))}function Ra(e){return Math.floor((e.offset||0)/(e.count||j))+1}function Pa(e,t){const n=e.count||j;return Math.ceil(t/n)}function Na(e){var t,n,r,a,l;const o=pt(),[i,c]=N(),[s,u]=N(),{query:d,fields:m}=e,[p,g]=N(),[v,h]=N({}),f=$();f.current=p;const E=$({});function y(t,n){yt(t.target)||(Et(t),1!==t.button&&e.onClick&&e.onClick(new Sa(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new Sa(n,t)))}E.current=v,L((()=>{u(void 0),o.graphql(d).then(g).catch(u)}),[o,d]),L((()=>{o.requestSchema(e.resourceType).then((e=>{c(Object.assign({},e))})).catch(console.log)}),[o,e.resourceType]);if(!(null===(t=null==i?void 0:i.types)||void 0===t?void 0:t[e.resourceType]))return P.createElement(me,null);const b=e.checkboxesEnabled;return P.createElement("div",{onContextMenu:e=>Et(e),"data-testid":"search-control"},P.createElement(fe,null,P.createElement("thead",null,P.createElement("tr",null,b&&P.createElement("th",null,P.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:function(){var e,t;const n=null===(t=null===(e=f.current)||void 0===e?void 0:e.data)||void 0===t?void 0:t.ResourceList;if(!n||0===n.length)return!1;for(const e of n)if((null==e?void 0:e.id)&&!E.current[e.id])return!1;return!0}(),onChange:e=>function(e){var t,n;e.stopPropagation();const r=e.target.checked,a={},l=null===(n=null===(t=f.current)||void 0===t?void 0:t.data)||void 0===n?void 0:n.ResourceList;r&&l&&l.forEach((e=>{(null==e?void 0:e.id)&&(a[e.id]=!0)})),h(a)}(e)})),m.map((e=>P.createElement("th",{key:e.name},e.name))))),P.createElement("tbody",null,null===(r=null===(n=null==p?void 0:p.data)||void 0===n?void 0:n.ResourceList)||void 0===r?void 0:r.map((e=>e&&P.createElement("tr",{key:e.id,"data-testid":"search-control-row",onClick:t=>y(t,e),onAuxClick:t=>y(t,e)},b&&P.createElement("td",null,P.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!v[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,r=Object.assign({},E.current);n?r[t]=!0:delete r[t],h(r)}(t,e.id)})),m.map((t=>P.createElement("td",{key:t.name},P.createElement(Rr,{propertyType:t.propertyType,path:t.fhirPath,resource:e}))))))))),0===(null===(l=null===(a=null==p?void 0:p.data)||void 0===a?void 0:a.ResourceList)||void 0===l?void 0:l.length)&&P.createElement("div",{"data-testid":"empty-search"},"No results"),s&&P.createElement("div",{"data-testid":"search-error"},P.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(s,void 0,2))),e.onBulk&&P.createElement(H,{onClick:()=>e.onBulk(Object.keys(E.current))},"Bulk..."))}const $a=P.memo(Na),za=["$/_history","Communication?subject=$","Device?patient=$","DeviceRequest?patient=$","DiagnosticReport?subject=$","Media?subject=$","ServiceRequest?subject=$"];function La(e){return P.createElement(xr,{value:e.patient,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:za.map((t=>({request:{method:"GET",url:t.replaceAll("$",T(e))}})))}),createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",subject:t(e),sender:t(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",subject:t(e),operator:t(n),issued:(new Date).toISOString(),content:r})})}const Fa=ie((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 Ma(e){const t=pt(),n=hn(e.value),[r,a]=N(void 0),[l,o]=N(),[i,c]=N(),[s,u]=N();function d(){c(void 0)}function m(){o(void 0)}const p=$();if(p.current=s,L((()=>{t.requestSchema("PlanDefinition").then(a).catch(console.log)}),[t]),L((()=>{var e;return u((e=null!=n?n:{resourceType:"PlanDefinition"},Object.assign(Object.assign({},e),{action:Ya(e.action)}))),document.addEventListener("mouseover",d),document.addEventListener("click",m),()=>{document.removeEventListener("mouseover",d),document.removeEventListener("click",m)}}),[n]),!r||!s)return null;function g(e,t){u(Object.assign(Object.assign({},p.current),{[e]:t}))}return P.createElement("div",null,P.createElement(Dt,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(s)},P.createElement(K,{label:"Plan Title",defaultValue:s.title,onChange:e=>g("title",e.currentTarget.value)}),P.createElement(_a,{actions:s.action||[],selectedKey:l,setSelectedKey:o,hoverKey:i,setHoverKey:c,onChange:e=>g("action",e)}),P.createElement(H,{type:"submit"},"Save")))}function _a(e){const{classes:t}=Fa(),n=$();function r(t){e.onChange(n.current.map((e=>e.id===t.id?t:e)))}return n.current=e.actions,P.createElement("div",{className:t.section},e.actions.map((t=>P.createElement("div",{key:t.id},P.createElement(Ua,{action:t,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:r,onRemove:()=>{return r=t,void e.onChange(n.current.filter((e=>e!==r)));var r}})))),P.createElement("div",{className:t.bottomActions},P.createElement("a",{href:"#",onClick:t=>{var r;Et(t),r={id:Ja()},e.onChange([...n.current,r]),e.setSelectedKey(r.id)}},"Add action")))}function Ua(e){const{classes:t,cx:n}=Fa(),{action:r}=e,a=function(e){var t,n,r;if(null===(t=e.definitionCanonical)||void 0===t?void 0:t.startsWith("Schedule"))return"appointment";if(null===(n=e.definitionCanonical)||void 0===n?void 0:n.startsWith("Questionnaire/"))return"questionnaire";if(null===(r=e.definitionCanonical)||void 0===r?void 0:r.startsWith("ActivityDefinition/"))return"task";return}(r),l=e.selectedKey===e.action.id,o=e.hoverKey===e.action.id;const i=n(t.section,{[t.editing]:l,[t.hovering]:o&&!l});return P.createElement("div",{"data-testid":r.id,className:i,onClick:function(t){t.stopPropagation(),e.setSelectedKey(e.action.id)},onMouseOver:function(t){Et(t),e.setHoverKey(e.action.id)}},l?P.createElement(Ka,{action:r,actionType:a,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):P.createElement(Wa,{action:r,actionType:a}),P.createElement("div",{className:t.bottomActions},P.createElement("a",{href:"#",onClick:t=>{t.preventDefault(),e.onRemove()}},"Remove")))}const qa={path:"PlanDefinition.action.timing[x]",min:0,max:"1",type:[{code:"dateTime"},{code:"Period"},{code:"Range"},{code:"Timing"}]};function Wa(e){const{action:t,actionType:n}=e,[r,a]=Ba(t);return P.createElement("div",null,P.createElement("div",null,t.title||"Untitled"," ",n&&`(${n})`),t.definitionCanonical&&P.createElement("div",null,P.createElement(cn,{value:{reference:t.definitionCanonical}})),r&&P.createElement("div",null,P.createElement(un,{property:qa,propertyType:a,value:r})))}function Ka(e){const{action:t}=e,[n,r]=N(e.actionType);function a(n,r){e.onChange(Object.assign(Object.assign({},t),{[n]:r}))}return P.createElement(X,{spacing:"xl"},P.createElement(K,{name:`actionTitle-${t.id}`,label:"Title",defaultValue:t.title,onChange:e=>a("title",e.currentTarget.value)}),P.createElement(K,{name:`actionDescription-${t.id}`,label:"Description",defaultValue:t.description,onChange:e=>a("description",e.currentTarget.value)}),P.createElement(W,{label:"Type of Action",description:"The type of the action to be performed.",name:`actionType-${t.id}`,defaultValue:n,onChange:e=>r(e.currentTarget.value),data:["","appointment","lab","questionnaire","task"]}),t.action&&t.action.length>0&&P.createElement(_a,{actions:t.action,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:e=>a("action",e)}),(()=>{switch(n){case"appointment":return P.createElement(Qa,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:t,onChange:e.onChange});case"lab":return P.createElement(Qa,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:t,onChange:e.onChange});case"questionnaire":return P.createElement(Qa,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:t,onChange:e.onChange});case"task":return P.createElement(Qa,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:t,onChange:e.onChange});default:return null}})(),P.createElement(gn,{title:"Timing",description:"When the action should take place."},P.createElement(Ha,{name:"timing-"+t.id,action:t,onChange:e.onChange})))}function Qa(e){const{id:t,definitionCanonical:n}=e.action,r=(null==n?void 0:n.startsWith(e.resourceType+"/"))?{reference:n}:void 0;return P.createElement(Fn,{name:t,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:t=>{t?e.onChange(Object.assign(Object.assign({},e.action),{definitionCanonical:T(t)})):e.onChange(Object.assign(Object.assign({},e.action),{definitionCanonical:void 0}))}})}function Ha(e){const t=e.action,n="timing",[r,a]=Ba(t);return P.createElement(Qn,{property:qa,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(r,a)=>{e.onChange(En(t,n,null!=a?a:n,qa,r))}})}function Ba(e){return dn({type:"PlanDefinitionAction",value:e},"timing")}let Ga=1;function Ja(e){if(e){if(e.startsWith("id-")){const t=parseInt(e.substring(3));isNaN(t)||(Ga=Math.max(Ga,t+1))}return e}return"id-"+Ga++}function Ya(e){if(e)return e.map((e=>Object.assign(Object.assign({},e),{id:Ja(e.id),action:Ya(e.action)})))}var Xa;function Za(e){return"choice"===e.type||"open-choice"===e.type}function el(e){const n=pt(),r=n.getProfile(),[a,l]=N(),o=hn(e.questionnaire),[i,c]=N(),[s,u]=N({});return L((()=>{n.requestSchema("Questionnaire").then((()=>n.requestSchema("QuestionnaireResponse"))).then(l).catch(console.log)}),[n]),L((()=>{c(o?function(e){return{resourceType:"QuestionnaireResponse",questionnaire:T(e),item:ol(e.item)}}(o):void 0)}),[o]),a&&o?P.createElement(Dt,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&i&&e.onSubmit(Object.assign(Object.assign({},i),{questionnaire:T(o),subject:e.subject,source:t(r),authored:(new Date).toISOString()}))}},o.title&&P.createElement(Y,null,o.title),o.item&&P.createElement(tl,{items:o.item,answers:s,onChange:function(e){const t={resourceType:"QuestionnaireResponse",item:e};c(t),u(V(t))}}),P.createElement(q,{position:"right",mt:"xl"},P.createElement(H,{type:"submit"},e.submitButtonText||"OK"))):null}function tl(e){const[t,n]=N(ol(e.items));function r(r,a){const l=t.slice();l[r]=a,n(l),e.onChange(l)}return P.createElement(X,null,e.items.map(((t,n)=>{if(!sl(t,e.answers))return null;if(t.type===Xa.display)return P.createElement("p",{key:t.linkId},t.text);if(t.type===Xa.group)return P.createElement(nl,{key:t.linkId,item:t,answers:e.answers,onChange:e=>r(n,e)});if(t.type===Xa.boolean){const e=t.initial&&t.initial.length>0?t.initial[0]:void 0;return P.createElement(pn,{key:t.linkId,title:t.text,htmlFor:t.linkId},P.createElement(re,{id:t.linkId,name:t.linkId,defaultChecked:null==e?void 0:e.valueBoolean,onChange:e=>r(n,{linkId:t.linkId,text:t.text,answer:[{valueBoolean:e.currentTarget.checked}]})}))}return P.createElement(gn,{key:t.linkId,htmlFor:t.linkId,title:t.text||""},P.createElement(nl,{item:t,answers:e.answers,onChange:e=>r(n,e)}))})))}function nl(e){const t=e.item,n=t.type;if(!n)return null;const r=t.linkId;if(!r)return null;const a=t.initial&&t.initial.length>0?t.initial[0]:void 0;function l(n){e.onChange({linkId:t.linkId,text:t.text,answer:[n]})}switch(n){case Xa.group:return P.createElement("div",null,P.createElement("h3",null,t.text),t.item&&P.createElement(tl,{items:t.item,answers:e.answers,onChange:function(n){e.onChange({linkId:t.linkId,text:t.text,item:n})}}));case Xa.boolean:return P.createElement(re,{id:r,name:r,defaultChecked:null==a?void 0:a.valueBoolean,onChange:e=>l({valueBoolean:e.currentTarget.checked})});case Xa.decimal:return P.createElement(K,{type:"number",step:"any",id:r,name:r,defaultValue:null==a?void 0:a.valueDecimal,onChange:e=>l({valueDecimal:e.currentTarget.valueAsNumber})});case Xa.integer:return P.createElement(K,{type:"number",step:1,id:r,name:r,defaultValue:null==a?void 0:a.valueInteger,onChange:e=>l({valueInteger:e.currentTarget.valueAsNumber})});case Xa.date:return P.createElement(K,{type:"date",id:r,name:r,defaultValue:null==a?void 0:a.valueDate,onChange:e=>l({valueDate:e.currentTarget.value})});case Xa.dateTime:return P.createElement(jn,{name:r,defaultValue:null==a?void 0:a.valueDateTime,onChange:e=>l({valueDateTime:e})});case Xa.time:return P.createElement(K,{type:"time",id:r,name:r,defaultValue:null==a?void 0:a.valueTime,onChange:e=>l({valueTime:e.currentTarget.value})});case Xa.string:case Xa.url:return P.createElement(K,{id:r,name:r,defaultValue:null==a?void 0:a.valueString,onChange:e=>l({valueString:e.currentTarget.value})});case Xa.text:return P.createElement(ge,{id:r,name:r,defaultValue:null==a?void 0:a.valueString,onChange:e=>l({valueString:e.currentTarget.value})});case Xa.attachment:return P.createElement(Tt,{name:r,defaultValue:null==a?void 0:a.valueAttachment,onChange:e=>l({valueAttachment:e})});case Xa.reference:return P.createElement(_n,{name:r,defaultValue:null==a?void 0:a.valueReference,onChange:e=>l({valueReference:e})});case Xa.quantity:return P.createElement(Rn,{name:r,defaultValue:null==a?void 0:a.valueQuantity,onChange:e=>l({valueQuantity:e})});case Xa.choice:case Xa.openChoice:return function(e){var t;return!!(null===(t=e.extension)||void 0===t?void 0:t.some((e=>{var t,n,r;return"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"===e.url&&"drop-down"===(null===(r=null===(n=null===(t=e.valueCodeableConcept)||void 0===t?void 0:t.coding)||void 0===n?void 0:n[0])||void 0===r?void 0:r.code)})))}(t)?P.createElement(rl,{name:r,item:t,initial:a,onChangeAnswer:l}):P.createElement(ll,{name:r,item:t,initial:a,onChangeAnswer:l})}return null}function rl(e){const{name:t,item:n,initial:r}=e,a=p({type:"QuestionnaireItemInitial",value:r},"value"),l=[""];if(n.answerOption)for(const e of n.answerOption){const t=p({type:"QuestionnaireItemAnswerOption",value:e},"value");l.push(al(t))}return P.createElement(W,{id:t,name:t,onChange:t=>{const r=t.currentTarget.selectedIndex;if(0===r)return void e.onChangeAnswer({});const a=n.answerOption[r-1],l=p({type:"QuestionnaireItemAnswerOption",value:a},"value"),o="value"+h(l.type);e.onChangeAnswer({[o]:l.value})},defaultValue:al(a),data:l})}function al(e){if(e)return"CodeableConcept"===e.type?e.value.coding[0].display:"Coding"===e.type?e.value.display:e.value.toString()}function ll(e){const{name:t,item:n,initial:r,onChangeAnswer:a}=e,l=g.types.QuestionnaireItemAnswerOption.properties["value[x]"],o=p({type:"QuestionnaireItemInitial",value:r},"value"),c=[];let s;if(n.answerOption)for(let e=0;e<n.answerOption.length;e++){const r=n.answerOption[e],a=`${t}-option-${e}`,l=p({type:"QuestionnaireItemAnswerOption",value:r},"value");o&&i(l)===i(o)&&(s=a),c.push([a,l])}return P.createElement(ye.Group,{name:t,orientation:"vertical",defaultValue:s,onChange:e=>{const t=c.find((t=>t[0]===e));if(t){const e=t[1],n="value"+h(e.type);a({[n]:e.value})}}},c.map((([e,t])=>P.createElement(ye,{key:e,id:e,value:e,label:P.createElement(un,{property:l,propertyType:t.type,value:t.value})}))))}function ol(e){var t;return null!==(t=null==e?void 0:e.map(il))&&void 0!==t?t:[]}function il(e){var t,n;return{linkId:e.linkId,text:e.text,item:ol(e.item),answer:null!==(n=null===(t=e.initial)||void 0===t?void 0:t.map(cl))&&void 0!==n?n:[]}}function cl(e){return Object.assign({},e)}function sl(e,t){if(!e.enableWhen)return!0;const n=e.enableBehavior||"any";for(const r of e.enableWhen){const e=p({type:"QuestionnaireItemEnableWhen",value:r},"answer[x]"),a=p({type:"QuestionnaireResponseItemAnswer",value:t[r.question]},"value[x]"),l=I(e,a);if("any"===n&&l)return!0;if("all"===n&&!l)return!1}return"any"!==n}!function(e){e.group="group",e.display="display",e.question="question",e.boolean="boolean",e.decimal="decimal",e.integer="integer",e.date="date",e.dateTime="dateTime",e.time="time",e.string="string",e.text="text",e.url="url",e.choice="choice",e.openChoice="open-choice",e.attachment="attachment",e.reference="reference",e.quantity="quantity"}(Xa||(Xa={}));const ul=ie((e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},questionBody:{maxWidth:600},topActions:{position:"absolute",right:4,top:1,padding:4,color:e.colors.gray[5],fontSize:e.fontSizes.xs},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},linkIdInput:{width:100,marginBottom:4},typeSelect:{width:100}})));function dl(e){const t=pt(),n=hn(e.questionnaire),[r,a]=N(),[l,o]=N(),[i,c]=N(),[s,u]=N();function d(){u(void 0)}function m(){c(void 0)}return L((()=>{t.requestSchema("Questionnaire").then(a).catch(console.log)}),[t]),L((()=>{var e;return o((e=null!=n?n:{resourceType:"Questionnaire"},Object.assign(Object.assign({},e),{id:e.id||fl(),item:El(e.item)}))),document.addEventListener("mouseover",d),document.addEventListener("click",m),()=>{document.removeEventListener("mouseover",d),document.removeEventListener("click",m)}}),[n]),r&&l?P.createElement("div",null,P.createElement(Dt,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(l)},P.createElement(ml,{item:l,selectedKey:i,setSelectedKey:c,hoverKey:s,setHoverKey:u,onChange:o}),P.createElement(H,{type:"submit"},"Save"))):null}function ml(e){var t;const{classes:n,cx:r}=ul(),a=e.item,l=e.item,o="resourceType"in e.item,i=o||l.type===Xa.group,c=null!==(t=l.linkId)&&void 0!==t?t:"[untitled]",s=e.selectedKey===e.item.id,u=e.hoverKey===e.item.id,d=$();function m(t){var n;const r=d.current;e.onChange(Object.assign(Object.assign({},r),{item:null===(n=r.item)||void 0===n?void 0:n.map((e=>e.id===t.id?t:e))}))}function p(t){var n,r;e.onChange(Object.assign(Object.assign({},e.item),{item:[...null!==(r=null===(n=e.item)||void 0===n?void 0:n.item)&&void 0!==r?r:[],t]}))}function g(t,n){e.onChange(Object.assign(Object.assign({},d.current),{[t]:n}))}d.current=e.item;const v=r(n.section,{[n.editing]:s,[n.hovering]:u&&!s});return P.createElement("div",{"data-testid":l.linkId,className:v,onClick:function(t){Et(t),e.setSelectedKey(e.item.id)},onMouseOver:function(t){Et(t),e.setHoverKey(e.item.id)}},P.createElement("div",{className:n.questionBody},s?P.createElement(P.Fragment,null,o&&P.createElement(K,{size:"xl",defaultValue:a.title,onChange:e=>g("title",e.currentTarget.value)}),!o&&P.createElement(ge,{autosize:!0,minRows:2,defaultValue:l.text,onChange:e=>g("text",e.currentTarget.value)}),Za(l)&&P.createElement(pl,{options:l.answerOption,onChange:e=>g("answerOption",e)})):P.createElement(P.Fragment,null,a.title&&P.createElement(Y,null,a.title),l.text&&P.createElement("div",null,l.text),!i&&P.createElement(nl,{item:l,answers:{},onChange:()=>{}}))),l.item&&l.item.map((t=>P.createElement("div",{key:t.id},P.createElement(ml,{item:t,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:m,onRemove:()=>function(t){var n,r;e.onChange(Object.assign(Object.assign({},e.item),{item:null===(r=null===(n=e.item)||void 0===n?void 0:n.item)||void 0===r?void 0:r.filter((e=>e!==t))}))}(t)})))),!i&&P.createElement("div",{className:n.topActions},s?P.createElement(P.Fragment,null,P.createElement(K,{size:"xs",className:n.linkIdInput,defaultValue:l.linkId,onChange:e=>g("linkId",e.currentTarget.value)}),!i&&P.createElement(W,{size:"xs",className:n.typeSelect,defaultValue:l.type,onChange:e=>g("type",e.currentTarget.value),data:[{value:"display",label:"Display"},{value:"boolean",label:"Boolean"},{value:"decimal",label:"Decimal"},{value:"integer",label:"Integer"},{value:"date",label:"Date"},{value:"dateTime",label:"Date/Time"},{value:"time",label:"Time"},{value:"string",label:"String"},{value:"text",label:"Text"},{value:"url",label:"URL"},{value:"choice",label:"Choice"},{value:"open-choice",label:"Open Choice"},{value:"attachment",label:"Attachment"},{value:"reference",label:"Reference"},{value:"quantity",label:"Quantity"}]})):P.createElement("div",null,c)),P.createElement("div",{className:n.bottomActions},i&&P.createElement(P.Fragment,null,P.createElement("a",{href:"#",onClick:e=>{e.preventDefault(),p({id:fl(),linkId:hl("q"),type:"string",text:"Question"})}},"Add item"),P.createElement("a",{href:"#",onClick:e=>{e.preventDefault(),p({id:fl(),linkId:hl("g"),type:"group",text:"Group"})}},"Add group")),s&&!o&&P.createElement("a",{href:"#",onClick:t=>{t.preventDefault(),e.onRemove&&e.onRemove()}},"Remove")))}function pl(e){var t;const n=g.types.QuestionnaireItemAnswerOption.properties["value[x]"],r=null!==(t=e.options)&&void 0!==t?t:[];return P.createElement("div",null,r.map((t=>{const[a,l]=dn({type:"QuestionnaireItemAnswerOption",value:t},"value");return P.createElement("div",{key:t.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},P.createElement("div",null,P.createElement(Qn,{key:t.id,name:"value[x]",property:n,defaultPropertyType:l,defaultValue:a,onChange:(n,a)=>{const l=[...r],o=l.findIndex((e=>e.id===t.id));l[o]={id:t.id,[a]:n},e.onChange(l)}})),P.createElement("div",null,P.createElement("a",{href:"#",onClick:n=>{Et(n),e.onChange(r.filter((e=>e.id!==t.id)))}},"Remove")))})),P.createElement("a",{href:"#",onClick:t=>{Et(t),e.onChange([...r,{id:fl()}])}},"Add choice"))}let gl=1,vl=1;function hl(e){return e+gl++}function fl(){return"id-"+vl++}function El(e){if(e)return e.forEach((e=>{var t,n;(null===(t=e.id)||void 0===t?void 0:t.match(/^id-\d+$/))&&(vl=Math.max(vl,parseInt(e.id.substring(3))+1)),(null===(n=e.linkId)||void 0===n?void 0:n.match(/^q\d+$/))&&(gl=Math.max(gl,parseInt(e.linkId.substring(1))+1))})),e.map((e=>Object.assign(Object.assign({},e),{id:e.id||fl(),item:El(e.item),answerOption:yl(e.answerOption)})))}function yl(e){if(e)return e.map((e=>Object.assign(Object.assign({},e),{id:e.id||fl()})))}const bl=ie((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"}}))),Cl=["gender","age","gestationalAge","context","appliesTo"],xl={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function Tl(e){const t=(e=Object.assign(xl,e)).definition,[n,r]=N([]),[a,l]=N(1),[o,i]=N(1);return L((()=>{const e=function(e,t){const n=e.qualifiedInterval||[];let r=Math.max(...n.map((e=>{var t;const n=parseInt((null===(t=e.id)||void 0===t?void 0:t.substring(3))||"");return isNaN(n)?Number.NEGATIVE_INFINITY:n})))+1;Number.isFinite(r)||(r=1);return e=Object.assign(Object.assign({},e),{qualifiedInterval:n.map((e=>Object.assign(Object.assign({},e),{id:e.id||"id-"+r++})))}),t(r),e}(t,i);r(function(e,t){let n=1;const r={};for(const t of e){const e=jl(t);e in r||(r[e]={id:"group-id-"+n++,filters:Object.fromEntries(Cl.map((e=>[e,t[e]]))),intervals:[]}),r[e].intervals.push(t)}return t(n),Object.values(r)}(e.qualifiedInterval||[],l))}),[t]),P.createElement(Dt,{testid:"reference-range-editor",onSubmit:function(){const r=n.flatMap((e=>e.intervals)).filter((e=>!function(e){var t,n,r,a;return void 0===(null===(n=null===(t=e.range)||void 0===t?void 0:t.low)||void 0===n?void 0:n.value)&&void 0===(null===(a=null===(r=e.range)||void 0===r?void 0:r.high)||void 0===a?void 0:a.value)}(e)));e.onSubmit(Object.assign(Object.assign({},t),{qualifiedInterval:r}))}},P.createElement(X,null,n.map((e=>{var n,r;return P.createElement(kl,{unit:(r=null===(n=t.quantitativeDetails)||void 0===n?void 0:n.unit,r&&(R(r,"http://unitsofmeasure.org")||r.text)),onChange:s,onAdd:u,onRemove:d,onRemoveGroup:c,key:`group-${e.id}`,intervalGroup:e})}))),P.createElement(Q,{title:"Add Group",size:"sm",onClick:e=>{var t;Et(e),t={id:`group-id-${a}`,filters:{},intervals:[]},r((e=>[...e,t])),l((e=>e+1))}},P.createElement(Oe,null)),P.createElement(q,{position:"right"},P.createElement(H,{type:"submit"},"Save")));function c(e){r((t=>t.filter((t=>t.id!==e.id))))}function s(e,t){r((n=>{var r,a;const l=(n=[...n]).find((t=>t.id===e)),o=null===(r=null==l?void 0:l.intervals)||void 0===r?void 0:r.findIndex((e=>e.id===t.id));return void 0!==o&&(null===(a=null==l?void 0:l.intervals)||void 0===a?void 0:a[o])&&(l.intervals[o]=t),n}))}function u(e,t){void 0===t.id&&(t.id=`id-${o}`,i((e=>e+1))),r((n=>{const r=(n=[...n]).findIndex((t=>t.id===e));if(-1!=r){const e=Object.assign({},n[r]);t=Object.assign(Object.assign({},t),e.filters),e.intervals=[...e.intervals,t],n[r]=e}return n}))}function d(e,t){r((n=>{const r=(n=[...n]).find((t=>t.id===e));return r&&(r.intervals=r.intervals.filter((e=>e.id!==t.id))),n}))}}function kl(e){const{intervalGroup:t,unit:n}=e,{classes:r}=bl();return P.createElement(B,{"data-testid":t.id,className:r.section},P.createElement(X,{spacing:"lg"},P.createElement(q,{position:"right"},P.createElement(Q,{title:"Remove Group","data-testid":`remove-group-button-${t.id}`,key:`remove-group-button-${t.id}`,size:"sm",onClick:n=>{Et(n),e.onRemoveGroup(t)}},P.createElement(xe,null))),P.createElement(Ol,{intervalGroup:t,onChange:e.onChange}),P.createElement(te,null),t.intervals.map((n=>P.createElement(X,{key:`interval-${n.id}`,spacing:"xs"},P.createElement(q,null,P.createElement(K,{key:`condition-${n.id}`,"data-testid":`condition-${n.id}`,defaultValue:n.condition,label:"Condition: ",size:"sm",onChange:r=>{Et(r),e.onChange(t.id,Object.assign(Object.assign({},n),{condition:r.currentTarget.value.trim()}))}}),P.createElement(Q,{title:"Remove Interval",size:"sm",key:`remove-interval-${n.id}`,"data-testid":`remove-interval-${n.id}`,onClick:r=>{Et(r),e.onRemove(t.id,n)}},P.createElement(xe,null))),P.createElement(Nn,{onChange:r=>{e.onChange(t.id,Object.assign(Object.assign({},n),{range:r}))},key:`range-${n.id}`,name:`range-${n.id}`,defaultValue:n.range})))),P.createElement(Q,{title:"Add Interval",size:"sm",onClick:r=>{Et(r),e.onAdd(t.id,{range:{low:{unit:n},high:{unit:n}}})}},P.createElement(Oe,null))))}function Ol(e){var t,n;const{intervalGroup:r,onChange:a}=e;r.filters.age||(r.filters.age={});for(const e of["low","high"])(null===(t=r.filters.age[e])||void 0===t?void 0:t.unit)||(r.filters.age[e]=Object.assign(Object.assign({},r.filters.age[e]),{unit:"years",system:"http://unitsofmeasure.org"}));return P.createElement(X,{style:{maxWidth:"50%"}},P.createElement(q,null,P.createElement(W,{data:["","male","female"],label:"Gender:",defaultValue:r.filters.gender||"",onChange:e=>{var t;for(const n of r.intervals){let l=null===(t=e.currentTarget)||void 0===t?void 0:t.value;""===l&&(l=void 0),a(r.id,Object.assign(Object.assign({},n),{gender:l}))}}})),P.createElement(q,{spacing:"xs"},P.createElement(Z,{component:"label",htmlFor:`div-age-${r.id}`},"Age:"),P.createElement("div",{id:`div-age-${r.id}`},P.createElement(Nn,{key:`age-${r.id}`,name:`age-${r.id}`,defaultValue:r.filters.age,onChange:e=>{for(const t of r.intervals)a(r.id,Object.assign(Object.assign({},t),{age:e}))}}))),P.createElement(W,{data:["","pre-puberty","follicular","midcycle","luteal","postmenopausal"],label:"Endocrine:",defaultValue:(null===(n=r.filters.context)||void 0===n?void 0:n.text)||"",onChange:e=>{var t;for(const n of r.intervals){let l=null===(t=e.currentTarget)||void 0===t?void 0:t.value;""===l?(l=void 0,a(r.id,Object.assign(Object.assign({},n),{context:void 0}))):a(r.id,Object.assign(Object.assign({},n),{context:{text:l,coding:[{code:l,system:"http://terminology.hl7.org/CodeSystem/referencerange-meaning"}]}}))}}}))}function jl(e){var t,n;return[`gender=${e.gender}`,`age=${o(e.age)}`,`gestationalAge=${o(e.gestationalAge)}`,`context=${null===(t=e.context)||void 0===t?void 0:t.text}`,`appliesTo=${null===(n=e.appliesTo)||void 0===n?void 0:n.map((e=>e.text)).join("+")}`].join(":")}const wl={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",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 Sl(e){return P.createElement(be,{color:wl[e.status]},e.status)}function Al(e){var t;const n=pt(),r=hn(e.value),[a,l]=N(!1),[o,i]=N();return L((()=>{r&&!a&&(n.executeBatch(function(e){var t;const n=[];if(e.action)for(const r of e.action)(null===(t=r.resource)||void 0===t?void 0:t.reference)&&n.push({request:{method:"GET",url:r.resource.reference}});return{resourceType:"Bundle",type:"batch",entry:n}}(r)).then(i).catch(console.log),l(!0))}),[n,r,a]),r&&o?P.createElement(Ce,null,null===(t=r.action)||void 0===t?void 0:t.map(((t,n)=>{var r,a,l,i,c,s;const u=t.resource&&function(e){for(const t of null==o?void 0:o.entry)if(t.resource&&e.reference===T(t.resource))return t.resource;return}(t.resource),d=null===(a=null===(r=null==u?void 0:u.input)||void 0===r?void 0:r[0])||void 0===a?void 0:a.valueReference,p=null===(i=null===(l=null==u?void 0:u.output)||void 0===l?void 0:l[0])||void 0===i?void 0:i.valueReference;return P.createElement(P.Fragment,{key:`action-${n}`},P.createElement(Ce.Col,{span:1,p:"md"},"completed"===(null==u?void 0:u.status)?P.createElement(tt,null):P.createElement(nt,{color:"gray"})),P.createElement(Ce.Col,{span:9,p:"xs"},P.createElement(Z,{weight:500},t.title),t.description&&P.createElement("div",null,t.description),P.createElement("div",null,"Last edited by ",P.createElement(nr,{value:null===(c=null==u?void 0:u.meta)||void 0===c?void 0:c.author})," on ",m(null===(s=null==u?void 0:u.meta)||void 0===s?void 0:s.lastUpdated)),P.createElement("div",null,"Status: ",P.createElement(Sl,{status:(null==u?void 0:u.status)||"unknown"}))),P.createElement(Ce.Col,{span:2,p:"md"},d&&!p&&P.createElement(H,{onClick:()=>e.onStart(u,d)},"Start"),d&&p&&P.createElement(H,{onClick:()=>e.onEdit(u,d,p)},"Edit")))}))):null}function Dl(e,t){return function(e,t,n){const r=[];let a=e;a.snake&&(a=a.prev);for(;a&&a.prev&&a.prev.j>=0;){const e=a.i,l=a.j;a=a.prev;const o=a.i,i=a.j,c={position:o,lines:t.slice(o,e)},s={position:i,lines:n.slice(i,l)};let u;u=0===c.lines.length&&s.lines.length>0?"insert":c.lines.length>0&&0===s.lines.length?"delete":"change",r.push({original:c,revised:s,type:u}),a.snake&&(a=a.prev)}return r}(function(e,t){const n=e.length,r=t.length,a=n+r+1,l=1+2*a,o=l/2|0,i=new Array(l);i[o+1]={i:0,j:-1,prev:void 0,snake:!0};for(let l=0;l<a;l++){for(let a=-l;a<=l;a+=2){const c=o+a,s=c-1,u=i[c+1],d=i[s];let m,p=0;a===-l||a!==l&&d.i<u.i?(p=u.i,m=u):(p=d.i+1,m=d),i[s]=void 0;let g=p-a,v={i:p,j:g,prev:Il(m),snake:!1};for(;p<n&&g<r&&e[p]===t[g];)p++,g++;if(p>v.i&&(v={i:p,j:g,prev:v,snake:!0}),i[c]=v,p>=n&&g>=r)return i[c]}i[o+l-1]=void 0}return}(e,t),e,t)}function Il(e){return e&&!e.snake&&e.prev?e.prev:e}function Vl(e){const t=e.entry.filter((e=>!!e.resource)).map((e=>{var t;return{meta:null===(t=e.resource)||void 0===t?void 0:t.meta,lines:i(e.resource,!0).match(/[^\r\n]+/g)}})).sort(((e,t)=>e.meta.lastUpdated.localeCompare(t.meta.lastUpdated))),n=t[0].lines.map((e=>({id:t[0].meta.versionId,meta:t[0].meta,value:e,span:1})));return function(e,t){for(let n=1;n<t.length;n++){const r=Dl(t[n-1].lines,t[n].lines);for(const a of r){const r=a.original.position,l=a.original.lines,o=a.revised.lines;if("delete"!==a.type&&"change"!==a.type||e.splice(r,l.length),"insert"===a.type||"change"===a.type)for(let l=0;l<a.revised.lines.length;l++)e.splice(r+l,0,{id:t[n].meta.versionId,meta:t[n].meta,value:o[l],span:1})}}}(n,t),function(e){let t=0;for(;t<e.length;){let n=t;for(;n<e.length&&e[n].id===e[t].id;)e[n].span=-1,n++;e[t].span=n-t,t=n}}(n),n}const Rl=ie((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}px ${e.spacing.sm}px`,textAlign:"right"},line:{fontFamily:e.fontFamilyMonospace,fontSize:e.fontSizes.sm,padding:`${e.spacing.xs}px ${e.spacing.sm}px`},pre:{margin:0}})));function Pl(e){var t,n;const{classes:r}=Rl(),a=pt(),[l,o]=N(e.history);if(L((()=>{!e.history&&e.resourceType&&e.id&&a.readHistory(e.resourceType,e.id).then(o).catch(console.log)}),[a,e.history,e.resourceType,e.id]),!l)return P.createElement("div",null,"Loading...");const i=null===(n=null===(t=l.entry)||void 0===t?void 0:t[0])||void 0===n?void 0:n.resource,c=Vl(l);return P.createElement("div",{className:r.container},P.createElement("table",{className:r.root},P.createElement("tbody",null,c.map(((e,t)=>P.createElement("tr",{key:"row-"+t,className:e.span>0?r.startRow:r.normalRow},e.span>0&&P.createElement(P.Fragment,null,P.createElement("td",{className:r.author,rowSpan:e.span},P.createElement(rr,{value:e.meta.author,link:!0})),P.createElement("td",{className:r.dateTime,rowSpan:e.span},P.createElement(on,{to:Nl(i,e.meta.versionId)},$l(e.meta.lastUpdated)))),P.createElement("td",{className:r.lineNumber},t+1),P.createElement("td",{className:r.line},P.createElement("pre",{className:r.pre},e.value))))))))}function Nl(e,t){return`/${e.resourceType}/${e.id}/_history/${t}`}function $l(e){const t=Math.floor((Date.now()-Date.parse(e))/1e3),n=Math.floor(t/31536e3);if(n>0)return zl(n,"year");const r=Math.floor(t/2592e3);if(r>0)return zl(r,"month");const a=Math.floor(t/86400);if(a>0)return zl(a,"day");const l=Math.floor(t/3600);if(l>0)return zl(l,"hour");const o=Math.floor(t/60);return o>0?zl(o,"minute"):zl(t,"second")}function zl(e,t){return`${e} ${1===e?t:t+"s"} ago`}const Ll=ie((e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}})));function Fl(e){let t=e.original,n=e.revised;e.ignoreMeta&&(t=Object.assign(Object.assign({},t),{meta:void 0}),n=Object.assign(Object.assign({},n),{meta:void 0}));const r=Dl(i(t,!0).match(/[^\r\n]+/g),i(n,!0).match(/[^\r\n]+/g));return P.createElement("pre",{style:{color:"gray"}},r.map(((e,t)=>P.createElement(Ml,{key:"delta"+t,delta:e}))))}function Ml(e){const{classes:t}=Ll();return P.createElement(P.Fragment,null,"...",P.createElement("br",null),e.delta.original.lines.length>0&&P.createElement("div",{className:t.removed},e.delta.original.lines.join("\n")),e.delta.revised.lines.length>0&&P.createElement("div",{className:t.added},e.delta.revised.lines.join("\n")),"...",P.createElement("br",null))}function _l(e){var t;const n=pt(),[r,a]=N(e.history);return L((()=>{!e.history&&e.resourceType&&e.id&&n.readHistory(e.resourceType,e.id).then(a).catch(console.log)}),[n,e.history,e.resourceType,e.id]),r?P.createElement(fe,{withBorder:!0,withColumnBorders:!0},P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"Author"),P.createElement("th",null,"Date"),P.createElement("th",null,"Version"))),P.createElement("tbody",null,null===(t=r.entry)||void 0===t?void 0:t.map(((e,t)=>P.createElement(Ul,{key:"entry-"+t,entry:e}))))):P.createElement("div",null,"Loading...")}function Ul(e){var t,n,r;const{response:a,resource:l}=e.entry;return l?P.createElement("tr",null,P.createElement("td",null,P.createElement(rr,{value:null===(t=l.meta)||void 0===t?void 0:t.author,link:!0})),P.createElement("td",null,m(null===(n=l.meta)||void 0===n?void 0:n.lastUpdated)),P.createElement("td",null,P.createElement(on,{to:ql(l)},null===(r=l.meta)||void 0===r?void 0:r.versionId))):P.createElement("tr",null,P.createElement("td",{colSpan:3},x(null==a?void 0:a.outcome)))}function ql(e){var t;return`/${e.resourceType}/${e.id}/_history/${null===(t=e.meta)||void 0===t?void 0:t.versionId}`}const Wl=ie((e=>({container:{display:"flex",minHeight:400},info:{minWidth:300,padding:20,borderRight:`1px solid ${e.colors.gray[3]}`},selection:{minWidth:300,padding:20}})));function Kl(e){var t;const{classes:n}=Wl(),r=pt(),a=hn(e.schedule),l=hn(e.questionnaire),[o,i]=N();$().current=o;const[c,s]=N(er()),[u,d]=N(),[m,p]=N(),[g,v]=N();if(L((()=>{a?(i([]),r.searchResources("Slot",new URLSearchParams([["_count",720..toString()],["schedule",T(a)],["start","gt"+Ql(c)],["start","lt"+Hl(c)]])).then(i).catch(console.log)):i(void 0)}),[r,a,c]),!a||!o||!l)return null;const h=null===(t=a.actor)||void 0===t?void 0:t[0];return P.createElement("div",{className:n.container,"data-testid":"scheduler"},P.createElement("div",{className:n.info},h&&P.createElement(zn,{value:h,size:"xl"}),h&&P.createElement(Z,{size:"xl",weight:500},P.createElement(nr,{value:h})),P.createElement("p",null,"1 hour"),u&&P.createElement("p",null,u.toLocaleDateString()),m&&P.createElement("p",null,Gl(new Date(m.start)))),P.createElement("div",{className:n.selection},!u&&P.createElement("div",null,P.createElement("h3",null,"Select date"),P.createElement(Zn,{slots:o,onChangeMonth:s,onClick:d})),u&&!m&&P.createElement("div",null,P.createElement("h3",null,"Select time"),P.createElement(X,null,o.map((e=>{const t=new Date(e.start);return t.getTime()>u.getTime()&&t.getTime()<u.getTime()+864e5&&P.createElement("div",{key:e.id},P.createElement(H,{variant:"outline",style:{width:150},onClick:()=>p(e)},Gl(t)))})))),u&&m&&!g&&P.createElement(el,{questionnaire:l,submitButtonText:"Next",onSubmit:v}),u&&m&&g&&P.createElement("div",null,P.createElement("h3",null,"You're all set!"),P.createElement("p",null,"Check your email for a calendar invite."))))}function Ql(e){return Bl(e.getTime())}function Hl(e){return Bl(e.getTime()+26784e5)}function Bl(e){return new Date(Math.max(Date.now(),e)).toISOString()}function Gl(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}function Jl(e){return P.createElement(xr,{value:e.serviceRequest,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:[{request:{method:"GET",url:`${T(e)}/_history`}},{request:{method:"GET",url:`Communication?based-on=${T(e)}&_sort=-_lastUpdated`}},{request:{method:"GET",url:`Media?_count=100&based-on=${T(e)}&_sort=-_lastUpdated`}},{request:{method:"GET",url:`DiagnosticReport?based-on=${T(e)}&_sort=-_lastUpdated`}}]}),createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",basedOn:[t(e)],subject:e.subject,sender:t(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",basedOn:[t(e)],subject:e.subject,operator:t(n),issued:(new Date).toISOString(),content:r})})}export{ot as AddressDisplay,st as AddressInput,vt as AnnotationInput,ft as AttachmentArrayDisplay,xt as AttachmentArrayInput,Ct as AttachmentButton,ht as AttachmentDisplay,Tt as AttachmentInput,mn as BackboneElementDisplay,Jn as BackboneElementInput,Zn as CalendarInput,pn as CheckboxFormSection,xn as CodeInput,Yt as CodeableConceptDisplay,Cn as CodeableConceptInput,Xt as CodingDisplay,Tn as CodingInput,en as ContactDetailDisplay,On as ContactDetailInput,Zt as ContactPointDisplay,kn as ContactPointInput,jn as DateTimeInput,Ir as DefaultResourceTimeline,Gt as DescriptionList,Jt as DescriptionListEntry,lr as DiagnosticReportDisplay,kt as Document,Hn as ElementDefinitionInputSelector,Bn as ElementDefinitionTypeInput,Vr as EncounterTimeline,gr as ErrorBoundary,Na as FhirPathTable,Dt as Form,gn as FormSection,tn as HumanNameDisplay,Dn as HumanNameInput,nn as IdentifierDisplay,In as IdentifierInput,It as Logo,on as MedplumLink,dt as MedplumProvider,$a as MemoizedFhirPathTable,Ia as MemoizedSearchControl,or as ObservationTable,La as PatientTimeline,Ma as PlanDefinitionBuilder,rn as QuantityDisplay,Rn as QuantityInput,dl as QuestionnaireBuilder,el as QuestionnaireForm,nl as QuestionnaireFormItem,Xa as QuestionnaireItemType,an as RangeDisplay,Nn as RangeInput,cn as ReferenceDisplay,_n as ReferenceInput,Tl as ReferenceRangeEditor,kl as ReferenceRangeGroupEditor,Ut as RegisterForm,Al as RequestGroupDisplay,sn as ResourceArrayDisplay,Un as ResourceArrayInput,zn as ResourceAvatar,rr as ResourceBadge,Pl as ResourceBlame,Fl as ResourceDiff,fn as ResourceForm,_l as ResourceHistoryTable,Fn as ResourceInput,nr as ResourceName,un as ResourcePropertyDisplay,Qn as ResourcePropertyInput,pr as ResourceTable,xr as ResourceTimeline,Kl as Scheduler,ja as SearchChangeEvent,Sa as SearchClickEvent,Da as SearchControl,ua as SearchFieldEditor,ga as SearchFilterEditor,wa as SearchLoadEvent,Jl as ServiceRequestTimeline,Qt as SignInForm,Sl as StatusBadge,vr as Timeline,hr as TimelineItem,Wn as TimingInput,Yr as addDateFilterBetween,Mr as addField,Fr as addFilter,Qr as addLastMonthFilter,Zr as addMissingFilter,Br as addNextMonthFilter,Hr as addThisMonthFilter,qr as addTodayFilter,Wr as addTomorrowFilter,Jr as addYearToDateFilter,Ur as addYesterdayFilter,ca as buildFieldNameString,zr as clearFilters,Lr as clearFiltersOnField,wn as convertIsoToLocal,Sn as convertLocalToIso,$t as createScriptTag,_r as deleteFilter,Vt as getErrorsForInput,Rt as getIssuesForExpression,Xn as getMonthString,ia as getOpString,Mt as getRecaptcha,oa as getSearchOperators,aa as getSortField,er as getStartMonth,$l as getTimeString,dn as getValueAndType,Ft as initRecaptcha,Za as isChoiceQuestion,sl as isQuestionEnabled,la as isSortDescending,wt as parseForm,sa as renderValue,$r as setFilters,ea as setOffset,ta as setPage,En as setPropertyValue,na as setSort,fr as sortByDateAndPriority,ra as toggleSort,pt as useMedplum,mt as useMedplumContext,gt as useMedplumProfile,hn as useResource};
1
+ import{formatAddress as e,createReference as t,formatCodeableConcept as n,formatCoding as r,formatHumanName as a,formatQuantity as l,formatRange as o,stringify as i,buildTypeName as c,PropertyType as s,formatTiming as u,formatPeriod as d,formatDateTime as m,getTypedPropertyValue as p,globalSchema as g,getPropertyDisplayName as v,capitalize as h,isValidDate as f,getDisplayString as E,getImageSrc as y,formatObservationValue as b,toTypedValue as C,normalizeErrorString as x,getReferenceString as T,evalFhirPath as O,Operator as k,DEFAULT_SEARCH_COUNT as j,evalFhirPathTyped as w,getSearchParameterDetails as S,SearchParameterType as A,formatSearchQuery as D,deepEquals as I,getQuestionnaireAnswers as V,getCodeBySystem as R}from"@medplum/core";import P,{useState as N,useRef as $,createContext as z,useEffect as L,useContext as F,useCallback as M,forwardRef as U,useMemo as _}from"react";import{Group as q,NativeSelect as W,TextInput as K,Anchor as Q,ActionIcon as H,Button as B,createStyles as G,Container as J,useComponentDefaultProps as Y,Paper as X,Center as Z,Title as ee,Stack as te,Text as ne,Alert as re,Divider as ae,PasswordInput as le,Checkbox as oe,UnstyledButton as ie,Avatar as ce,Input as se,MultiSelect as ue,JsonInput as de,Autocomplete as me,Loader as pe,Modal as ge,Textarea as ve,Menu as he,ScrollArea as fe,Table as Ee,Pagination as ye,Radio as be,Badge as Ce,Grid as xe}from"@mantine/core";import{IconCircleMinus as Te,IconCloudUpload as Oe,IconAlertCircle as ke,IconCirclePlus as je,IconDots as we,IconMessage as Se,IconCheck as Ae,IconFileAlert as De,IconPin as Ie,IconPinnedOff as Ve,IconListDetails as Re,IconEdit as Pe,IconTrash as Ne,IconSortAscending as $e,IconSortDescending as ze,IconEqual as Le,IconEqualNot as Fe,IconMathLower as Me,IconMathGreater as Ue,IconBracketsContain as _e,IconCalendar as qe,IconSettings as We,IconBucket as Ke,IconBucketOff as Qe,IconBleach as He,IconBleachOff as Be,IconX as Ge,IconFilter as Je,IconColumns as Ye,IconFilePlus as Xe,IconTableExport as Ze,IconBoxMultiple as et,IconAdjustmentsHorizontal as tt,IconCheckbox as nt,IconSquare as rt}from"@tabler/icons";import{useNavigate as at}from"react-router-dom";import{updateNotification as lt,showNotification as ot}from"@mantine/notifications";function it(t){const n=t.value;return n?P.createElement(P.Fragment,null,e(n)):null}function ct(e,t){return e&&e.line&&e.line.length>t?e.line[t]:""}function st(e,t,n){const r=e.line||[];for(;r.length<=t;)r.push("");return r[t]=n,Object.assign(Object.assign({},e),{line:r})}function ut(e){const[t,n]=N(e.defaultValue||{}),r=$();function a(t){n(t),e.onChange&&e.onChange(t)}return r.current=t,P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(W,{"data-testid":"address-use",defaultValue:null==t?void 0:t.use,onChange:e=>{return t=e.currentTarget.value,void a(Object.assign(Object.assign({},r.current),{use:t}));var t},data:["","home","work","temp","old","billing"]}),P.createElement(W,{"data-testid":"address-type",defaultValue:null==t?void 0:t.type,onChange:e=>{return t=e.currentTarget.value,void a(Object.assign(Object.assign({},r.current),{type:t}));var t},data:["","postal","physical","both"]}),P.createElement(K,{placeholder:"Line 1",defaultValue:ct(t,0),onChange:e=>{return t=e.currentTarget.value,void a(st(r.current||{},0,t));var t}}),P.createElement(K,{placeholder:"Line 2",defaultValue:ct(t,1),onChange:e=>{return t=e.currentTarget.value,void a(st(r.current||{},1,t));var t}}),P.createElement(K,{placeholder:"City",defaultValue:t.city,onChange:e=>{return t=e.currentTarget.value,void a(Object.assign(Object.assign({},r.current),{city:t}));var t}}),P.createElement(K,{placeholder:"State",defaultValue:t.state,onChange:e=>{return t=e.currentTarget.value,void a(Object.assign(Object.assign({},r.current),{state:t}));var t}}),P.createElement(K,{placeholder:"Postal Code",defaultValue:t.postalCode,onChange:e=>{return t=e.currentTarget.value,void a(Object.assign(Object.assign({},r.current),{postalCode:t}));var t}}))}const dt=z(void 0);function mt(e){const t=e.medplum,[n,r]=N({profile:t.getProfile(),loading:!1});L((()=>{function e(){r(Object.assign(Object.assign({},n),{profile:t.getProfile()}))}return t.addEventListener("change",e),()=>t.removeEventListeneer("change",e)}),[t,n]);const a=Object.assign(Object.assign({},n),{medplum:t});return P.createElement(dt.Provider,{value:a},e.children)}function pt(){return F(dt)}function gt(){return pt().medplum}function vt(){return pt().profile}function ht(e){const n=vt(),[r,a]=N(e.defaultValue||{});return $().current=r,P.createElement(K,{name:e.name,placeholder:"Annotation text",defaultValue:r.text,onChange:r=>function(r){const l=r?{text:r,authorReference:n&&t(n),time:(new Date).toISOString()}:{};a(l),e.onChange&&e.onChange(l)}(r.currentTarget.value)})}function ft(e){const t=e.value,{contentType:n,url:r,title:a}=null!=t?t:{};return r?P.createElement("div",{"data-testid":"attachment-display"},(null==n?void 0:n.startsWith("image/"))&&P.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:r,alt:null==t?void 0:t.title}),(null==n?void 0:n.startsWith("video/"))&&P.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},P.createElement("source",{type:n,src:r})),"application/pdf"===n&&!(null==a?void 0:a.endsWith(".pdf"))&&P.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},P.createElement("iframe",{width:"100%",height:"400",src:r+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),P.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},P.createElement(Q,{href:null==t?void 0:t.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},(null==t?void 0:t.title)||"Download"))):null}function Et(e){return P.createElement("div",null,e.values&&e.values.map(((t,n)=>P.createElement("div",{key:"attatchment-"+n},P.createElement(ft,{value:t,maxWidth:e.maxWidth})))))}function yt(e){e.preventDefault(),e.stopPropagation()}function bt(e){if(Ct(e))return!0;if(e instanceof HTMLTableCellElement){const t=e.children;if(1===t.length&&Ct(t[0]))return!0}return!1}function Ct(e){return e instanceof HTMLInputElement&&"checkbox"===e.type}function xt(e){const t=gt(),n=$(null);function r(n){if(!n)return;if(!n.name)return;e.onUploadStart&&e.onUploadStart();const r=n.name,a=n.type||"application/octet-stream";t.createBinary(n,r,a,e.onUploadProgress).then((t=>{e.onUpload({contentType:t.contentType,url:t.url,title:r})})).catch((e=>{var t,n,r;alert(null===(r=null===(n=null===(t=null==e?void 0:e.issue)||void 0===t?void 0:t[0])||void 0===n?void 0:n.details)||void 0===r?void 0:r.text)}))}return P.createElement(P.Fragment,null,P.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:n,onChange:e=>function(e){yt(e);const t=e.target.files;t&&Array.from(t).forEach(r)}(e)}),e.children({onClick:function(e){var t;yt(e),null===(t=n.current)||void 0===t||t.click()}}))}function Tt(e){var t;const[n,r]=N(null!==(t=e.defaultValue)&&void 0!==t?t:[]),a=$();function l(t){r(t),e.onChange&&e.onChange(t)}return a.current=n,P.createElement("table",{style:{width:"100%"}},P.createElement("colgroup",null,P.createElement("col",{width:"97%"}),P.createElement("col",{width:"3%"})),P.createElement("tbody",null,n.map(((e,t)=>P.createElement("tr",{key:`${t}-${n.length}`},P.createElement("td",null,P.createElement(ft,{value:e,maxWidth:200})),P.createElement("td",null,P.createElement(H,{title:"Remove",size:"sm",onClick:e=>{yt(e);const r=n.slice();r.splice(t,1),l(r)}},P.createElement(Te,null)))))),P.createElement("tr",null,P.createElement("td",null),P.createElement("td",null,P.createElement(xt,{onUpload:e=>{l([...a.current,e])}},(e=>P.createElement(H,Object.assign({},e,{title:"Add",size:"sm",color:"green"}),P.createElement(Oe,{size:16}))))))))}function Ot(e){const[t,n]=N(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return t?P.createElement(P.Fragment,null,P.createElement(ft,{value:t,maxWidth:200}),P.createElement(B,{onClick:e=>{yt(e),r(void 0)}},"Remove")):P.createElement(xt,{onUpload:r},(e=>P.createElement(B,Object.assign({},e),"Upload...")))}function kt(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}function jt(e,t,n,r){return new(n||(n=Promise))((function(a,l){function o(e){try{c(r.next(e))}catch(e){l(e)}}function i(e){try{c(r.throw(e))}catch(e){l(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,i)}c((r=r.apply(e,t||[])).next())}))}const wt=G((()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}})));function St(e){const{children:t}=e,n=kt(e,["children"]),{classes:r}=wt();return P.createElement(J,Object.assign({className:r.root},n),t)}const At=G(((e,{width:t,fill:n})=>({paper:{maxWidth:t,margin:`${e.spacing.xl}px auto`,padding:n?0:e.spacing.md,"@media (max-width: 800px)":{padding:n?0:8},"& img":{width:"100%",maxWidth:"100%"},"& video":{width:"100%",maxWidth:"100%"}}}))),Dt={shadow:"xs",radius:"md",withBorder:!0};function It(e){const t=Y("Panel",Dt,e),{className:n,children:r,width:a,fill:l,unstyled:o}=t,i=kt(t,["className","children","width","fill","unstyled"]),{classes:c,cx:s}=At({width:a,fill:l},{name:"Panel",unstyled:o});return P.createElement(X,Object.assign({className:s(c.paper,n)},i),r)}function Vt(e){const{children:t}=e,n=kt(e,["children"]);return P.createElement(St,null,P.createElement(It,Object.assign({},n),t))}function Rt(e){const t={};for(const n of Array.from(e.elements))n instanceof HTMLInputElement?Pt(t,n):n instanceof HTMLTextAreaElement?t[n.name]=n.value:n instanceof HTMLSelectElement&&Nt(t,n);return t}function Pt(e,t){t.disabled||("checkbox"!==t.type&&"radio"!==t.type||t.checked)&&(e[t.name]=t.value)}function Nt(e,t){e[t.name]=t.value}function $t(e){return P.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:t=>{t.preventDefault();const n=Rt(t.target);e.onSubmit&&e.onSubmit(n)}},e.children)}function zt(e){return P.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},P.createElement("title",null,"Medplum Logo"),P.createElement("path",{fill:e.fill||"#ad7136",d:"M282 67c6-16 16-29 29-40L289 0c-22 17-37 41-43 68l17 23 19-24z"}),P.createElement("path",{fill:e.fill||"#946af9",d:"M311 63c-17 0-33 4-48 11-16-7-32-11-49-11-87 0-158 96-158 214s71 214 158 214c17 0 33-4 49-11 15 7 31 11 48 11 87 0 158-96 158-214S398 63 311 63z"}),P.createElement("path",{fill:e.fill||"#7857c5",d:"M231 489l-17 2c-87 0-158-96-158-214S127 63 214 63l17 1c-39 12-70 102-70 213s31 201 70 212z"}),P.createElement("path",{fill:e.fill||"#40bc26",d:"M207 220a176 176 0 01-177 43A176 176 0 01251 43l1 5c17 59 2 125-45 172z"}),P.createElement("path",{fill:e.fill||"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}function Lt(e,t){var n,r,a;return null===(a=null===(r=null===(n=null==e?void 0:e.issue)||void 0===n?void 0:n.filter((e=>{var n;return Mt(null===(n=e.expression)||void 0===n?void 0:n[0],t)})))||void 0===r?void 0:r.map((e=>{var t;return null===(t=e.details)||void 0===t?void 0:t.text})))||void 0===a?void 0:a.join("\n")}function Ft(e,t){var n;return null===(n=null==e?void 0:e.issue)||void 0===n?void 0:n.filter((e=>{var n;return Mt(null===(n=e.expression)||void 0===n?void 0:n[0],t)}))}function Mt(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=e.indexOf(".");if(n>=0&&e.substring(n+1)===t)return!0;const r=t.indexOf(".");return r>=0&&t.substring(r+1)===e}function Ut(e){const t=gt(),[n,r]=N();return P.createElement($t,{style:{maxWidth:400},onSubmit:n=>jt(this,void 0,void 0,(function*(){try{e.handleAuthResponse(yield t.startNewProject({login:e.login,projectName:n.projectName}))}catch(e){r(e)}}))},P.createElement(Z,{sx:{flexDirection:"column"}},P.createElement(zt,{size:32}),P.createElement(ee,null,"Create project")),P.createElement(te,{spacing:"xl"},P.createElement(K,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:Lt(n,"firstName")}),P.createElement(ne,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",P.createElement(Q,{href:"https://www.medplum.com/privacy"},"Privacy Policy")," and ",P.createElement(Q,{href:"https://www.medplum.com/terms"},"Terms of Service"),".")),P.createElement(q,{position:"right",mt:"xl",noWrap:!0},P.createElement(B,{type:"submit"},"Create project")))}function _t(e,t){const n=document.getElementsByTagName("head")[0],r=document.createElement("script");r.async=!0,r.src=e,r.onload=t||null,n.appendChild(r)}function qt(e){const t=gt(),{googleClientId:n,handleGoogleCredential:r}=e,a=$(null),[l,o]=N("undefined"!=typeof google),[i,c]=N(!1),[s,u]=N(!1);return L((()=>{"undefined"!=typeof google?(i||(google.accounts.id.initialize({client_id:n,callback:r}),c(!0)),a.current&&!s&&(google.accounts.id.renderButton(a.current,{}),u(!0))):_t("https://accounts.google.com/gsi/client",(()=>o(!0)))}),[t,n,i,l,a,s,r]),n?P.createElement("div",{ref:a}):null}function Wt(e){var t,n;if(e)return e;const r=window.location.protocol+"//"+window.location.host;return(null!==(n=null===(t="http://localhost:3000,http://127.0.0.1:3000,http://localhost:6006,http://127.0.0.1:6006,https://app.medplum.com,https://docs.medplum.com,https://storybook.medplum.com,https://graphiql.medplum.com,https://www.medplum.com")?void 0:t.split(","))&&void 0!==n?n:[]).includes(r)?"921088377005-3j1sa10vr6hj86jgmdfh2l53v3mp7lfi.apps.googleusercontent.com":void 0}function Kt(e){"undefined"==typeof grecaptcha&&_t("https://www.google.com/recaptcha/api.js?render="+e)}function Qt(e){return new Promise(((t,n)=>{grecaptcha.ready((()=>jt(this,void 0,void 0,(function*(){try{t(yield grecaptcha.execute(e,{action:"submit"}))}catch(e){n(e)}}))))}))}function Ht(e){const t=Wt(e.googleClientId),n=e.recaptchaSiteKey,r=gt(),[a,l]=N(),o=Ft(a,void 0);return L((()=>Kt(n)),[n]),P.createElement($t,{style:{maxWidth:400},onSubmit:t=>jt(this,void 0,void 0,(function*(){try{const a=yield Qt(n);e.handleAuthResponse(yield r.startNewUser({projectId:e.projectId,firstName:t.firstName,lastName:t.lastName,email:t.email,password:t.password,remember:"true"===t.remember,recaptchaSiteKey:n,recaptchaToken:a}))}catch(e){l(e)}}))},P.createElement(Z,{sx:{flexDirection:"column"}},e.children),o&&P.createElement(re,{icon:P.createElement(ke,{size:16}),color:"red"},o.map((e=>{var t,n;return P.createElement("div",{"data-testid":"text-field-error",key:null===(t=e.details)||void 0===t?void 0:t.text},null===(n=e.details)||void 0===n?void 0:n.text)}))),t&&P.createElement(P.Fragment,null,P.createElement(q,{position:"center",p:"xl",style:{height:70}},P.createElement(qt,{googleClientId:t,handleGoogleCredential:t=>jt(this,void 0,void 0,(function*(){try{yield r.startPkce(),e.handleAuthResponse(yield r.startGoogleLogin({googleClientId:t.clientId,googleCredential:t.credential,createUser:!0}))}catch(e){l(e)}}))})),P.createElement(ae,{label:"or",labelPosition:"center",my:"lg"})),P.createElement(te,{spacing:"xl"},P.createElement(K,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:Lt(a,"firstName")}),P.createElement(K,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:Lt(a,"lastName")}),P.createElement(K,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:Lt(a,"email")}),P.createElement(le,{name:"password",label:"Password",autoComplete:"off",required:!0,error:Lt(a,"password")}),P.createElement(ne,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",P.createElement(Q,{href:"https://www.medplum.com/privacy"},"Privacy Policy")," and ",P.createElement(Q,{href:"https://www.medplum.com/terms"},"Terms of Service"),"."),P.createElement(ne,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",P.createElement(Q,{href:"https://policies.google.com/privacy"},"Privacy Policy")," and ",P.createElement(Q,{href:"https://policies.google.com/terms"},"Terms of Service")," apply.")),P.createElement(q,{position:"apart",mt:"xl",noWrap:!0},P.createElement(oe,{name:"remember",label:"Remember me",size:"xs"}),P.createElement(B,{type:"submit"},"Create account")))}function Bt(e){const{type:t,projectId:n,googleClientId:r,recaptchaSiteKey:a,onSuccess:l}=e,o=gt(),[i,c]=N(void 0),[s,u]=N();function d(e){e.code?o.processCode(e.code).then((()=>l())).catch(console.log):e.login&&c(e.login)}return L((()=>{"patient"===t&&i&&o.startNewPatient({login:i,projectId:n}).then((e=>o.processCode(e.code))).then((()=>l())).catch((e=>u(e)))}),[o,t,n,i,l]),P.createElement(Vt,{width:450},s&&P.createElement("pre",null,JSON.stringify(s,null,2)),!i&&P.createElement(Ht,{projectId:n,googleClientId:r,recaptchaSiteKey:a,handleAuthResponse:d},e.children),i&&"project"===t&&P.createElement(Ut,{login:i,handleAuthResponse:d}))}function Gt(e){const{generatePkce:t,onForgotPassword:n,onRegister:r,handleAuthResponse:a,children:l}=e,o=kt(e,["generatePkce","onForgotPassword","onRegister","handleAuthResponse","children"]),i=gt(),c=Wt(e.googleClientId),[s,u]=N(),d=Ft(s,void 0);function m(){return jt(this,void 0,void 0,(function*(){t&&(yield i.startPkce())}))}return P.createElement($t,{style:{maxWidth:400},onSubmit:e=>{m().then((()=>i.startLogin(Object.assign(Object.assign({},o),{email:e.email,password:e.password,remember:"on"===e.remember})))).then(a).catch(u)}},P.createElement(Z,{sx:{flexDirection:"column"}},l),d&&P.createElement(re,{icon:P.createElement(ke,{size:16}),color:"red"},d.map((e=>{var t,n;return P.createElement("div",{"data-testid":"text-field-error",key:null===(t=e.details)||void 0===t?void 0:t.text},null===(n=e.details)||void 0===n?void 0:n.text)}))),c&&P.createElement(P.Fragment,null,P.createElement(q,{position:"center",p:"xl",style:{height:70}},P.createElement(qt,{googleClientId:c,handleGoogleCredential:t=>{m().then((()=>i.startGoogleLogin(Object.assign(Object.assign({},o),{googleCredential:t.credential})))).then(e.handleAuthResponse).catch(u)}})),P.createElement(ae,{label:"or",labelPosition:"center",my:"lg"})),P.createElement(te,{spacing:"xl"},P.createElement(K,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0,error:Lt(s,"email")}),P.createElement(le,{name:"password",type:"password",label:"Password",autoComplete:"off",required:!0,error:Lt(s,"password")})),P.createElement(q,{position:"apart",mt:"xl",spacing:0,noWrap:!0},n&&P.createElement(Q,{component:"button",type:"button",color:"dimmed",onClick:n,size:"xs"},"Forgot password"),r&&P.createElement(Q,{component:"button",type:"button",color:"dimmed",onClick:r,size:"xs"},"Register"),P.createElement(oe,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),P.createElement(B,{type:"submit"},"Sign in")))}function Jt(e){const t=gt();return P.createElement(te,null,P.createElement(Z,{sx:{flexDirection:"column"}},P.createElement(zt,{size:32}),P.createElement(ee,null,"Choose profile")),e.memberships.map((n=>{var r,a;return P.createElement(ie,{key:n.id,onClick:()=>{t.post("auth/profile",{login:e.login,profile:n.id}).then(e.handleAuthResponse).catch(console.log)}},P.createElement(q,null,P.createElement(ce,{radius:"xl"}),P.createElement("div",{style:{flex:1}},P.createElement(ne,{size:"sm",weight:500},null===(r=n.profile)||void 0===r?void 0:r.display),P.createElement(ne,{color:"dimmed",size:"xs"},null===(a=n.project)||void 0===a?void 0:a.display))))})))}function Yt(e){const t=gt();return P.createElement($t,{style:{maxWidth:400},onSubmit:n=>{t.post("auth/scope",{login:e.login,scope:Object.keys(n).join(" ")}).then(e.handleAuthResponse).catch(console.log)}},P.createElement(te,null,P.createElement(Z,{sx:{flexDirection:"column"}},P.createElement(zt,{size:32}),P.createElement(ee,null,"Choose scope")),P.createElement(te,null,(e.scope||"openid").split(" ").map((e=>P.createElement(oe,{key:e,id:e,name:e,label:e,defaultChecked:!0})))),P.createElement(q,{position:"right",mt:"xl"},P.createElement(B,{type:"submit"},"Set scope"))))}function Xt(e){const{chooseScopes:t,onSuccess:n,onForgotPassword:r,onRegister:a,onCode:l}=e,o=kt(e,["chooseScopes","onSuccess","onForgotPassword","onRegister","onCode"]),i=gt(),[c,s]=N(void 0),[u,d]=N(void 0);function m(e){e.login&&s(e.login),e.memberships&&d(e.memberships),e.code&&(t?d(void 0):g(e.code))}function p(e){g(e.code)}function g(e){l?l(e):i.processCode(e).then((()=>{n&&n()})).catch(console.log)}return P.createElement(Vt,{width:450},c?u?P.createElement(Jt,{login:c,memberships:u,handleAuthResponse:m}):"new"===e.projectId?P.createElement(Ut,{login:c,handleAuthResponse:m}):e.chooseScopes?P.createElement(Yt,{login:c,scope:e.scope,handleAuthResponse:p}):P.createElement("div",null,"Success"):P.createElement(Gt,Object.assign({generatePkce:!l,onForgotPassword:r,onRegister:a,handleAuthResponse:m},o),e.children))}const Zt=["meta","implicitRules","language","text","contained","extension","modifierExtension"],en=G((e=>({root:{display:"grid",gridTemplateColumns:"30% 70%",margin:0,"& > dt, & > dd":{padding:`${e.spacing.sm}px ${e.spacing.sm}px`,borderTop:`0.1px solid ${e.colors.gray[3]}`,margin:0}},compact:{gridTemplateColumns:"20% 80%","& > dt, & > dd":{padding:`0 ${e.spacing.xs}px ${e.spacing.xs}px 0`,border:0}}})));function tn(e){const{children:t,compact:n}=e,{classes:r,cx:a}=en();return P.createElement("dl",{className:a(r.root,{[r.compact]:n})},t)}function nn(e){return P.createElement(P.Fragment,null,P.createElement("dt",null,e.term),P.createElement("dd",null,e.children))}function rn(e){return P.createElement(P.Fragment,null,n(e.value))}function an(e){return P.createElement(P.Fragment,null,r(e.value))}function ln(e){const t=e.value;if(!t)return null;const n=[];return t.value&&n.push(t.value),(t.use||t.system)&&(n.push(" ["),t.use&&n.push(t.use),t.use&&t.system&&n.push(" "),t.system&&n.push(t.system),n.push("]")),P.createElement(P.Fragment,null,n.join("").trim())}function on(e){var t;const n=e.value;return n?P.createElement(P.Fragment,null,n.name,n.name&&": ",null===(t=n.telecom)||void 0===t?void 0:t.map(((e,t)=>P.createElement(ln,{key:"telecom-"+t,value:e})))):null}function cn(e){const t=e.value;return t?P.createElement(P.Fragment,null,a(t,e.options)):null}function sn(e){var t,n;return P.createElement("div",null,null===(t=e.value)||void 0===t?void 0:t.system,": ",null===(n=e.value)||void 0===n?void 0:n.value)}function un(e){return P.createElement(P.Fragment,null,l(e.value))}function dn(e){return P.createElement(P.Fragment,null,o(e.value))}function mn(e){const t=e.value;return t?P.createElement(P.Fragment,null,P.createElement(un,{value:t.numerator})," / ",P.createElement(un,{value:t.denominator})):null}function pn(e){const t=at(),{to:n,suffix:r,label:a,onClick:l,children:o}=e,i=kt(e,["to","suffix","label","onClick","children"]);let c=function(e){if(e){if("string"==typeof e)return function(e){if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/"))return e;return"/"+e}(e);if("resourceType"in e)return function(e){return`/${e.resourceType}/${e.id}`}(e);if("reference"in e)return function(e){return`/${e.reference}`}(e)}return"#"}(n);return r&&(c+="/"+r),P.createElement(Q,Object.assign({href:c,"aria-label":a,onClick:e=>{yt(e),l?l():n&&t(c)}},i),o)}function gn(e){if(!e.value)return null;const t=e.value.display||e.value.reference||i(e.value);return!1!==e.link&&e.value.reference?P.createElement(pn,{to:e.value},t):P.createElement(P.Fragment,null,t)}function vn(e){var t,n,r;const a=e.property,l=null!==(t=e.values)&&void 0!==t?t:[],o=null===(r=null===(n=a.type)||void 0===n?void 0:n[0])||void 0===r?void 0:r.code;return P.createElement(P.Fragment,null,l.map(((t,n)=>P.createElement("div",{key:`${n}-${l.length}`},P.createElement(hn,{arrayElement:!0,property:a,propertyType:o,value:t,ignoreMissingValues:e.ignoreMissingValues,link:e.link})))))}function hn(e){var t;const{property:n,propertyType:r,value:a}=e;if("*"===(null==n?void 0:n.max)&&!e.arrayElement)return"Attachment"===r?P.createElement(Et,{values:a,maxWidth:e.maxWidth}):P.createElement(vn,{property:n,values:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(r){case s.boolean:return P.createElement(P.Fragment,null,void 0===a?"":Boolean(a).toString());case s.SystemString:case s.code:case s.date:case s.integer:case s.positiveInt:case s.string:case s.unsignedInt:case s.uri:case s.url:return P.createElement(P.Fragment,null,a);case s.canonical:return P.createElement(gn,{value:{reference:a},link:e.link});case s.dateTime:case s.instant:return P.createElement(P.Fragment,null,m(a));case s.markdown:return P.createElement("pre",null,a);case s.Address:return P.createElement(it,{value:a});case s.Annotation:return P.createElement(P.Fragment,null,null==a?void 0:a.text);case s.Attachment:return P.createElement(ft,{value:a,maxWidth:e.maxWidth});case s.CodeableConcept:return P.createElement(rn,{value:a});case s.Coding:return P.createElement(an,{value:a});case s.ContactDetail:return P.createElement(on,{value:a});case s.ContactPoint:return P.createElement(ln,{value:a});case s.HumanName:return P.createElement(cn,{value:a});case s.Identifier:return P.createElement(sn,{value:a});case s.Period:return P.createElement(P.Fragment,null,d(a));case s.Quantity:case s.Duration:return P.createElement(un,{value:a});case s.Range:return P.createElement(dn,{value:a});case s.Ratio:return P.createElement(mn,{value:a});case s.Reference:return P.createElement(gn,{value:a,link:e.link});case s.Timing:return P.createElement(P.Fragment,null,u(a));case s.Dosage:case s.UsageContext:return P.createElement(En,{value:{type:r,value:a},compact:!0,ignoreMissingValues:e.ignoreMissingValues});default:if(!(null==n?void 0:n.path))throw Error(`Displaying property of type ${e.propertyType} requires element definition path`);return P.createElement(En,{value:{type:c(null===(t=null==n?void 0:n.path)||void 0===t?void 0:t.split(".")),value:a},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}function fn(e,t){const n=p(e,t);return n?Array.isArray(n)?[n.map((e=>e.value)),n[0].type]:[n.value,n.type]:[void 0,"undefined"]}function En(e){const t=e.value,n=t.value;if(!n)return null;const r=t.type,a=g.types[r];return a?"object"==typeof n&&"name"in n&&1===Object.keys(n).length&&"string"==typeof n.name?P.createElement("div",null,n.name):P.createElement(tn,{compact:e.compact},Object.entries(a.properties).map((n=>{const a=n[0];if(Zt.indexOf(a)>=0)return null;const l=n[1];l.path||(l.path=r+"."+a);const[o,i]=fn(t,a);return e.ignoreMissingValues&&(!o||Array.isArray(o)&&0===o.length)?null:P.createElement(nn,{key:a,term:v(a)},P.createElement(hn,{property:l,propertyType:i,value:o,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))}))):P.createElement("div",null,r," not implemented")}function yn(e){return P.createElement(q,{noWrap:!0},P.createElement("div",null,e.children),P.createElement("div",null,P.createElement(se.Wrapper,{id:e.htmlFor,label:e.title,description:e.description},null)))}function bn(e){return P.createElement(se.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,error:Lt(e.outcome,e.htmlFor)},e.children)}const Cn={resourceType:"Device",id:"system",deviceName:[{name:"System"}]};function xn(e){const t=gt(),[n,r]=N(function(e,t){if(!t)return;if("resourceType"in t)return t;if("reference"in t)return"system"===t.reference?Cn:e.getCachedReference(t);return}(t,e));return L((()=>{let a=!0;return!n&&e&&"reference"in e&&e.reference&&t.readReference(e).then((e=>{a&&r(e)})).catch((()=>r(void 0))),()=>a=!1}),[t,n,e]),n}function Tn(e){const t=gt(),n=xn(e.defaultValue),[r,a]=N(),[l,o]=N();return L((()=>{n&&(o(JSON.parse(JSON.stringify(n))),t.requestSchema(n.resourceType).then(a).catch(console.log))}),[t,n]),r&&l?P.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:t=>{t.preventDefault(),e.onSubmit&&e.onSubmit(l)}},P.createElement(te,{mb:"xl"},P.createElement(bn,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},P.createElement(K,{name:"resourceType",defaultValue:l.resourceType,disabled:!0})),P.createElement(bn,{title:"ID",htmlFor:"id",outcome:e.outcome},P.createElement(K,{name:"id",defaultValue:l.id,disabled:!0}))),P.createElement(nr,{typeName:l.resourceType,defaultValue:l,outcome:e.outcome,onChange:o}),P.createElement(q,{position:"right",mt:"xl"},P.createElement(B,{type:"submit"},"OK"),e.onDelete&&P.createElement(B,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(l)}},"Delete"))):P.createElement("div",null,"Loading...")}function On(e,t,n,r,a){const l=r.type;if(l.length>1)for(const n of l){const r=t.replace("[x]",h(n.code));r in e&&delete e[r]}return e[n]=a,e}function kn(e){return{value:e.code,label:(t=e,t.display||t.code||""),element:e};var t}function jn(e){const t=gt(),{property:n,defaultValue:r}=e,[a,l]=N((null==r?void 0:r.code)?[r.code]:[]),[o,i]=N((null==r?void 0:r.code)?[kn(r)]:[]),c=$();c.current=o;const s=M((e=>jt(this,void 0,void 0,(function*(){var r,a;const l=null===(r=n.binding)||void 0===r?void 0:r.valueSet,o=null===(a=(yield t.searchValueSet(l,e)).expansion)||void 0===a?void 0:a.contains,s=[...c.current];for(const e of o)e.code&&!s.some((t=>t.value===e.code))&&s.push(kn(e));i(s)}))),[t,n,c]);return L((()=>{s("").catch(console.log)}),[s]),P.createElement(ue,{data:o,placeholder:e.placeholder,searchable:!0,creatable:!0,clearable:!0,value:a,filter:(e,t,n)=>{var r,l;return!(0!==a.length||t||!(null===(r=n.element.display)||void 0===r?void 0:r.toLowerCase().includes(e.toLowerCase().trim()))&&!(null===(l=n.element.code)||void 0===l?void 0:l.toLowerCase().includes(e.toLowerCase().trim())))},onChange:function(t){l(t);const n=t[0];let r;if(n&&(r=c.current.find((e=>e.value===t[0])),!r)){r=kn({code:n,display:n}),i([...c.current,r])}e.onChange&&e.onChange(null==r?void 0:r.element)},getCreateLabel:e=>`+ Create ${e}`,onCreate:e=>kn({code:e,display:e})})}function wn(e){const[t,n]=N(e.defaultValue);return P.createElement(jn,{property:e.property,name:e.name,placeholder:e.placeholder,defaultValue:t&&(r=t,{system:null===(l=null===(a=r.coding)||void 0===a?void 0:a[0])||void 0===l?void 0:l.system,code:null===(i=null===(o=r.coding)||void 0===o?void 0:o[0])||void 0===i?void 0:i.code,display:null===(s=null===(c=r.coding)||void 0===c?void 0:c[0])||void 0===s?void 0:s.display}),onChange:function(t){const r=t&&{text:(a=t).display,coding:[{system:a.system,code:a.code,display:a.display}]};var a;n(r),e.onChange&&e.onChange(r)}});var r,a,l,o,i,c,s}function Sn(e){const[t,n]=N(e.defaultValue);return P.createElement(jn,{property:e.property,name:e.name,placeholder:e.placeholder,defaultValue:(r=t,r?{code:r}:void 0),onChange:function(t){const r=null==(a=t)?void 0:a.code;var a;n(r),e.onChange&&e.onChange(r)}});var r}function An(e){const[t,n]=N(e.defaultValue);return P.createElement(jn,{property:e.property,name:e.name,placeholder:e.placeholder,defaultValue:t&&(r=t,{system:r.system,code:r.code,display:r.display}),onChange:function(t){const r=t&&{system:(a=t).system,code:a.code,display:a.display};var a;n(r),e.onChange&&e.onChange(r)}});var r}function Dn(e){const[t,n]=N(e.defaultValue),r=$();function a(t){t&&0===Object.keys(t).length&&(t=void 0),n(t),e.onChange&&e.onChange(t)}return r.current=t,P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(W,{"data-testid":"system",defaultValue:null==t?void 0:t.system,onChange:e=>function(e){const t=Object.assign(Object.assign({},r.current),{system:e});e||delete t.system,a(t)}(e.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),P.createElement(W,{"data-testid":"use",defaultValue:null==t?void 0:t.use,onChange:e=>function(e){const t=Object.assign(Object.assign({},r.current),{use:e});e||delete t.use,a(t)}(e.currentTarget.value),data:["","home","work","temp","old","mobile"]}),P.createElement(K,{placeholder:"Value",defaultValue:null==t?void 0:t.value,onChange:e=>function(e){const t=Object.assign(Object.assign({},r.current),{value:e});e||delete t.value,a(t)}(e.currentTarget.value)}))}function In(e){var t;const[n,r]=N(e.defaultValue),a=$();function l(t){r(t),e.onChange&&e.onChange(t)}return a.current=n,P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(K,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:null==n?void 0:n.name,onChange:e=>function(e){const t=Object.assign(Object.assign({},a.current),{name:e});e||delete t.name,l(t)}(e.currentTarget.value)}),P.createElement(Dn,{name:e.name+"-telecom",defaultValue:null===(t=null==n?void 0:n.telecom)||void 0===t?void 0:t[0],onChange:function(e){const t=Object.assign(Object.assign({},a.current),{telecom:e&&[e]});e||delete t.telecom,l(t)}}))}function Vn(e){return P.createElement(K,{id:e.name,name:e.name,"data-testid":e.name,placeholder:e.placeholder,type:"datetime-local",defaultValue:Rn(e.defaultValue),error:Lt(e.outcome,e.name),onChange:t=>{if(e.onChange){const n=t.currentTarget.value;e.onChange(Pn(n))}}})}function Rn(e){if(!e)return"";const t=new Date(e);return f(t)?t.toLocaleDateString("sv")+"T"+t.toLocaleTimeString("sv"):""}function Pn(e){if(!e)return"";const t=new Date(e);return f(t)?t.toISOString():""}function Nn(e){return P.createElement(de,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:i(e.defaultValue),onChange:t=>{e.onChange&&e.onChange(JSON.parse(t))}})}function $n(e){var t,n,r;const[a,l]=N(e.defaultValue),o=$();function i(t){l(t),e.onChange&&e.onChange(t)}return o.current=a,P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(W,{defaultValue:null==a?void 0:a.use,"data-testid":"use",onChange:e=>{return t=e.currentTarget.value,void i(Object.assign(Object.assign({},o.current),{use:t||void 0}));var t},data:["","temp","old","usual","official","nickname","anonymous","maiden"]}),P.createElement(K,{placeholder:"Prefix",defaultValue:null===(t=null==a?void 0:a.prefix)||void 0===t?void 0:t.join(" "),onChange:e=>{return t=e.currentTarget.value,void i(Object.assign(Object.assign({},o.current),{prefix:t?t.split(" "):void 0}));var t}}),P.createElement(K,{placeholder:"Given",defaultValue:null===(n=null==a?void 0:a.given)||void 0===n?void 0:n.join(" "),onChange:e=>{return t=e.currentTarget.value,void i(Object.assign(Object.assign({},o.current),{given:t?t.split(" "):void 0}));var t}}),P.createElement(K,{placeholder:"Family",defaultValue:null==a?void 0:a.family,onChange:e=>{return t=e.currentTarget.value,void i(Object.assign(Object.assign({},o.current),{family:t||void 0}));var t}}),P.createElement(K,{placeholder:"Suffix",defaultValue:null===(r=null==a?void 0:a.suffix)||void 0===r?void 0:r.join(" "),onChange:e=>{return t=e.currentTarget.value,void i(Object.assign(Object.assign({},o.current),{suffix:t?t.split(" "):void 0}));var t}}))}function zn(e){const[t,n]=N(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(K,{placeholder:"System",defaultValue:null==t?void 0:t.system,onChange:e=>r(Object.assign(Object.assign({},t),{system:e.currentTarget.value}))}),P.createElement(K,{placeholder:"Value",defaultValue:null==t?void 0:t.value,onChange:e=>r(Object.assign(Object.assign({},t),{value:e.currentTarget.value}))}))}function Ln(e){const[t,n]=N(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(Vn,{name:e.name+".start",placeholder:"Start",defaultValue:null==t?void 0:t.start,onChange:e=>r(Object.assign(Object.assign({},t),{start:e}))}),P.createElement(Vn,{name:e.name+".end",placeholder:"End",defaultValue:null==t?void 0:t.end,onChange:e=>r(Object.assign(Object.assign({},t),{end:e}))}))}function Fn(e){var t;const[n,r]=N(e.defaultValue);function a(t){r(t),e.onChange&&e.onChange(t)}return P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(W,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:null==n?void 0:n.comparator,data:["","<","<=",">=",">"],onChange:e=>a(Object.assign(Object.assign({},n),{comparator:e.currentTarget.value}))}),P.createElement(K,{id:e.name,name:e.name,"data-testid":e.name+"-value",type:"number",step:"any",placeholder:"Value",defaultValue:null===(t=null==n?void 0:n.value)||void 0===t?void 0:t.toString(),onChange:e=>a(Object.assign(Object.assign({},n),{value:Mn(e.currentTarget.value)}))}),P.createElement(K,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:null==n?void 0:n.unit,onChange:e=>a(Object.assign(Object.assign({},n),{unit:e.currentTarget.value}))}))}function Mn(e){if(e)return parseFloat(e)}function Un(e){const[t,n]=N(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(Fn,{name:e.name+"-low",defaultValue:null==t?void 0:t.low,onChange:e=>r(Object.assign(Object.assign({},t),{low:e}))}),P.createElement(Fn,{name:e.name+"-high",defaultValue:null==t?void 0:t.high,onChange:e=>r(Object.assign(Object.assign({},t),{high:e}))}))}function _n(e){const[t,n]=N(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(Fn,{name:e.name+"-numerator",defaultValue:null==t?void 0:t.numerator,onChange:e=>r(Object.assign(Object.assign({},t),{numerator:e}))}),P.createElement(Fn,{name:e.name+"-denominator",defaultValue:null==t?void 0:t.denominator,onChange:e=>r(Object.assign(Object.assign({},t),{denominator:e}))}))}function qn(e){var t,n,r;const a=xn(e.value),l=a?E(a):null!==(t=e.alt)&&void 0!==t?t:"",o=null!==(n=a&&y(a))&&void 0!==n?n:e.src,i=null!==(r=e.radius)&&void 0!==r?r:"xl",c=Object.assign({},e);return delete c.value,delete c.link,e.link?P.createElement(pn,{to:a},P.createElement(ce,Object.assign({src:o,alt:l,radius:i},c))):P.createElement(ce,Object.assign({src:o,alt:l,radius:i},c))}const Wn={Schedule:"_id",Task:"_id",Patient:"name",Practitioner:"name",Questionnaire:"name",ServiceRequest:"_id",DiagnosticReport:"_id",Specimen:"_id",Observation:"code",RequestGroup:"_id",ActivityDefinition:"name",User:"email"};function Kn(e){const t=gt(),n=xn(e.defaultValue),[r,a]=N(n?E(n):""),[l,o]=N(!1),[i,c]=N([]);function s(n){return jt(this,void 0,void 0,(function*(){o(!0);const r=Wn[e.resourceType]||"name",a=new URLSearchParams({[r]:encodeURIComponent(n),_count:"10"}),l=yield t.searchResources(e.resourceType,a);c(l.map((e=>({value:E(e),resource:e})))),o(!1)}))}return L((()=>{n&&a(E(n))}),[n,a]),P.createElement(me,{itemComponent:Qn,value:r,data:i,placeholder:e.placeholder,onFocus:()=>s(r),onChange:function(e){return jt(this,void 0,void 0,(function*(){return a(e),s(e)}))},onItemSubmit:function(t){a(t.value),c([]),e.onChange&&e.onChange(t.resource)},rightSection:l?P.createElement(pe,{size:16}):null})}const Qn=U(((e,t)=>{var{value:n,resource:r}=e,a=kt(e,["value","resource"]);return P.createElement("div",Object.assign({ref:t},a),P.createElement(q,{noWrap:!0},P.createElement(qn,{value:r}),P.createElement("div",null,P.createElement(ne,null,n),P.createElement(ne,{size:"xs",color:"dimmed"},r.birthDate))))}));function Hn(e){const n=e.targetTypes,r=function(e,t){var n;const r=null===(n=null==e?void 0:e.reference)||void 0===n?void 0:n.split("/")[0];if(r)return r;if(t&&t.length>0)return t[0];return}(e.defaultValue,n),[a,l]=N(e.defaultValue),[o,i]=N(r);$().current=a;return $().current=o,P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},n?P.createElement(W,{"data-testid":"reference-input-resource-type-select",defaultValue:o,onChange:e=>i(e.currentTarget.value),data:n}):P.createElement(K,{"data-testid":"reference-input-resource-type-input",defaultValue:o,onChange:e=>i(e.currentTarget.value)}),P.createElement(Kn,{resourceType:o,name:e.name+"-id",placeholder:e.placeholder,defaultValue:a,onChange:n=>{var r;r=n?t(n):void 0,l(r),e.onChange&&e.onChange(r)}}))}function Bn(e){const[t,n]=N(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),r=$();function a(t){n(t),e.onChange&&e.onChange(t)}return r.current=t,P.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},P.createElement("colgroup",null,P.createElement("col",{width:"97%"}),P.createElement("col",{width:"3%"})),P.createElement("tbody",null,t.map(((n,l)=>P.createElement("tr",{key:`${l}-${t.length}`},P.createElement("td",null,P.createElement(Xn,{arrayElement:!0,property:e.property,name:e.name+"."+l,defaultValue:n,onChange:e=>{const t=[...r.current];t[l]=e,a(t)}})),P.createElement("td",{style:{textAlign:"right"}},P.createElement(H,{title:"Remove",size:"sm",onClick:e=>{yt(e);const t=[...r.current];t.splice(l,1),a(t)}},P.createElement(Te,null)))))),P.createElement("tr",null,P.createElement("td",null),P.createElement("td",{style:{textAlign:"right"}},P.createElement(H,{title:"Add",size:"sm",color:"green",onClick:e=>{yt(e);const t=[...r.current];t.push(void 0),a(t)}},P.createElement(je,null))))))}const Gn=["sun","mon","tue","wed","thu","fri","sat"];function Jn(e){const[t,n]=N(e.defaultValue||{}),[r,a]=N(!1),l=$();return l.current=t,P.createElement(P.Fragment,null,P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement("span",null,u(l.current)||"No repeat"),P.createElement(B,{onClick:()=>a(!0)},"Edit")),P.createElement(Yn,{visible:r,defaultValue:l.current,onOk:t=>{e.onChange&&e.onChange(t),n(t),a(!1)},onCancel:()=>a(!1)}))}function Yn(e){var t,n;const[r,a]=N(e.defaultValue||{}),l=$();function o(e){a(Object.assign(Object.assign({},l.current),{repeat:e}))}function i(e,t){t?function(e){var t,n,r;const a=(null===(n=null===(t=l.current)||void 0===t?void 0:t.repeat)||void 0===n?void 0:n.dayOfWeek)||[];a.includes(e)||o(Object.assign(Object.assign({},null===(r=l.current)||void 0===r?void 0:r.repeat),{dayOfWeek:[...a,e]}))}(e):function(e){var t,n,r;const a=(null===(n=null===(t=l.current)||void 0===t?void 0:t.repeat)||void 0===n?void 0:n.dayOfWeek)||[];a.includes(e)&&o(Object.assign(Object.assign({},null===(r=l.current)||void 0===r?void 0:r.repeat),{dayOfWeek:a.filter((t=>t!==e))}))}(e)}return l.current=r,P.createElement(ge,{title:"Timing",closeButtonLabel:"Close",opened:e.visible,onClose:()=>e.onCancel()},P.createElement("div",{style:{padding:"5px 20px",textAlign:"left"}},P.createElement(bn,{title:"Starts on",htmlFor:"timing-dialog-start"},P.createElement(Vn,{name:"timing-dialog-start",onChange:e=>{return t=e,void a(Object.assign(Object.assign({},l.current),{event:[t]}));var t}})),P.createElement(bn,{title:"Repeat every",htmlFor:"timing-dialog-period"},P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(K,{type:"number",step:1,id:"timing-dialog-period",name:"timing-dialog-period",defaultValue:null===(t=null==r?void 0:r.repeat)||void 0===t?void 0:t.period,onChange:e=>function(e){var t;o(Object.assign(Object.assign({},null===(t=l.current)||void 0===t?void 0:t.repeat),{period:e}))}(parseInt(e.currentTarget.value))}),P.createElement(W,{id:"timing-dialog-periodUnit",name:"timing-dialog-periodUnit",defaultValue:null===(n=null==r?void 0:r.repeat)||void 0===n?void 0:n.periodUnit,onChange:e=>function(e){var t;o(Object.assign(Object.assign({},null===(t=l.current)||void 0===t?void 0:t.repeat),{periodUnit:e}))}(e.currentTarget.value),data:[{label:"day",value:"d"},{label:"week",value:"wk"},{label:"month",value:"mo"},{label:"year",value:"a"}]}))),P.createElement(bn,{title:"Repeat on"},P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},Gn.map((e=>P.createElement(P.Fragment,{key:e},P.createElement("label",{htmlFor:"timing-dialog-repeat-"+e},e.charAt(0).toUpperCase()),P.createElement(oe,{id:"timing-dialog-repeat-"+e,name:"timing-dialog-repeat-"+e,onChange:t=>i(e,t.currentTarget.checked)}))))))),P.createElement(B,{onClick:()=>e.onOk(r)},"OK"))}function Xn(e){var t,n,r;const a=e.property,l=null!==(t=e.defaultPropertyType)&&void 0!==t?t:null===(r=null===(n=a.type)||void 0===n?void 0:n[0])||void 0===r?void 0:r.code,o=e.name,i=e.defaultValue;if("*"===a.max&&!e.arrayElement)return"Attachment"===l?P.createElement(Tt,{name:o,defaultValue:i,onChange:e.onChange}):P.createElement(Bn,{property:a,name:o,defaultValue:i,onChange:e.onChange});const c=a.type;return c.length>1?P.createElement(Zn,Object.assign({elementDefinitionTypes:c},e)):P.createElement(er,Object.assign({elementDefinitionType:c[0]},e))}function Zn(e){const t=e.elementDefinitionTypes;let n;e.defaultPropertyType&&(n=t.find((t=>t.code===e.defaultPropertyType))),n||(n=t[0]);const[r,a]=N(n);return P.createElement(q,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(W,{style:{width:"200px"},defaultValue:null==r?void 0:r.code,onChange:e=>{a(t.find((t=>t.code===e.currentTarget.value)))},data:t.map((e=>({value:e.code,label:e.code})))}),P.createElement(er,Object.assign({},e,{elementDefinitionType:r,onChange:t=>{e.onChange&&e.onChange(t,e.name.replace("[x]",h(r.code)))}})))}function er(e){var t;const n=e.property,r=e.elementDefinitionType.code,a=e.name,l=e.defaultValue;switch(r){case s.SystemString:case s.canonical:case s.string:case s.time:case s.uri:case s.url:return P.createElement(K,{id:a,name:a,"data-testid":a,defaultValue:l,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)},error:Lt(e.outcome,a)});case s.date:return P.createElement(K,{type:"date",id:a,name:a,"data-testid":a,defaultValue:l,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)},error:Lt(e.outcome,a)});case s.dateTime:case s.instant:return P.createElement(Vn,{name:a,defaultValue:l,onChange:e.onChange,outcome:e.outcome});case s.decimal:case s.integer:case s.positiveInt:case s.unsignedInt:return P.createElement(K,{type:"number",step:r===s.decimal?"any":"1",id:a,name:a,"data-testid":a,defaultValue:l,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.valueAsNumber)}});case s.code:return P.createElement(Sn,{property:n,name:a,defaultValue:l,onChange:e.onChange});case s.boolean:return P.createElement(oe,{id:a,name:a,"data-testid":a,defaultChecked:!!l,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.checked)}});case s.markdown:return P.createElement(ve,{id:a,name:a,"data-testid":a,defaultValue:l,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)}});case s.Address:return P.createElement(ut,{name:a,defaultValue:l,onChange:e.onChange});case s.Annotation:return P.createElement(ht,{name:a,defaultValue:l,onChange:e.onChange});case s.Attachment:return P.createElement(Ot,{name:a,defaultValue:l,onChange:e.onChange});case s.CodeableConcept:return P.createElement(wn,{property:n,name:a,defaultValue:l,onChange:e.onChange});case s.Coding:return P.createElement(An,{property:n,name:a,defaultValue:l,onChange:e.onChange});case s.ContactDetail:return P.createElement(In,{name:a,defaultValue:l,onChange:e.onChange});case s.ContactPoint:return P.createElement(Dn,{name:a,defaultValue:l,onChange:e.onChange});case s.Extension:return P.createElement(Nn,{name:a,defaultValue:l,onChange:e.onChange});case s.HumanName:return P.createElement($n,{name:a,defaultValue:l,onChange:e.onChange});case s.Identifier:return P.createElement(zn,{name:a,defaultValue:l,onChange:e.onChange});case s.Period:return P.createElement(Ln,{name:a,defaultValue:l,onChange:e.onChange});case s.Duration:case s.Quantity:return P.createElement(Fn,{name:a,defaultValue:l,onChange:e.onChange});case s.Range:return P.createElement(Un,{name:a,defaultValue:l,onChange:e.onChange});case s.Ratio:return P.createElement(_n,{name:a,defaultValue:l,onChange:e.onChange});case s.Reference:return P.createElement(Hn,{name:a,defaultValue:l,targetTypes:tr(n),onChange:e.onChange});case s.Timing:return P.createElement(Jn,{name:a,defaultValue:l,onChange:e.onChange});case s.Dosage:case s.UsageContext:return P.createElement(nr,{typeName:r,defaultValue:l,onChange:e.onChange,outcome:e.outcome});default:return P.createElement(nr,{typeName:c(null===(t=n.path)||void 0===t?void 0:t.split(".")),defaultValue:l,onChange:e.onChange,outcome:e.outcome})}}function tr(e){var t,n,r;return null===(r=null===(n=null===(t=null==e?void 0:e.type)||void 0===t?void 0:t[0])||void 0===n?void 0:n.targetProfile)||void 0===r?void 0:r.map((e=>e.split("/").pop()))}function nr(e){var t;const[n,r]=N(null!==(t=e.defaultValue)&&void 0!==t?t:{});function a(t){r(t),e.onChange&&e.onChange(t)}const l=e.typeName,o=g.types[l];if(!o)return P.createElement("div",null,l," not implemented");const i={type:l,value:n};return P.createElement(te,null,Object.entries(o.properties).map((t=>{const r=t[0];if("id"===r||Zt.indexOf(r)>=0)return null;const l=t[1];if(!l.type)return null;const[o,c]=fn(i,r);return 1===l.type.length&&"boolean"===l.type[0].code?P.createElement(yn,{key:r,title:v(r),description:l.definition,htmlFor:r},P.createElement(Xn,{property:l,name:r,defaultValue:o,defaultPropertyType:c,outcome:e.outcome,onChange:(e,l)=>{a(On(n,r,null!=l?l:r,t[1],e))}})):P.createElement(bn,{key:r,title:v(r),description:l.definition,htmlFor:r,outcome:e.outcome},P.createElement(Xn,{property:l,name:r,defaultValue:o,defaultPropertyType:c,outcome:e.outcome,onChange:(e,l)=>{a(On(n,r,null!=l?l:r,t[1],e))}}))})))}const rr=G((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 ar(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function lr(e){const{classes:t}=rr(),{onChangeMonth:n,onClick:r}=e,[a,l]=N(or);function o(e){l((t=>{const r=new Date(t.getTime());return r.setMonth(t.getMonth()+e),n(r),r}))}const i=_((()=>function(e,t){const n=new Date(e.getFullYear(),e.getMonth()),r=[];let a=[];for(let e=0;e<n.getDay();e++)a.push(void 0);for(;n.getMonth()===e.getMonth();)a.push({date:new Date(n.getTime()),available:ir(n,t)}),6===n.getDay()&&(r.push(a),a=[]),n.setDate(n.getDate()+1);if(0!==n.getDay()){for(let e=n.getDay();e<7;e++)a.push(void 0);r.push(a)}return r}(a,e.slots)),[a,e.slots]);return P.createElement("div",null,P.createElement(q,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},P.createElement("p",{style:{flex:1}},ar(a)),P.createElement(q,{position:"right",spacing:"xs"},P.createElement(B,{variant:"outline","aria-label":"Previous month",onClick:()=>o(-1)},"<"),P.createElement(B,{variant:"outline","aria-label":"Next month",onClick:()=>o(1)},">"))),P.createElement("table",{className:t.table},P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"SUN"),P.createElement("th",null,"MON"),P.createElement("th",null,"TUE"),P.createElement("th",null,"WED"),P.createElement("th",null,"THU"),P.createElement("th",null,"FRI"),P.createElement("th",null,"SAT"))),P.createElement("tbody",null,i.map(((e,t)=>P.createElement("tr",{key:"week-"+t},e.map(((e,t)=>P.createElement("td",{key:"day-"+t},e&&P.createElement(B,{disabled:!e.available,onClick:()=>r(e.date)},e.date.getDate()))))))))))}function or(){const e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}function ir(e,t){for(const n of t){const t=new Date(n.start);if(t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate())return!0}return!1}function cr(e){const{value:t,link:n}=e,r=kt(e,["value","link"]),a=xn(t);if(!a)return null;const l=E(a);return n?P.createElement(pn,Object.assign({to:a},r),l):P.createElement(ne,Object.assign({component:"span"},r),l)}function sr(e){return P.createElement(q,{spacing:"xs"},P.createElement(qn,{size:24,radius:12,value:e.value,link:e.link}),P.createElement(cr,{value:e.value,link:e.link}))}const ur=G((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:"dark"===e.colorScheme?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]}`}}})));function dr(e){var t,n;const r=xn(e.value),a=xn(null===(t=null==r?void 0:r.specimen)||void 0===t?void 0:t[0]);if(!r)return null;let l="";if(r.presentedForm&&r.presentedForm.length>0){const e=r.presentedForm[0];(null===(n=e.contentType)||void 0===n?void 0:n.startsWith("text/plain"))&&e.data&&(l=window.atob(e.data))}if(null==a?void 0:a.note)for(const e of a.note)l+=e.text+"\n\n";return P.createElement(te,null,P.createElement(ee,null,"Diagnostic Report"),P.createElement(q,{mt:"md",spacing:30},r.subject&&P.createElement("div",null,P.createElement(ne,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),P.createElement(ne,null,P.createElement(sr,{value:r.subject,link:!0}))),r.resultsInterpreter&&r.resultsInterpreter.map((e=>P.createElement("div",{key:e.reference},P.createElement(ne,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),P.createElement(ne,null,P.createElement(sr,{value:e,link:!0}))))),r.issued&&P.createElement("div",null,P.createElement(ne,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),P.createElement(ne,null,m(r.issued))),r.status&&P.createElement("div",null,P.createElement(ne,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),P.createElement(ne,null,h(r.status)))),r.result&&P.createElement(mr,{value:r.result}),l&&P.createElement("pre",null,l.trim()))}function mr(e){var t;const{classes:n}=ur();return P.createElement("table",{className:n.table},P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"Test"),P.createElement("th",null,"Value"),P.createElement("th",null,"Reference Range"),P.createElement("th",null,"Interpretation"))),P.createElement("tbody",null,null===(t=e.value)||void 0===t?void 0:t.map(((e,t)=>P.createElement(pr,{key:"obs-"+t,value:e})))))}function pr(e){const{classes:t,cx:n}=ur(),r=xn(e.value);if(!r)return null;const a=function(e){var t,n,r,a;const l=null===(a=null===(r=null===(n=null===(t=e.interpretation)||void 0===t?void 0:t[0])||void 0===n?void 0:n.coding)||void 0===r?void 0:r[0])||void 0===a?void 0:a.code;return"AA"===l||"LL"===l||"HH"===l||"A"===l}(r);return P.createElement("tr",{className:n({[t.criticalRow]:a})},P.createElement("td",null,P.createElement(pn,{to:r},P.createElement(rn,{value:r.code}))),P.createElement("td",null,P.createElement(gr,{value:r})),P.createElement("td",null,P.createElement(vr,{value:r.referenceRange})),P.createElement("td",null,r.interpretation&&r.interpretation.length>0&&P.createElement(rn,{value:r.interpretation[0]})))}function gr(e){const t=e.value;return P.createElement(P.Fragment,null,b(t))}function vr(e){const t=e.value&&e.value.length>0&&e.value[0];return t?t.text?P.createElement(P.Fragment,null,t.text):P.createElement(dn,{value:t}):null}const hr=G((e=>({root:{borderCollapse:"collapse",width:"100%","& tr":{borderTop:`0.1px solid ${e.colors.gray[3]}`},"& th, & td":{padding:`${e.spacing.sm}px ${e.spacing.sm}px`,verticalAlign:"top"}},removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}})));function fr(e){const{classes:t}=hr(),n=gt(),[r,a]=N();if(L((()=>{n.requestSchema(e.original.resourceType).then(a).catch(console.log)}),[n,e.original.resourceType]),!r)return null;const l=r.types[e.original.resourceType];return l?P.createElement("table",{className:t.root},P.createElement("colgroup",null,P.createElement("col",{style:{width:"30%"}}),P.createElement("col",{style:{width:"35%"}}),P.createElement("col",{style:{width:"35%"}})),P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"Property"),P.createElement("th",null,"Before"),P.createElement("th",null,"After"))),P.createElement("tbody",null,Object.entries(l.properties).map((n=>{const r=n[0];if("id"===r||"meta"===r)return null;const a=n[1],[l,o]=fn(C(e.original),r),[c,s]=fn(C(e.revised),r);return Er(l)&&Er(c)||i(l)===i(c)?null:P.createElement("tr",{key:r},P.createElement("td",null,v(r)),P.createElement("td",{className:t.removed},P.createElement(hn,{property:a,propertyType:o,value:l,ignoreMissingValues:!0})),P.createElement("td",{className:t.added},P.createElement(hn,{property:a,propertyType:s,value:c,ignoreMissingValues:!0})))})))):null}function Er(e){return!e||Array.isArray(e)&&0===e.length||"object"==typeof e&&0===Object.keys(e).length}function yr(e){const t=gt(),n=xn(e.value),[r,a]=N();return L((()=>{n&&t.requestSchema(n.resourceType).then(a).catch(console.log)}),[t,n]),r&&n?P.createElement(En,{value:{type:n.resourceType,value:n},ignoreMissingValues:e.ignoreMissingValues}):null}class br extends P.Component{constructor(e){super(e),this.state={}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("Uncaught error:",e,t)}render(){return this.state.error?P.createElement(re,{icon:P.createElement(ke,{size:16}),title:"Something went wrong",color:"red"},x(this.state.error)):this.props.children}}function Cr(e){return P.createElement(St,null,e.children)}function xr(e){var t,n;const{resource:r,profile:a,padding:l,popupMenuItems:o}=e,i=kt(e,["resource","profile","padding","popupMenuItems"]),c=null!=a?a:null===(t=r.meta)||void 0===t?void 0:t.author;return P.createElement(It,Object.assign({"data-testid":"timeline-item",fill:!0},i),P.createElement(q,{position:"apart",spacing:8,mx:"xs",my:"sm"},P.createElement(qn,{value:c,link:!0,size:"md"}),P.createElement("div",{style:{flex:1}},P.createElement(ne,{size:"sm"},P.createElement(cr,{color:"dark",weight:500,value:c,link:!0})),P.createElement(ne,{size:"xs"},P.createElement(pn,{color:"dimmed",to:e.resource},m(null===(n=e.resource.meta)||void 0===n?void 0:n.lastUpdated)),P.createElement(ne,{component:"span",color:"dimmed",mx:8},"·"),P.createElement(pn,{color:"dimmed",to:e.resource},e.resource.resourceType))),o&&P.createElement(he,{position:"bottom-end",shadow:"md",width:200},P.createElement(he.Target,null,P.createElement(H,{radius:"xl","aria-label":`Actions for ${T(e.resource)}`},P.createElement(we,null))),o)),P.createElement(br,null,l&&P.createElement("div",{style:{padding:"0 16px 16px 16px"}},e.children),!l&&P.createElement(P.Fragment,null,e.children)))}function Tr(e){e.sort(Or)}function Or(e,t){const n=kr(e),r=kr(t);return n>r?1:n<r?-1:jr(e)-jr(t)}function kr(e){const t=e.priority;return"string"==typeof t&&{stat:4,asap:3,urgent:2}[t]||0}function jr(e){var t;if("Communication"===e.resourceType&&e.sent)return new Date(e.sent).getTime();if(("DiagnosticReport"===e.resourceType||"Media"===e.resourceType||"Observation"===e.resourceType)&&e.issued)return new Date(e.issued).getTime();if("DocumentReference"===e.resourceType&&e.date)return new Date(e.date).getTime();const n=null===(t=e.meta)||void 0===t?void 0:t.lastUpdated;return n?new Date(n).getTime():0}const wr=G((e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}})));function Sr(e){const t=at(),n=gt(),r=n.getProfile(),a=$(null),l=xn(e.value),[o,i]=N(),[c,s]=N([]),u=e.buildSearchRequests,d=$(c);d.current=c;const m=M((()=>{if(!l)return s([]),void i({});n.executeBatch(u(l)).then(p).catch(console.log)}),[n,l,u]);function p(e){const t=[];if(e.entry){for(const n of e.entry){const e=n.resource;if(e&&("history"===e.type&&i(e),e.entry))for(const n of e.entry)n.resource&&t.push(n.resource)}Tr(t),t.reverse()}s(t)}function g(e){const t=[...d.current,...e];Tr(t),t.reverse(),s(t)}function v(e,t){return n.updateResource(Object.assign(Object.assign({},e),{priority:t}))}function h(e){v(e,"stat").then(m).catch(console.log)}function f(e){v(e,"routine").then(m).catch(console.log)}function E(e){t(`/${e.resourceType}/${e.id}`)}function y(e){t(`/${e.resourceType}/${e.id}/edit`)}function b(e){t(`/${e.resourceType}/${e.id}/delete`)}function C(e){var n;t(`/${e.resourceType}/${e.id}/_history/${null===(n=e.meta)||void 0===n?void 0:n.versionId}`)}return L((()=>{m()}),[m]),l?P.createElement(Cr,null,e.createCommunication&&P.createElement(It,null,P.createElement($t,{testid:"timeline-form",onSubmit:t=>{var o;o=t.text,l&&e.createCommunication&&n.createResource(e.createCommunication(l,r,o)).then((e=>{g([e])})).catch(console.log);const i=a.current;i&&(i.value="",i.focus())}},P.createElement(q,{spacing:"xs",noWrap:!0,style:{width:"100%"}},P.createElement(qn,{value:r}),P.createElement(K,{name:"text",ref:a,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),P.createElement(H,{type:"submit",radius:"xl",color:"blue",variant:"filled"},P.createElement(Se,{size:16})),P.createElement(xt,{onUpload:function(t){l&&e.createMedia&&n.createResource(e.createMedia(l,r,t)).then((e=>g([e]))).then((()=>lt({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:P.createElement(Ae,{size:16}),autoClose:2e3}))).catch((e=>lt({id:"upload-notification",color:"red",title:"Upload error",message:x(e),icon:P.createElement(De,{size:16}),autoClose:2e3})))},onUploadStart:function(){ot({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,disallowClose:!0})},onUploadProgress:function(e){lt({id:"upload-notification",loading:!0,title:"Uploading...",message:Nr(e),autoClose:!1,disallowClose:!0})}},(e=>P.createElement(H,Object.assign({},e,{radius:"xl",color:"blue",variant:"filled"}),P.createElement(Oe,{size:16}))))))),c.map((e=>{var t;if(e.resourceType===l.resourceType&&e.id===l.id)return P.createElement(Dr,{key:null===(t=e.meta)||void 0===t?void 0:t.versionId,history:o,resource:e,onDetails:C});const n=`${e.resourceType}/${e.id}`;switch(e.resourceType){case"AuditEvent":return P.createElement(Rr,{key:n,resource:e,onDetails:E});case"Communication":return P.createElement(Ir,{key:n,resource:e,onPin:"stat"!==e.priority?h:void 0,onUnpin:"stat"===e.priority?f:void 0,onDetails:E,onEdit:y,onDelete:b});case"DiagnosticReport":return P.createElement(Pr,{key:n,resource:e,onDetails:E,onEdit:y,onDelete:b});case"Media":return P.createElement(Vr,{key:n,resource:e,onDetails:E,onEdit:y,onDelete:b});default:return P.createElement(xr,{key:n,resource:e,padding:!0},P.createElement(yr,{value:e,ignoreMissingValues:!0}))}}))):P.createElement(Z,{style:{width:"100%",height:"100%"}},P.createElement(pe,null))}function Ar(e){return P.createElement(he.Dropdown,null,P.createElement(he.Label,null,"Resource"),e.onPin&&P.createElement(he.Item,{icon:P.createElement(Ie,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${T(e.resource)}`},"Pin"),e.onUnpin&&P.createElement(he.Item,{icon:P.createElement(Ve,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${T(e.resource)}`},"Unpin"),e.onDetails&&P.createElement(he.Item,{icon:P.createElement(Re,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${T(e.resource)}`},"Details"),e.onEdit&&P.createElement(he.Item,{icon:P.createElement(Pe,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${T(e.resource)}`},"Edit"),e.onDelete&&P.createElement(P.Fragment,null,P.createElement(he.Divider,null),P.createElement(he.Label,null,"Danger zone"),P.createElement(he.Item,{color:"red",icon:P.createElement(Ne,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${T(e.resource)}`},"Delete")))}function Dr(e){const t=function(e,t){const n=e.entry,r=n.findIndex((e=>{var n,r,a;return(null===(r=null===(n=e.resource)||void 0===n?void 0:n.meta)||void 0===r?void 0:r.versionId)===(null===(a=t.meta)||void 0===a?void 0:a.versionId)}));if(r>=n.length-1)return;return n[r+1].resource}(e.history,e.resource);return t?P.createElement(xr,{resource:e.resource,padding:!0,popupMenuItems:P.createElement(Ar,Object.assign({},e))},P.createElement(fr,{original:t,revised:e.resource})):P.createElement(xr,{resource:e.resource,padding:!0,popupMenuItems:P.createElement(Ar,Object.assign({},e))},P.createElement("h3",null,"Created"),P.createElement(yr,{value:e.resource,ignoreMissingValues:!0}))}function Ir(e){var t,n;const{classes:r}=wr(),a=!e.resource.priority||"routine"===e.resource.priority?void 0:r.pinnedComment;return P.createElement(xr,{resource:e.resource,profile:e.resource.sender,padding:!0,className:a,popupMenuItems:P.createElement(Ar,Object.assign({},e))},P.createElement("p",null,null===(n=null===(t=e.resource.payload)||void 0===t?void 0:t[0])||void 0===n?void 0:n.contentString))}function Vr(e){var t;const n=null===(t=e.resource.content)||void 0===t?void 0:t.contentType,r=n&&!n.startsWith("image/")&&!n.startsWith("video/")&&"application/pdf"!==n;return P.createElement(xr,{resource:e.resource,padding:!!r,popupMenuItems:P.createElement(Ar,Object.assign({},e))},P.createElement(ft,{value:e.resource.content}))}function Rr(e){return P.createElement(xr,{resource:e.resource,padding:!0,popupMenuItems:P.createElement(Ar,Object.assign({},e))},P.createElement(fe,null,P.createElement("pre",null,e.resource.outcomeDesc)))}function Pr(e){return P.createElement(xr,{resource:e.resource,padding:!0,popupMenuItems:P.createElement(Ar,Object.assign({},e))},P.createElement(dr,{value:e.resource}))}function Nr(e){if(e.lengthComputable){const t=100*e.loaded/e.total;return`Uploaded: ${$r(e.loaded)} / ${$r(e.total)} ${t.toFixed(2)}%`}return`Uploaded: ${$r(e.loaded)}`}function $r(e){if(0==e)return"0.00 B";const t=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,t)).toFixed(2)+" "+" KMGTP".charAt(t)+"B"}function zr(e){return P.createElement(Sr,{value:e.resource,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:[{request:{method:"GET",url:`${T(e)}/_history`}},{request:{method:"GET",url:`AuditEvent?entity=${T(e)}&_sort=-_lastUpdated`}}]})})}function Lr(e){return P.createElement(Sr,{value:e.encounter,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:[{request:{method:"GET",url:`${T(e)}/_history`}},{request:{method:"GET",url:`Communication?encounter=${T(e)}`}},{request:{method:"GET",url:`Media?encounter=${T(e)}`}}]}),createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",encounter:t(e),subject:e.subject,sender:t(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",encounter:t(e),subject:e.subject,operator:t(n),issued:(new Date).toISOString(),content:r})})}function Fr(e){let t;try{t=O(e.path,e.resource)}catch(e){return console.warn("FhirPathDisplay:",e),null}if(t.length>1)throw new Error(`Component "path" for "FhirPathDisplay" must resolve to a single element. Received ${t.length} elements [${JSON.stringify(t,null,2)}]`);return P.createElement(hn,{value:t[0]||"",propertyType:e.propertyType})}const Mr={string:[k.EQUALS,k.NOT,k.CONTAINS,k.EXACT],fulltext:[k.EQUALS,k.NOT,k.CONTAINS,k.EXACT],token:[k.EQUALS,k.NOT],reference:[k.EQUALS,k.NOT],numeric:[k.EQUALS,k.NOT_EQUALS,k.GREATER_THAN,k.LESS_THAN,k.GREATER_THAN_OR_EQUALS,k.LESS_THAN_OR_EQUALS],quantity:[k.EQUALS,k.NOT_EQUALS,k.GREATER_THAN,k.LESS_THAN,k.GREATER_THAN_OR_EQUALS,k.LESS_THAN_OR_EQUALS],date:[k.EQUALS,k.NOT_EQUALS,k.GREATER_THAN,k.LESS_THAN,k.GREATER_THAN_OR_EQUALS,k.LESS_THAN_OR_EQUALS,k.STARTS_AFTER,k.ENDS_BEFORE,k.APPROXIMATELY],datetime:[k.EQUALS,k.NOT_EQUALS,k.GREATER_THAN,k.LESS_THAN,k.GREATER_THAN_OR_EQUALS,k.LESS_THAN_OR_EQUALS,k.STARTS_AFTER,k.ENDS_BEFORE,k.APPROXIMATELY]},Ur={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"};function _r(e,t){return Object.assign(Object.assign({},e),{filters:t,offset:0,name:void 0})}function qr(e){return _r(e,[])}function Wr(e,t){return _r(e,(e.filters||[]).filter((e=>e.code!==t)))}function Kr(e,t,n,r,a){a&&(e=Wr(e,t));const l=[];return e.filters&&l.push(...e.filters),l.push({code:t,operator:n,value:r||""}),_r(e,l)}function Qr(e,t){if(e.fields&&e.fields.includes(t))return e;const n=[];return e.fields&&n.push(...e.fields),n.push(t),Object.assign(Object.assign({},e),{fields:n,name:void 0})}function Hr(e,t){if(!e.filters)return e;const n=[...e.filters];return n.splice(t,1),Object.assign(Object.assign({},e),{filters:n,name:void 0})}function Br(e,t){return Yr(e,t,-1)}function Gr(e,t){return Yr(e,t,0)}function Jr(e,t){return Yr(e,t,1)}function Yr(e,t,n){const r=new Date;r.setDate(r.getDate()+n),r.setHours(0,0,0,0);const a=new Date(r.getTime());return a.setDate(a.getDate()+1),a.setTime(a.getTime()-1),ra(e,t,r,a)}function Xr(e,t){return ta(e,t,-1)}function Zr(e,t){return ta(e,t,0)}function ea(e,t){return ta(e,t,1)}function ta(e,t,n){const r=new Date;r.setMonth(r.getMonth()+n),r.setDate(1),r.setHours(0,0,0,0);const 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),ra(e,t,r,a)}function na(e,t){const n=new Date;n.setMonth(0),n.setDate(1),n.setHours(0,0,0,0);return ra(e,t,n,new Date)}function ra(e,t,n,r){return e=aa(e=Wr(e,t),t,k.GREATER_THAN_OR_EQUALS,n),e=aa(e,t,k.LESS_THAN_OR_EQUALS,r)}function aa(e,t,n,r){return Kr(e,t,n,r.toISOString())}function la(e,t,n=!0){return Kr(e,t,k.MISSING,n.toString())}function oa(e,t){return e.offset===t?e:Object.assign(Object.assign({},e),{offset:t,name:void 0})}function ia(e,t){var n;return oa(e,(t-1)*(null!==(n=e.count)&&void 0!==n?n:j))}function ca(e,t,n){return t===ua(e)&&void 0!==n&&n===da(e)?e:Object.assign(Object.assign({},e),{sortRules:[{code:t,descending:!!n}],name:void 0})}function sa(e,t){let n=!1;return ua(e)===t&&(n=!da(e)),ca(e,t,n)}function ua(e){const t=e.sortRules;if(!t||0===t.length)return;const n=t[0].code;return n.startsWith("-")?n.substr(1):n}function da(e){const t=e.sortRules;return!(!t||0===t.length)&&!!t[0].descending}function ma(e){return Mr[e.type]}function pa(e){var t;return null!==(t=Ur[e])&&void 0!==t?t:""}function ga(e){let t=e;return t.includes(".")&&(t=t.split(".").pop()),"id"===t?"ID":"versionId"===t?"Version ID":(t=t.replace("[x]",""),t=t.replace(/([A-Z])/g," $1"),t=t.replace(/[-_]/g," "),t=t.replace(/\s+/g," "),t=t.trim(),t.split(/\s/).map(h).join(" "))}function va(e,t){var n,r;const a=t.name;return"id"===a?e.id:"meta.versionId"===a?null===(n=e.meta)||void 0===n?void 0:n.versionId:"_lastUpdated"===a?m(null===(r=e.meta)||void 0===r?void 0:r.lastUpdated):t.elementDefinition&&`${e.resourceType}.${t.name}`===t.elementDefinition.path?function(e,t){var n,r,a;const l=(null===(a=null===(r=null===(n=t.path)||void 0===n?void 0:n.split("."))||void 0===r?void 0:r.pop())||void 0===a?void 0:a.replaceAll("[x]",""))||"",[o,i]=fn({type:e.resourceType,value:e},l);if(!o)return null;return P.createElement(hn,{property:t,propertyType:i,value:o,maxWidth:200,ignoreMissingValues:!0,link:!1})}(e,t.elementDefinition):t.searchParams&&1===t.searchParams.length&&t.name===t.searchParams[0].code?function(e,t,n){const r=w(t.expression,[{type:e.resourceType,value:e}]);if(!r||0===r.length)return null;if(n)return P.createElement(hn,{propertyType:r[0].type,value:r[0].value,maxWidth:200,ignoreMissingValues:!0,link:!1});return P.createElement(P.Fragment,null,r.map(((e,t)=>P.createElement("span",{key:`${t}-${r.length}`},"object"==typeof e?JSON.stringify(e):e))))}(e,t.searchParams[0],t.elementDefinition):null}function ha(e){var t;const[n,r]=N({search:JSON.parse(i(e.search))}),a=$(null),l=$(null);function o(){var e,t;const l=null!==(e=n.search.fields)&&void 0!==e?e:[],o=null===(t=a.current)||void 0===t?void 0:t.value;if(o){const e=[...l,o];r({search:Object.assign(Object.assign({},n.search),{fields:e})})}}function c(){var e,t;const a=null!==(e=n.search.fields)&&void 0!==e?e:[],o=null===(t=l.current)||void 0===t?void 0:t.value;if(o){const e=[...a];e.splice(e.indexOf(o),1),r({search:Object.assign(Object.assign({},n.search),{fields:e})})}}function s(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}if(L((()=>{r({search:e.search})}),[e.search]),!e.visible)return null;const u=e.search.resourceType,d=g.types[u],m=null!==(t=n.search.fields)&&void 0!==t?t:[],p=function(e){const t=[],n=new Set,r=new Set;for(const a of Object.keys(e.properties))t.push(a),n.add(a.toLowerCase()),r.add(ga(a));if(e.searchParams)for(const a of Object.keys(e.searchParams)){const e=ga(a);n.has(a)||r.has(e)||(t.push(a),n.add(a),r.add(ga(a)))}return t}(d).filter((e=>!(null==m?void 0:m.includes(e)))).sort();return P.createElement(ge,{title:"Fields",closeButtonLabel:"Close",opened:e.visible,onClose:e.onCancel},P.createElement("div",null,P.createElement("table",{style:{margin:"auto"}},P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",{colSpan:2,align:"center"},"Available"),P.createElement("th",{colSpan:2,align:"center"},"Selected"))),P.createElement("tbody",null,P.createElement("tr",null,P.createElement("td",{colSpan:2,align:"center"},P.createElement("select",{ref:a,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&o()}(e),onDoubleClick:()=>{o()},"data-testid":"available"},p.map((e=>P.createElement("option",{key:e,value:e},ga(e)))))),P.createElement("td",{colSpan:2,align:"center"},P.createElement("select",{ref:l,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&c()}(e),onDoubleClick:()=>{c()},"data-testid":"selected"},m.map((e=>P.createElement("option",{key:e,value:e},ga(e)))))))),P.createElement("tfoot",null,P.createElement("tr",null,P.createElement("td",{align:"center"},P.createElement(B,{compact:!0,variant:"outline",onClick:o},"Add")),P.createElement("td",{align:"center"},P.createElement(B,{compact:!0,variant:"outline",onClick:c},"Remove")),P.createElement("td",{align:"center"},P.createElement(B,{compact:!0,variant:"outline",onClick:function(){var e,t;const a=null!==(e=n.search.fields)&&void 0!==e?e:[],o=null===(t=l.current)||void 0===t?void 0:t.value;if(o){const e=[...a],t=e.indexOf(o);s(e,t,t-1),r({search:Object.assign(Object.assign({},n.search),{fields:e})})}}},"Up")),P.createElement("td",{align:"center"},P.createElement(B,{compact:!0,variant:"outline",onClick:function(){var e,t;const a=null!==(e=n.search.fields)&&void 0!==e?e:[],o=null===(t=l.current)||void 0===t?void 0:t.value;if(o){const e=[...a],t=e.indexOf(o);s(e,t,t+1),r({search:Object.assign(Object.assign({},n.search),{fields:e})})}}},"Down")))))),P.createElement(B,{onClick:()=>e.onOk(n.search)},"OK"))}function fa(e){var t,n;const{resourceType:r,filter:a}=e,l=null===(n=null===(t=g.types[r])||void 0===t?void 0:t.searchParams)||void 0===n?void 0:n[a.code];if(l){if("reference"===l.type)return P.createElement(cr,{value:{reference:a.value}});const e=S(r,l);if("_lastUpdated"===a.code||e.type===A.DATETIME)return P.createElement(P.Fragment,null,m(a.value))}return P.createElement(P.Fragment,null,a.value)}function Ea(e){var t;const n="filter-value";switch(S(e.resourceType,e.searchParam).type){case A.REFERENCE:return P.createElement(Hn,{name:n,defaultValue:{reference:e.defaultValue},targetTypes:null===(t=e.searchParam)||void 0===t?void 0:t.target,onChange:t=>{t?e.onChange(t.reference):e.onChange("")}});case A.BOOLEAN:return P.createElement(oe,{name:n,"data-testid":n,defaultChecked:"true"===e.defaultValue,onChange:t=>e.onChange(t.currentTarget.checked.toString())});case A.DATE:return P.createElement(K,{type:"date",name:n,"data-testid":n,defaultValue:e.defaultValue,onChange:t=>e.onChange(t.currentTarget.value)});case A.DATETIME:return P.createElement(Vn,{name:n,defaultValue:e.defaultValue,onChange:e.onChange});case A.NUMBER:return P.createElement(K,{type:"number",name:n,"data-testid":n,defaultValue:e.defaultValue,onChange:t=>e.onChange(t.currentTarget.value)});case A.QUANTITY:return P.createElement(Fn,{name:n,defaultValue:ya(e.defaultValue),onChange:t=>{t?e.onChange(`${t.value}`):e.onChange("")}});default:return P.createElement(K,{name:n,"data-testid":n,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:t=>e.onChange(t.currentTarget.value),placeholder:"Search value"})}}function ya(e){if(e){const[t,n,r]=e.split("|");if(t)return{value:parseFloat(t),system:n,unit:r}}}function ba(e){const[t,n]=N(JSON.parse(i(e.search))),[r,a]=N(-1),l=$(t);if(l.current=t,L((()=>{n(JSON.parse(i(e.search)))}),[e.search]),!e.visible)return null;const o=e.search.resourceType,c=g.types[o].searchParams,s=t.filters||[];return P.createElement(ge,{title:"Filters",closeButtonLabel:"Close",size:900,opened:e.visible,onClose:e.onCancel},P.createElement("div",null,P.createElement("table",null,P.createElement("colgroup",null,P.createElement("col",{style:{width:200}}),P.createElement("col",{style:{width:200}}),P.createElement("col",{style:{width:380}}),P.createElement("col",{style:{width:120}})),P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"Field"),P.createElement("th",null,"Operation"),P.createElement("th",null,"Value"),P.createElement("th",null,"Actions"))),P.createElement("tbody",null,s.map(((e,t)=>t===r?P.createElement(xa,{key:`filter-${t}-${s.length}-input`,resourceType:o,searchParams:c,defaultValue:e,okText:"Save",onOk:e=>{const r=[...s];r[t]=e,n(_r(l.current,r)),a(-1)},onCancel:()=>a(-1)}):P.createElement(Ca,{key:`filter-${t}-${s.length}-display`,resourceType:o,searchParams:c,filter:e,onEdit:()=>a(t),onDelete:()=>n(Hr(l.current,t))}))),P.createElement(xa,{resourceType:o,searchParams:c,okText:"Add",onOk:function(e){n(Kr(l.current,e.code,e.operator,e.value))}})))),P.createElement(q,{position:"right",mt:"xl"},P.createElement(B,{onClick:()=>e.onOk(l.current)},"OK")))}function Ca(e){const{filter:t}=e;return P.createElement("tr",null,P.createElement("td",null,ga(t.code)),P.createElement("td",null,pa(t.operator)),P.createElement("td",null,P.createElement(fa,{resourceType:e.resourceType,filter:t})),P.createElement("td",null,P.createElement(B,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),P.createElement(B,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function xa(e){var t;const[n,r]=N(null!==(t=e.defaultValue)&&void 0!==t?t:{}),a=$(n);a.current=n;const l=e.searchParams[n.code],o=l&&ma(l);return P.createElement("tr",null,P.createElement("td",null,P.createElement(W,{"data-testid":"filter-field",defaultValue:a.current.code,onChange:e=>{return t=e.currentTarget.value,void r(Object.assign(Object.assign({},a.current),{code:t}));var t},data:Object.keys(e.searchParams).map((e=>({value:e,label:ga(e)})))})),P.createElement("td",null,o&&P.createElement(W,{"data-testid":"filter-operation",defaultValue:n.operator,onChange:e=>{return t=e.currentTarget.value,void r(Object.assign(Object.assign({},a.current),{operator:t}));var t},data:["",...o.map((e=>({value:e,label:pa(e)})))]})),P.createElement("td",null,l&&n.operator&&P.createElement(Ea,{resourceType:e.resourceType,searchParam:l,defaultValue:n.value,onChange:function(e){r(Object.assign(Object.assign({},a.current),{value:e}))}})),P.createElement("td",null,n.code&&n.operator&&n.value&&P.createElement(B,{compact:!0,variant:"outline",onClick:()=>{e.onOk(a.current),r({})}},e.okText),e.onCancel&&P.createElement(B,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}function Ta(e){var t;const[n,r]=N(null!==(t=e.defaultValue)&&void 0!==t?t:"");if(!e.visible||!e.searchParam||!e.filter)return null;function a(){e.onOk(Object.assign(Object.assign({},e.filter),{value:n}))}return P.createElement(ge,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},P.createElement("div",{style:{width:500}},P.createElement($t,{onSubmit:a},P.createElement(Ea,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:n,autoFocus:!0,onChange:r}))),P.createElement(B,{onClick:a},"OK"))}function Oa(e){if(!e.searchParams)return null;function t(t){e.onChange(t)}return 1===e.searchParams.length?P.createElement(ka,{search:e.search,searchParam:e.searchParams[0],onSort:function(n,r){t(ca(e.search,n.code,r))},onPrompt:function(t,n){e.onPrompt(t,{code:t.code,operator:n,value:""})},onChange:t,onClear:function(n){t(Wr(e.search,n.code))}}):P.createElement(he.Dropdown,null,e.searchParams.map((e=>P.createElement(he.Item,{key:e.code},ga(e.code)))))}function ka(e){switch(e.searchParam.type){case"date":return P.createElement(ja,Object.assign({},e));case"number":case"quantity":return P.createElement(wa,Object.assign({},e));case"reference":return P.createElement(Sa,Object.assign({},e));case"string":case"token":case"uri":return P.createElement(Aa,Object.assign({},e));default:return P.createElement(P.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function ja(e){const{searchParam:t}=e,n=t.code;return P.createElement(he.Dropdown,null,P.createElement(he.Item,{icon:P.createElement($e,{size:14}),onClick:()=>e.onSort(t,!1)},"Sort Oldest to Newest"),P.createElement(he.Item,{icon:P.createElement(ze,{size:14}),onClick:()=>e.onSort(t,!0)},"Sort Newest to Oldest"),P.createElement(he.Divider,null),P.createElement(he.Item,{icon:P.createElement(Le,{size:14}),onClick:()=>e.onPrompt(t,k.EQUALS)},"Equals..."),P.createElement(he.Item,{icon:P.createElement(Fe,{size:14}),onClick:()=>e.onPrompt(t,k.NOT_EQUALS)},"Does not equal..."),P.createElement(he.Divider,null),P.createElement(he.Item,{icon:P.createElement(Me,{size:14}),onClick:()=>e.onPrompt(t,k.ENDS_BEFORE)},"Before..."),P.createElement(he.Item,{icon:P.createElement(Ue,{size:14}),onClick:()=>e.onPrompt(t,k.STARTS_AFTER)},"After..."),P.createElement(he.Item,{icon:P.createElement(_e,{size:14}),onClick:()=>e.onPrompt(t,k.EQUALS)},"Between..."),P.createElement(he.Divider,null),P.createElement(he.Item,{icon:P.createElement(qe,{size:14}),onClick:()=>e.onChange(Jr(e.search,n))},"Tomorrow"),P.createElement(he.Item,{icon:P.createElement(qe,{size:14}),onClick:()=>e.onChange(Gr(e.search,n))},"Today"),P.createElement(he.Item,{icon:P.createElement(qe,{size:14}),onClick:()=>e.onChange(Br(e.search,n))},"Yesterday"),P.createElement(he.Divider,null),P.createElement(he.Item,{icon:P.createElement(qe,{size:14}),onClick:()=>e.onChange(ea(e.search,n))},"Next Month"),P.createElement(he.Item,{icon:P.createElement(qe,{size:14}),onClick:()=>e.onChange(Zr(e.search,n))},"This Month"),P.createElement(he.Item,{icon:P.createElement(qe,{size:14}),onClick:()=>e.onChange(Xr(e.search,n))},"Last Month"),P.createElement(he.Divider,null),P.createElement(he.Item,{icon:P.createElement(qe,{size:14}),onClick:()=>e.onChange(na(e.search,n))},"Year to date"),P.createElement(Da,Object.assign({},e)))}function wa(e){const{searchParam:t}=e;return P.createElement(he.Dropdown,null,P.createElement(he.Item,{icon:P.createElement($e,{size:14}),onClick:()=>e.onSort(t,!1)},"Sort Smallest to Largest"),P.createElement(he.Item,{icon:P.createElement(ze,{size:14}),onClick:()=>e.onSort(t,!0)},"Sort Largest to Smallest"),P.createElement(he.Divider,null),P.createElement(he.Item,{icon:P.createElement(Le,{size:14}),onClick:()=>e.onPrompt(t,k.EQUALS)},"Equals..."),P.createElement(he.Item,{icon:P.createElement(Fe,{size:14}),onClick:()=>e.onPrompt(t,k.NOT_EQUALS)},"Does not equal..."),P.createElement(he.Divider,null),P.createElement(he.Item,{icon:P.createElement(Ue,{size:14}),onClick:()=>e.onPrompt(t,k.GREATER_THAN)},"Greater than..."),P.createElement(he.Item,{icon:P.createElement(We,{size:14}),onClick:()=>e.onPrompt(t,k.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),P.createElement(he.Item,{icon:P.createElement(Me,{size:14}),onClick:()=>e.onPrompt(t,k.LESS_THAN)},"Less than..."),P.createElement(he.Item,{icon:P.createElement(We,{size:14}),onClick:()=>e.onPrompt(t,k.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),P.createElement(Da,Object.assign({},e)))}function Sa(e){const{searchParam:t}=e;return P.createElement(he.Dropdown,null,P.createElement(he.Item,{icon:P.createElement(Le,{size:14}),onClick:()=>e.onPrompt(t,k.EQUALS)},"Equals..."),P.createElement(he.Item,{icon:P.createElement(Fe,{size:14}),onClick:()=>e.onPrompt(t,k.NOT)},"Does not equal..."),P.createElement(Da,Object.assign({},e)))}function Aa(e){const{searchParam:t}=e;return P.createElement(he.Dropdown,null,P.createElement(he.Item,{icon:P.createElement($e,{size:14}),onClick:()=>e.onSort(t,!1)},"Sort A to Z"),P.createElement(he.Item,{icon:P.createElement(ze,{size:14}),onClick:()=>e.onSort(t,!0)},"Sort Z to A"),P.createElement(he.Divider,null),P.createElement(he.Item,{icon:P.createElement(Le,{size:14}),onClick:()=>e.onPrompt(t,k.EQUALS)},"Equals..."),P.createElement(he.Item,{icon:P.createElement(Fe,{size:14}),onClick:()=>e.onPrompt(t,k.NOT)},"Does not equal..."),P.createElement(he.Divider,null),P.createElement(he.Item,{icon:P.createElement(Ke,{size:14}),onClick:()=>e.onPrompt(t,k.CONTAINS)},"Contains..."),P.createElement(he.Item,{icon:P.createElement(Qe,{size:14}),onClick:()=>e.onPrompt(t,k.EQUALS)},"Does not contain..."),P.createElement(Da,Object.assign({},e)))}function Da(e){const{searchParam:t}=e,n=t.code;return P.createElement(P.Fragment,null,P.createElement(he.Divider,null),P.createElement(he.Item,{icon:P.createElement(He,{size:14}),onClick:()=>e.onChange(la(e.search,n))},"Missing"),P.createElement(he.Item,{icon:P.createElement(Be,{size:14}),onClick:()=>e.onChange(la(e.search,n,!1))},"Not missing"),P.createElement(he.Divider,null),P.createElement(he.Item,{icon:P.createElement(Ge,{size:14}),onClick:()=>e.onClear(t)},"Clear filters"))}function Ia(e,t){var n;if("_lastUpdated"===t)return{name:"_lastUpdated",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_lastUpdated",name:"_lastUpdated",type:"date",expression:"Resource.meta.lastUpdated"}]};if("meta.versionId"===t)return{name:"meta.versionId",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_versionId",name:"_versionId",type:"token",expression:"Resource.meta.versionId"}]};const r=g.types[e],a=r.properties[t],l=null===(n=r.searchParams)||void 0===n?void 0:n[t.toLowerCase()];if(a&&l)return{name:t,elementDefinition:a,searchParams:[l]};if(a){let n;if(r.searchParams){const a=`${e}.${t.replaceAll("[x]","")}`;n=Object.values(r.searchParams).filter((e=>{var t;return null===(t=e.expression)||void 0===t?void 0:t.includes(a)})),0===n.length&&(n=void 0)}return{name:t,elementDefinition:a,searchParams:n}}if(l){return{name:t,elementDefinition:S(e,l).elementDefinition,searchParams:[l]}}return{name:t}}class Va extends Event{constructor(e){super("change"),this.definition=e}}class Ra extends Event{constructor(e){super("load"),this.response=e}}class Pa extends Event{constructor(e,t){super("click"),this.resource=e,this.browserEvent=t}}const Na=G((e=>({root:{maxWidth:"100%",overflow:"auto",textAlign:"left",marginBottom:"20px"},table:{cursor:"pointer"},tr:{"&:hover":{backgroundColor:"dark"===e.colorScheme?e.colors.dark[7]:e.colors.gray[0]}},th:{padding:"0 !important"},control:{width:"100%",padding:`${e.spacing.xs}px ${e.spacing.md}px`,"&:hover":{backgroundColor:"dark"===e.colorScheme?e.colors.dark[6]:e.colors.gray[0]}},icon:{width:21,height:21,borderRadius:21}})));function $a(e){var t,n,r;const{classes:a}=Na(),l=gt(),[o,i]=N(!1),[c,s]=N(),{search:u,onLoad:d}=e,[m,p]=N({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,filterDialogVisible:!1}),v=$(m);function h(t){e.onChange&&e.onChange(new Va(t))}function f(t,n){bt(t.target)||2!==t.button&&(yt(t),1!==t.button&&e.onClick&&e.onClick(new Pa(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new Pa(n,t)))}v.current=m,L((()=>{s(void 0),l.search(u.resourceType,D(Object.assign(Object.assign({},u),{total:"accurate",fields:void 0}))).then((e=>{p(Object.assign(Object.assign({},v.current),{searchResponse:e})),d&&d(new Ra(e))})).catch((e=>{p(Object.assign(Object.assign({},v.current),{searchResponse:void 0})),s(e)}))}),[l,u,d]),L((()=>{i(!1),l.requestSchema(e.search.resourceType).then((()=>i(!0))).catch(console.log)}),[l,e.search.resourceType]);if(!(o&&(null===(t=null==g?void 0:g.types)||void 0===t?void 0:t[e.search.resourceType])))return P.createElement(Z,{style:{width:"100%",height:"100%"}},P.createElement(pe,null));const E=e.checkboxesEnabled,y=function(e){const t=e.resourceType,n=[];for(const r of e.fields||["id","_lastUpdated"])n.push(Ia(t,r));return n}(u),b=u.resourceType,C=m.searchResponse,x=null==C?void 0:C.entry,T=null==x?void 0:x.map((e=>e.resource)),O="subtle",k="gray",w=16,S=window.innerWidth<768;return P.createElement("div",{className:a.root,"data-testid":"search-control"},!e.hideToolbar&&P.createElement(q,{position:"apart",mb:"xl"},P.createElement(q,{spacing:2},P.createElement(B,{compact:!0,variant:O,color:k,leftIcon:P.createElement(Je,{size:w}),onClick:()=>p(Object.assign(Object.assign({},v.current),{fieldEditorVisible:!0}))},"Fields"),P.createElement(B,{compact:!0,variant:O,color:k,leftIcon:P.createElement(Ye,{size:w}),onClick:()=>p(Object.assign(Object.assign({},v.current),{filterEditorVisible:!0}))},"Filters"),e.onNew&&P.createElement(B,{compact:!0,variant:O,color:k,leftIcon:P.createElement(Xe,{size:w}),onClick:e.onNew},"New..."),!S&&e.onExport&&P.createElement(B,{compact:!0,variant:O,color:k,leftIcon:P.createElement(Ze,{size:w}),onClick:e.onExport},"Export..."),!S&&e.onDelete&&P.createElement(B,{compact:!0,variant:O,color:k,leftIcon:P.createElement(Ne,{size:w}),onClick:()=>e.onDelete(Object.keys(m.selected))},"Delete..."),!S&&e.onBulk&&P.createElement(B,{compact:!0,variant:O,color:k,leftIcon:P.createElement(et,{size:w}),onClick:()=>e.onBulk(Object.keys(m.selected))},"Bulk...")),C&&P.createElement(ne,{size:"xs",color:"dimmed"},function(e,t){var n;return Math.min(t,(null!==(n=e.offset)&&void 0!==n?n:0)+1)}(u,C.total),"-",function(e,t){var n,r;return Math.min(t,((null!==(n=e.offset)&&void 0!==n?n:0)+1)*(null!==(r=e.count)&&void 0!==r?r:j))}(u,C.total)," of"," ",null===(n=C.total)||void 0===n?void 0:n.toLocaleString())),P.createElement(Ee,{className:a.table},P.createElement("thead",null,P.createElement("tr",null,E&&P.createElement("th",null,P.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:function(){var e,t;const n=v.current;if(!(null===(e=n.searchResponse)||void 0===e?void 0:e.entry)||0===n.searchResponse.entry.length)return!1;for(const e of n.searchResponse.entry)if((null===(t=e.resource)||void 0===t?void 0:t.id)&&!n.selected[e.resource.id])return!1;return!0}(),onChange:e=>function(e){var t;e.stopPropagation();const n=e.target.checked,r={},a=null===(t=v.current)||void 0===t?void 0:t.searchResponse;n&&(null==a?void 0:a.entry)&&a.entry.forEach((e=>{var t;(null===(t=e.resource)||void 0===t?void 0:t.id)&&(r[e.resource.id]=!0)})),p(Object.assign(Object.assign({},v.current),{selected:r}))}(e)})),y.map((t=>P.createElement("th",{key:t.name},P.createElement(he,{shadow:"md",width:240,position:"bottom-end"},P.createElement(he.Target,null,P.createElement(ie,{className:a.control},P.createElement(q,{position:"apart",noWrap:!0},P.createElement(ne,{weight:500,size:"sm"},ga(t.name)),P.createElement(Z,{className:a.icon},P.createElement(tt,{size:14,stroke:1.5}))))),P.createElement(Oa,{search:e.search,searchParams:t.searchParams,onPrompt:(e,t)=>{p(Object.assign(Object.assign({},v.current),{filterDialogVisible:!0,filterDialogSearchParam:e,filterDialogFilter:t}))},onChange:e=>{h(e)}})))))),!e.hideFilters&&P.createElement("tr",null,E&&P.createElement("th",null),y.map((t=>P.createElement("th",{key:t.name},t.searchParams&&P.createElement(La,{resourceType:b,searchParams:t.searchParams,filters:e.search.filters})))))),P.createElement("tbody",null,null==T?void 0:T.map((e=>e&&P.createElement("tr",{key:e.id,className:a.tr,"data-testid":"search-control-row",onClick:t=>f(t,e),onAuxClick:t=>f(t,e)},E&&P.createElement("td",null,P.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!m.selected[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,r=Object.assign({},v.current.selected);n?r[t]=!0:delete r[t],p(Object.assign(Object.assign({},v.current),{selected:r}))}(t,e.id)})),y.map((t=>P.createElement("td",{key:t.name},va(e,t))))))))),0===(null==T?void 0:T.length)&&P.createElement(St,null,P.createElement(Z,null,P.createElement(ne,{size:"xl",color:"dimmed"},"No results"))),void 0!==(null==C?void 0:C.total)&&C.total>0&&P.createElement(Z,{m:"md",p:"md"},P.createElement(ye,{page:Fa(u),total:Ma(u,C.total),onChange:e=>h(ia(u,e)),getItemAriaLabel:e=>{switch(e){case"prev":return"Previous page";case"next":return"Next page";default:return}}})),c&&P.createElement("div",{"data-testid":"search-error"},P.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(c,void 0,2))),P.createElement(ha,{search:e.search,visible:v.current.fieldEditorVisible,onOk:e=>{h(e),p(Object.assign(Object.assign({},v.current),{fieldEditorVisible:!1}))},onCancel:()=>{p(Object.assign(Object.assign({},v.current),{fieldEditorVisible:!1}))}}),P.createElement(ba,{search:e.search,visible:v.current.filterEditorVisible,onOk:e=>{h(e),p(Object.assign(Object.assign({},v.current),{filterEditorVisible:!1}))},onCancel:()=>{p(Object.assign(Object.assign({},v.current),{filterEditorVisible:!1}))}}),P.createElement(Ta,{key:null===(r=m.filterDialogSearchParam)||void 0===r?void 0:r.code,visible:v.current.filterDialogVisible,title:"Input",resourceType:b,searchParam:m.filterDialogSearchParam,filter:m.filterDialogFilter,defaultValue:"",onOk:t=>{h(Kr(e.search,t.code,t.operator,t.value)),p(Object.assign(Object.assign({},v.current),{filterDialogVisible:!1}))},onCancel:()=>{p(Object.assign(Object.assign({},v.current),{filterDialogVisible:!1}))}}))}const za=P.memo($a);function La(e){var t;const n=(null!==(t=e.filters)&&void 0!==t?t:[]).filter((t=>e.searchParams.find((e=>e.code===t.code))));return 0===n.length?P.createElement("span",null,"no filters"):P.createElement(P.Fragment,null,n.map(((t,r)=>P.createElement("div",{key:`filter-${r}-${n.length}`},pa(t.operator)," ",P.createElement(fa,{resourceType:e.resourceType,filter:t})))))}function Fa(e){return Math.floor((e.offset||0)/(e.count||j))+1}function Ma(e,t){const n=e.count||j;return Math.ceil(t/n)}function Ua(e){var t,n,r,a,l;const o=gt(),[i,c]=N(),[s,u]=N(),{query:d,fields:m}=e,[p,g]=N(),[v,h]=N({}),f=$();f.current=p;const E=$({});function y(t,n){bt(t.target)||(yt(t),1!==t.button&&e.onClick&&e.onClick(new Pa(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new Pa(n,t)))}E.current=v,L((()=>{u(void 0),o.graphql(d).then(g).catch(u)}),[o,d]),L((()=>{o.requestSchema(e.resourceType).then((e=>{c(Object.assign({},e))})).catch(console.log)}),[o,e.resourceType]);if(!(null===(t=null==i?void 0:i.types)||void 0===t?void 0:t[e.resourceType]))return P.createElement(pe,null);const b=e.checkboxesEnabled;return P.createElement("div",{onContextMenu:e=>yt(e),"data-testid":"search-control"},P.createElement(Ee,null,P.createElement("thead",null,P.createElement("tr",null,b&&P.createElement("th",null,P.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:function(){var e,t;const n=null===(t=null===(e=f.current)||void 0===e?void 0:e.data)||void 0===t?void 0:t.ResourceList;if(!n||0===n.length)return!1;for(const e of n)if((null==e?void 0:e.id)&&!E.current[e.id])return!1;return!0}(),onChange:e=>function(e){var t,n;e.stopPropagation();const r=e.target.checked,a={},l=null===(n=null===(t=f.current)||void 0===t?void 0:t.data)||void 0===n?void 0:n.ResourceList;r&&l&&l.forEach((e=>{(null==e?void 0:e.id)&&(a[e.id]=!0)})),h(a)}(e)})),m.map((e=>P.createElement("th",{key:e.name},e.name))))),P.createElement("tbody",null,null===(r=null===(n=null==p?void 0:p.data)||void 0===n?void 0:n.ResourceList)||void 0===r?void 0:r.map((e=>e&&P.createElement("tr",{key:e.id,"data-testid":"search-control-row",onClick:t=>y(t,e),onAuxClick:t=>y(t,e)},b&&P.createElement("td",null,P.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!v[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,r=Object.assign({},E.current);n?r[t]=!0:delete r[t],h(r)}(t,e.id)})),m.map((t=>P.createElement("td",{key:t.name},P.createElement(Fr,{propertyType:t.propertyType,path:t.fhirPath,resource:e}))))))))),0===(null===(l=null===(a=null==p?void 0:p.data)||void 0===a?void 0:a.ResourceList)||void 0===l?void 0:l.length)&&P.createElement("div",{"data-testid":"empty-search"},"No results"),s&&P.createElement("div",{"data-testid":"search-error"},P.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(s,void 0,2))),e.onBulk&&P.createElement(B,{onClick:()=>e.onBulk(Object.keys(E.current))},"Bulk..."))}const _a=P.memo(Ua),qa=["$/_history","Communication?subject=$","Device?patient=$","DeviceRequest?patient=$","DiagnosticReport?subject=$","Media?subject=$","ServiceRequest?subject=$"];function Wa(e){return P.createElement(Sr,{value:e.patient,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:qa.map((t=>({request:{method:"GET",url:t.replaceAll("$",T(e))}})))}),createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",subject:t(e),sender:t(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",subject:t(e),operator:t(n),issued:(new Date).toISOString(),content:r})})}const Ka=G((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 Qa(e){const t=gt(),n=xn(e.value),[r,a]=N(void 0),[l,o]=N(),[i,c]=N(),[s,u]=N();function d(){c(void 0)}function m(){o(void 0)}const p=$();if(p.current=s,L((()=>{t.requestSchema("PlanDefinition").then(a).catch(console.log)}),[t]),L((()=>{var e;return u((e=null!=n?n:{resourceType:"PlanDefinition"},Object.assign(Object.assign({},e),{action:rl(e.action)}))),document.addEventListener("mouseover",d),document.addEventListener("click",m),()=>{document.removeEventListener("mouseover",d),document.removeEventListener("click",m)}}),[n]),!r||!s)return null;function g(e,t){u(Object.assign(Object.assign({},p.current),{[e]:t}))}return P.createElement("div",null,P.createElement($t,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(s)},P.createElement(K,{label:"Plan Title",defaultValue:s.title,onChange:e=>g("title",e.currentTarget.value)}),P.createElement(Ha,{actions:s.action||[],selectedKey:l,setSelectedKey:o,hoverKey:i,setHoverKey:c,onChange:e=>g("action",e)}),P.createElement(B,{type:"submit"},"Save")))}function Ha(e){const{classes:t}=Ka(),n=$();function r(t){e.onChange(n.current.map((e=>e.id===t.id?t:e)))}return n.current=e.actions,P.createElement("div",{className:t.section},e.actions.map((t=>P.createElement("div",{key:t.id},P.createElement(Ba,{action:t,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:r,onRemove:()=>{return r=t,void e.onChange(n.current.filter((e=>e!==r)));var r}})))),P.createElement("div",{className:t.bottomActions},P.createElement(Q,{href:"#",onClick:t=>{var r;yt(t),r={id:nl()},e.onChange([...n.current,r]),e.setSelectedKey(r.id)}},"Add action")))}function Ba(e){const{classes:t,cx:n}=Ka(),{action:r}=e,a=function(e){var t,n,r;if(null===(t=e.definitionCanonical)||void 0===t?void 0:t.startsWith("Schedule"))return"appointment";if(null===(n=e.definitionCanonical)||void 0===n?void 0:n.startsWith("Questionnaire/"))return"questionnaire";if(null===(r=e.definitionCanonical)||void 0===r?void 0:r.startsWith("ActivityDefinition/"))return"task";return}(r),l=e.selectedKey===e.action.id,o=e.hoverKey===e.action.id;const i=n(t.section,{[t.editing]:l,[t.hovering]:o&&!l});return P.createElement("div",{"data-testid":r.id,className:i,onClick:function(t){t.stopPropagation(),e.setSelectedKey(e.action.id)},onMouseOver:function(t){yt(t),e.setHoverKey(e.action.id)}},l?P.createElement(Ya,{action:r,actionType:a,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):P.createElement(Ja,{action:r,actionType:a}),P.createElement("div",{className:t.bottomActions},P.createElement(Q,{href:"#",onClick:t=>{t.preventDefault(),e.onRemove()}},"Remove")))}const Ga={path:"PlanDefinition.action.timing[x]",min:0,max:"1",type:[{code:"dateTime"},{code:"Period"},{code:"Range"},{code:"Timing"}]};function Ja(e){const{action:t,actionType:n}=e,[r,a]=el(t);return P.createElement("div",null,P.createElement("div",null,t.title||"Untitled"," ",n&&`(${n})`),t.definitionCanonical&&P.createElement("div",null,P.createElement(gn,{value:{reference:t.definitionCanonical}})),r&&P.createElement("div",null,P.createElement(hn,{property:Ga,propertyType:a,value:r})))}function Ya(e){const{action:t}=e,[n,r]=N(e.actionType);function a(n,r){e.onChange(Object.assign(Object.assign({},t),{[n]:r}))}return P.createElement(te,{spacing:"xl"},P.createElement(K,{name:`actionTitle-${t.id}`,label:"Title",defaultValue:t.title,onChange:e=>a("title",e.currentTarget.value)}),P.createElement(K,{name:`actionDescription-${t.id}`,label:"Description",defaultValue:t.description,onChange:e=>a("description",e.currentTarget.value)}),P.createElement(W,{label:"Type of Action",description:"The type of the action to be performed.",name:`actionType-${t.id}`,defaultValue:n,onChange:e=>r(e.currentTarget.value),data:["","appointment","lab","questionnaire","task"]}),t.action&&t.action.length>0&&P.createElement(Ha,{actions:t.action,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:e=>a("action",e)}),(()=>{switch(n){case"appointment":return P.createElement(Xa,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:t,onChange:e.onChange});case"lab":return P.createElement(Xa,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:t,onChange:e.onChange});case"questionnaire":return P.createElement(Xa,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:t,onChange:e.onChange});case"task":return P.createElement(Xa,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:t,onChange:e.onChange});default:return null}})(),P.createElement(bn,{title:"Timing",description:"When the action should take place."},P.createElement(Za,{name:"timing-"+t.id,action:t,onChange:e.onChange})))}function Xa(e){const{id:t,definitionCanonical:n}=e.action,r=(null==n?void 0:n.startsWith(e.resourceType+"/"))?{reference:n}:void 0;return P.createElement(Kn,{name:t,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:t=>{t?e.onChange(Object.assign(Object.assign({},e.action),{definitionCanonical:T(t)})):e.onChange(Object.assign(Object.assign({},e.action),{definitionCanonical:void 0}))}})}function Za(e){const t=e.action,n="timing",[r,a]=el(t);return P.createElement(Xn,{property:Ga,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(r,a)=>{e.onChange(On(t,n,null!=a?a:n,Ga,r))}})}function el(e){return fn({type:"PlanDefinitionAction",value:e},"timing")}let tl=1;function nl(e){if(e){if(e.startsWith("id-")){const t=parseInt(e.substring(3));isNaN(t)||(tl=Math.max(tl,t+1))}return e}return"id-"+tl++}function rl(e){if(e)return e.map((e=>Object.assign(Object.assign({},e),{id:nl(e.id),action:rl(e.action)})))}var al;function ll(e){return"choice"===e.type||"open-choice"===e.type}function ol(e){const n=gt(),r=n.getProfile(),[a,l]=N(),o=xn(e.questionnaire),[i,c]=N(),[s,u]=N({});return L((()=>{n.requestSchema("Questionnaire").then((()=>n.requestSchema("QuestionnaireResponse"))).then(l).catch(console.log)}),[n]),L((()=>{c(o?function(e){const t={resourceType:"QuestionnaireResponse",questionnaire:T(e),item:ml(e.item)};return t}(o):void 0)}),[o]),a&&o?P.createElement($t,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&i&&e.onSubmit(Object.assign(Object.assign({},i),{questionnaire:T(o),subject:e.subject,source:t(r),authored:(new Date).toISOString()}))}},o.title&&P.createElement(ee,null,o.title),o.item&&P.createElement(il,{items:o.item,answers:s,onChange:function(e){const t={resourceType:"QuestionnaireResponse",item:e};c(t),u(V(t))}}),P.createElement(q,{position:"right",mt:"xl"},P.createElement(B,{type:"submit"},e.submitButtonText||"OK"))):null}function il(e){const[t,n]=N(ml(e.items));function r(r,a){const l=t.slice();l[r]=a,n(l),e.onChange(l)}return P.createElement(te,null,e.items.map(((t,n)=>{if(!vl(t,e.answers))return null;if(t.type===al.display)return P.createElement("p",{key:t.linkId},t.text);if(t.type===al.group)return P.createElement(cl,{key:t.linkId,item:t,answers:e.answers,onChange:e=>r(n,e)});if(t.type===al.boolean){const e=t.initial&&t.initial.length>0?t.initial[0]:void 0;return P.createElement(yn,{key:t.linkId,title:t.text,htmlFor:t.linkId},P.createElement(oe,{id:t.linkId,name:t.linkId,defaultChecked:null==e?void 0:e.valueBoolean,onChange:e=>r(n,{linkId:t.linkId,text:t.text,answer:[{valueBoolean:e.currentTarget.checked}]})}))}return P.createElement(bn,{key:t.linkId,htmlFor:t.linkId,title:t.text||""},P.createElement(cl,{item:t,answers:e.answers,onChange:e=>r(n,e)}))})))}function cl(e){const t=e.item,n=t.type;if(!n)return null;const r=t.linkId;if(!r)return null;const a=t.initial&&t.initial.length>0?t.initial[0]:void 0;function l(n){e.onChange({linkId:t.linkId,text:t.text,answer:[n]})}switch(n){case al.group:return P.createElement("div",null,P.createElement("h3",null,t.text),t.item&&P.createElement(il,{items:t.item,answers:e.answers,onChange:function(n){e.onChange({linkId:t.linkId,text:t.text,item:n})}}));case al.boolean:return P.createElement(oe,{id:r,name:r,defaultChecked:null==a?void 0:a.valueBoolean,onChange:e=>l({valueBoolean:e.currentTarget.checked})});case al.decimal:return P.createElement(K,{type:"number",step:"any",id:r,name:r,defaultValue:null==a?void 0:a.valueDecimal,onChange:e=>l({valueDecimal:e.currentTarget.valueAsNumber})});case al.integer:return P.createElement(K,{type:"number",step:1,id:r,name:r,defaultValue:null==a?void 0:a.valueInteger,onChange:e=>l({valueInteger:e.currentTarget.valueAsNumber})});case al.date:return P.createElement(K,{type:"date",id:r,name:r,defaultValue:null==a?void 0:a.valueDate,onChange:e=>l({valueDate:e.currentTarget.value})});case al.dateTime:return P.createElement(Vn,{name:r,defaultValue:null==a?void 0:a.valueDateTime,onChange:e=>l({valueDateTime:e})});case al.time:return P.createElement(K,{type:"time",id:r,name:r,defaultValue:null==a?void 0:a.valueTime,onChange:e=>l({valueTime:e.currentTarget.value})});case al.string:case al.url:return P.createElement(K,{id:r,name:r,defaultValue:null==a?void 0:a.valueString,onChange:e=>l({valueString:e.currentTarget.value})});case al.text:return P.createElement(ve,{id:r,name:r,defaultValue:null==a?void 0:a.valueString,onChange:e=>l({valueString:e.currentTarget.value})});case al.attachment:return P.createElement(Ot,{name:r,defaultValue:null==a?void 0:a.valueAttachment,onChange:e=>l({valueAttachment:e})});case al.reference:return P.createElement(Hn,{name:r,defaultValue:null==a?void 0:a.valueReference,onChange:e=>l({valueReference:e})});case al.quantity:return P.createElement(Fn,{name:r,defaultValue:null==a?void 0:a.valueQuantity,onChange:e=>l({valueQuantity:e})});case al.choice:case al.openChoice:return function(e){var t;return!!(null===(t=e.extension)||void 0===t?void 0:t.some((e=>{var t,n,r;return"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"===e.url&&"drop-down"===(null===(r=null===(n=null===(t=e.valueCodeableConcept)||void 0===t?void 0:t.coding)||void 0===n?void 0:n[0])||void 0===r?void 0:r.code)})))}(t)?P.createElement(sl,{name:r,item:t,initial:a,onChangeAnswer:l}):P.createElement(dl,{name:r,item:t,initial:a,onChangeAnswer:l})}return null}function sl(e){const{name:t,item:n,initial:r}=e,a=p({type:"QuestionnaireItemInitial",value:r},"value"),l=[""];if(n.answerOption)for(const e of n.answerOption){const t=p({type:"QuestionnaireItemAnswerOption",value:e},"value");l.push(ul(t))}return P.createElement(W,{id:t,name:t,onChange:t=>{const r=t.currentTarget.selectedIndex;if(0===r)return void e.onChangeAnswer({});const a=n.answerOption[r-1],l=p({type:"QuestionnaireItemAnswerOption",value:a},"value"),o="value"+h(l.type);e.onChangeAnswer({[o]:l.value})},defaultValue:ul(a),data:l})}function ul(e){if(e)return"CodeableConcept"===e.type?e.value.coding[0].display:"Coding"===e.type?e.value.display:e.value.toString()}function dl(e){const{name:t,item:n,initial:r,onChangeAnswer:a}=e,l=g.types.QuestionnaireItemAnswerOption.properties["value[x]"],o=p({type:"QuestionnaireItemInitial",value:r},"value"),c=[];let s;if(n.answerOption)for(let e=0;e<n.answerOption.length;e++){const r=n.answerOption[e],a=`${t}-option-${e}`,l=p({type:"QuestionnaireItemAnswerOption",value:r},"value");o&&i(l)===i(o)&&(s=a),c.push([a,l])}return P.createElement(be.Group,{name:t,orientation:"vertical",defaultValue:s,onChange:e=>{const t=c.find((t=>t[0]===e));if(t){const e=t[1],n="value"+h(e.type);a({[n]:e.value})}}},c.map((([e,t])=>P.createElement(be,{key:e,id:e,value:e,label:P.createElement(hn,{property:l,propertyType:t.type,value:t.value})}))))}function ml(e){var t;return null!==(t=null==e?void 0:e.map(pl))&&void 0!==t?t:[]}function pl(e){var t,n;return{linkId:e.linkId,text:e.text,item:ml(e.item),answer:null!==(n=null===(t=e.initial)||void 0===t?void 0:t.map(gl))&&void 0!==n?n:[]}}function gl(e){return Object.assign({},e)}function vl(e,t){if(!e.enableWhen)return!0;const n=e.enableBehavior||"any";for(const r of e.enableWhen){const e=p({type:"QuestionnaireItemEnableWhen",value:r},"answer[x]"),a=p({type:"QuestionnaireResponseItemAnswer",value:t[r.question]},"value[x]"),l=I(e,a);if("any"===n&&l)return!0;if("all"===n&&!l)return!1}return"any"!==n}!function(e){e.group="group",e.display="display",e.question="question",e.boolean="boolean",e.decimal="decimal",e.integer="integer",e.date="date",e.dateTime="dateTime",e.time="time",e.string="string",e.text="text",e.url="url",e.choice="choice",e.openChoice="open-choice",e.attachment="attachment",e.reference="reference",e.quantity="quantity"}(al||(al={}));const hl=G((e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},questionBody:{maxWidth:600},topActions:{position:"absolute",right:4,top:1,padding:4,color:e.colors.gray[5],fontSize:e.fontSizes.xs},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},linkIdInput:{width:100,marginBottom:4},typeSelect:{width:100}})));function fl(e){const t=gt(),n=xn(e.questionnaire),[r,a]=N(),[l,o]=N(),[i,c]=N(),[s,u]=N();function d(){u(void 0)}function m(){c(void 0)}return L((()=>{t.requestSchema("Questionnaire").then(a).catch(console.log)}),[t]),L((()=>{var e;return o((e=null!=n?n:{resourceType:"Questionnaire"},Object.assign(Object.assign({},e),{id:e.id||Tl(),item:Ol(e.item)}))),document.addEventListener("mouseover",d),document.addEventListener("click",m),()=>{document.removeEventListener("mouseover",d),document.removeEventListener("click",m)}}),[n]),r&&l?P.createElement("div",null,P.createElement($t,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(l)},P.createElement(El,{item:l,selectedKey:i,setSelectedKey:c,hoverKey:s,setHoverKey:u,onChange:o}),P.createElement(B,{type:"submit"},"Save"))):null}function El(e){var t;const{classes:n,cx:r}=hl(),a=e.item,l=e.item,o="resourceType"in e.item,i=o||l.type===al.group,c=null!==(t=l.linkId)&&void 0!==t?t:"[untitled]",s=e.selectedKey===e.item.id,u=e.hoverKey===e.item.id,d=$();function m(t){var n;const r=d.current;e.onChange(Object.assign(Object.assign({},r),{item:null===(n=r.item)||void 0===n?void 0:n.map((e=>e.id===t.id?t:e))}))}function p(t){var n,r;e.onChange(Object.assign(Object.assign({},e.item),{item:[...null!==(r=null===(n=e.item)||void 0===n?void 0:n.item)&&void 0!==r?r:[],t]}))}function g(t,n){e.onChange(Object.assign(Object.assign({},d.current),{[t]:n}))}d.current=e.item;const v=r(n.section,{[n.editing]:s,[n.hovering]:u&&!s});return P.createElement("div",{"data-testid":l.linkId,className:v,onClick:function(t){yt(t),e.setSelectedKey(e.item.id)},onMouseOver:function(t){yt(t),e.setHoverKey(e.item.id)}},P.createElement("div",{className:n.questionBody},s?P.createElement(P.Fragment,null,o&&P.createElement(K,{size:"xl",defaultValue:a.title,onChange:e=>g("title",e.currentTarget.value)}),!o&&P.createElement(ve,{autosize:!0,minRows:2,defaultValue:l.text,onChange:e=>g("text",e.currentTarget.value)}),ll(l)&&P.createElement(yl,{options:l.answerOption,onChange:e=>g("answerOption",e)})):P.createElement(P.Fragment,null,a.title&&P.createElement(ee,null,a.title),l.text&&P.createElement("div",null,l.text),!i&&P.createElement(cl,{item:l,answers:{},onChange:()=>{}}))),l.item&&l.item.map((t=>P.createElement("div",{key:t.id},P.createElement(El,{item:t,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:m,onRemove:()=>function(t){var n,r;e.onChange(Object.assign(Object.assign({},e.item),{item:null===(r=null===(n=e.item)||void 0===n?void 0:n.item)||void 0===r?void 0:r.filter((e=>e!==t))}))}(t)})))),!i&&P.createElement("div",{className:n.topActions},s?P.createElement(P.Fragment,null,P.createElement(K,{size:"xs",className:n.linkIdInput,defaultValue:l.linkId,onChange:e=>g("linkId",e.currentTarget.value)}),!i&&P.createElement(W,{size:"xs",className:n.typeSelect,defaultValue:l.type,onChange:e=>g("type",e.currentTarget.value),data:[{value:"display",label:"Display"},{value:"boolean",label:"Boolean"},{value:"decimal",label:"Decimal"},{value:"integer",label:"Integer"},{value:"date",label:"Date"},{value:"dateTime",label:"Date/Time"},{value:"time",label:"Time"},{value:"string",label:"String"},{value:"text",label:"Text"},{value:"url",label:"URL"},{value:"choice",label:"Choice"},{value:"open-choice",label:"Open Choice"},{value:"attachment",label:"Attachment"},{value:"reference",label:"Reference"},{value:"quantity",label:"Quantity"}]})):P.createElement("div",null,c)),P.createElement("div",{className:n.bottomActions},i&&P.createElement(P.Fragment,null,P.createElement(Q,{href:"#",onClick:e=>{e.preventDefault(),p({id:Tl(),linkId:xl("q"),type:"string",text:"Question"})}},"Add item"),P.createElement(Q,{href:"#",onClick:e=>{e.preventDefault(),p({id:Tl(),linkId:xl("g"),type:"group",text:"Group"})}},"Add group")),s&&!o&&P.createElement(Q,{href:"#",onClick:t=>{t.preventDefault(),e.onRemove&&e.onRemove()}},"Remove")))}function yl(e){var t;const n=g.types.QuestionnaireItemAnswerOption.properties["value[x]"],r=null!==(t=e.options)&&void 0!==t?t:[];return P.createElement("div",null,r.map((t=>{const[a,l]=fn({type:"QuestionnaireItemAnswerOption",value:t},"value");return P.createElement("div",{key:t.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},P.createElement("div",null,P.createElement(Xn,{key:t.id,name:"value[x]",property:n,defaultPropertyType:l,defaultValue:a,onChange:(n,a)=>{const l=[...r],o=l.findIndex((e=>e.id===t.id));l[o]={id:t.id,[a]:n},e.onChange(l)}})),P.createElement("div",null,P.createElement(Q,{href:"#",onClick:n=>{yt(n),e.onChange(r.filter((e=>e.id!==t.id)))}},"Remove")))})),P.createElement(Q,{href:"#",onClick:t=>{yt(t),e.onChange([...r,{id:Tl()}])}},"Add choice"))}let bl=1,Cl=1;function xl(e){return e+bl++}function Tl(){return"id-"+Cl++}function Ol(e){if(e)return e.forEach((e=>{var t,n;(null===(t=e.id)||void 0===t?void 0:t.match(/^id-\d+$/))&&(Cl=Math.max(Cl,parseInt(e.id.substring(3))+1)),(null===(n=e.linkId)||void 0===n?void 0:n.match(/^q\d+$/))&&(bl=Math.max(bl,parseInt(e.linkId.substring(1))+1))})),e.map((e=>Object.assign(Object.assign({},e),{id:e.id||Tl(),item:Ol(e.item),answerOption:kl(e.answerOption)})))}function kl(e){if(e)return e.map((e=>Object.assign(Object.assign({},e),{id:e.id||Tl()})))}const jl=G((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"}}))),wl=["gender","age","gestationalAge","context","appliesTo"],Sl={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function Al(e){const t=(e=Object.assign(Sl,e)).definition,[n,r]=N([]),[a,l]=N(1),[o,i]=N(1);return L((()=>{const e=function(e,t){const n=e.qualifiedInterval||[];let r=Math.max(...n.map((e=>{var t;const n=parseInt((null===(t=e.id)||void 0===t?void 0:t.substring(3))||"");return isNaN(n)?Number.NEGATIVE_INFINITY:n})))+1;Number.isFinite(r)||(r=1);return e=Object.assign(Object.assign({},e),{qualifiedInterval:n.map((e=>Object.assign(Object.assign({},e),{id:e.id||"id-"+r++})))}),t(r),e}(t,i);r(function(e,t){let n=1;const r={};for(const t of e){const e=Vl(t);e in r||(r[e]={id:"group-id-"+n++,filters:Object.fromEntries(wl.map((e=>[e,t[e]]))),intervals:[]}),r[e].intervals.push(t)}return t(n),Object.values(r)}(e.qualifiedInterval||[],l))}),[t]),P.createElement($t,{testid:"reference-range-editor",onSubmit:function(){const r=n.flatMap((e=>e.intervals)).filter((e=>!function(e){var t,n,r,a;return void 0===(null===(n=null===(t=e.range)||void 0===t?void 0:t.low)||void 0===n?void 0:n.value)&&void 0===(null===(a=null===(r=e.range)||void 0===r?void 0:r.high)||void 0===a?void 0:a.value)}(e)));e.onSubmit(Object.assign(Object.assign({},t),{qualifiedInterval:r}))}},P.createElement(te,null,n.map((e=>{var n,r;return P.createElement(Dl,{unit:(r=null===(n=t.quantitativeDetails)||void 0===n?void 0:n.unit,r&&(R(r,"http://unitsofmeasure.org")||r.text)),onChange:s,onAdd:u,onRemove:d,onRemoveGroup:c,key:`group-${e.id}`,intervalGroup:e})}))),P.createElement(H,{title:"Add Group",size:"sm",onClick:e=>{var t;yt(e),t={id:`group-id-${a}`,filters:{},intervals:[]},r((e=>[...e,t])),l((e=>e+1))}},P.createElement(je,null)),P.createElement(q,{position:"right"},P.createElement(B,{type:"submit"},"Save")));function c(e){r((t=>t.filter((t=>t.id!==e.id))))}function s(e,t){r((n=>{var r,a;const l=(n=[...n]).find((t=>t.id===e)),o=null===(r=null==l?void 0:l.intervals)||void 0===r?void 0:r.findIndex((e=>e.id===t.id));return void 0!==o&&(null===(a=null==l?void 0:l.intervals)||void 0===a?void 0:a[o])&&(l.intervals[o]=t),n}))}function u(e,t){void 0===t.id&&(t.id=`id-${o}`,i((e=>e+1))),r((n=>{const r=(n=[...n]).findIndex((t=>t.id===e));if(-1!=r){const e=Object.assign({},n[r]);t=Object.assign(Object.assign({},t),e.filters),e.intervals=[...e.intervals,t],n[r]=e}return n}))}function d(e,t){r((n=>{const r=(n=[...n]).find((t=>t.id===e));return r&&(r.intervals=r.intervals.filter((e=>e.id!==t.id))),n}))}}function Dl(e){const{intervalGroup:t,unit:n}=e,{classes:r}=jl();return P.createElement(St,{"data-testid":t.id,className:r.section},P.createElement(te,{spacing:"lg"},P.createElement(q,{position:"right"},P.createElement(H,{title:"Remove Group","data-testid":`remove-group-button-${t.id}`,key:`remove-group-button-${t.id}`,size:"sm",onClick:n=>{yt(n),e.onRemoveGroup(t)}},P.createElement(Te,null))),P.createElement(Il,{intervalGroup:t,onChange:e.onChange}),P.createElement(ae,null),t.intervals.map((n=>P.createElement(te,{key:`interval-${n.id}`,spacing:"xs"},P.createElement(q,null,P.createElement(K,{key:`condition-${n.id}`,"data-testid":`condition-${n.id}`,defaultValue:n.condition,label:"Condition: ",size:"sm",onChange:r=>{yt(r),e.onChange(t.id,Object.assign(Object.assign({},n),{condition:r.currentTarget.value.trim()}))}}),P.createElement(H,{title:"Remove Interval",size:"sm",key:`remove-interval-${n.id}`,"data-testid":`remove-interval-${n.id}`,onClick:r=>{yt(r),e.onRemove(t.id,n)}},P.createElement(Te,null))),P.createElement(Un,{onChange:r=>{e.onChange(t.id,Object.assign(Object.assign({},n),{range:r}))},key:`range-${n.id}`,name:`range-${n.id}`,defaultValue:n.range})))),P.createElement(H,{title:"Add Interval",size:"sm",onClick:r=>{yt(r),e.onAdd(t.id,{range:{low:{unit:n},high:{unit:n}}})}},P.createElement(je,null))))}function Il(e){var t,n;const{intervalGroup:r,onChange:a}=e;r.filters.age||(r.filters.age={});for(const e of["low","high"])(null===(t=r.filters.age[e])||void 0===t?void 0:t.unit)||(r.filters.age[e]=Object.assign(Object.assign({},r.filters.age[e]),{unit:"years",system:"http://unitsofmeasure.org"}));return P.createElement(te,{style:{maxWidth:"50%"}},P.createElement(q,null,P.createElement(W,{data:["","male","female"],label:"Gender:",defaultValue:r.filters.gender||"",onChange:e=>{var t;for(const n of r.intervals){let l=null===(t=e.currentTarget)||void 0===t?void 0:t.value;""===l&&(l=void 0),a(r.id,Object.assign(Object.assign({},n),{gender:l}))}}})),P.createElement(q,{spacing:"xs"},P.createElement(ne,{component:"label",htmlFor:`div-age-${r.id}`},"Age:"),P.createElement("div",{id:`div-age-${r.id}`},P.createElement(Un,{key:`age-${r.id}`,name:`age-${r.id}`,defaultValue:r.filters.age,onChange:e=>{for(const t of r.intervals)a(r.id,Object.assign(Object.assign({},t),{age:e}))}}))),P.createElement(W,{data:["","pre-puberty","follicular","midcycle","luteal","postmenopausal"],label:"Endocrine:",defaultValue:(null===(n=r.filters.context)||void 0===n?void 0:n.text)||"",onChange:e=>{var t;for(const n of r.intervals){let l=null===(t=e.currentTarget)||void 0===t?void 0:t.value;""===l?(l=void 0,a(r.id,Object.assign(Object.assign({},n),{context:void 0}))):a(r.id,Object.assign(Object.assign({},n),{context:{text:l,coding:[{code:l,system:"http://terminology.hl7.org/CodeSystem/referencerange-meaning"}]}}))}}}))}function Vl(e){var t,n;return[`gender=${e.gender}`,`age=${o(e.age)}`,`gestationalAge=${o(e.gestationalAge)}`,`context=${null===(t=e.context)||void 0===t?void 0:t.text}`,`appliesTo=${null===(n=e.appliesTo)||void 0===n?void 0:n.map((e=>e.text)).join("+")}`].join(":")}const Rl={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",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 Pl(e){return P.createElement(Ce,{color:Rl[e.status]},e.status)}function Nl(e){var t;const n=gt(),r=xn(e.value),[a,l]=N(!1),[o,i]=N();return L((()=>{r&&!a&&(n.executeBatch(function(e){var t;const n=[];if(e.action)for(const r of e.action)(null===(t=r.resource)||void 0===t?void 0:t.reference)&&n.push({request:{method:"GET",url:r.resource.reference}});return{resourceType:"Bundle",type:"batch",entry:n}}(r)).then(i).catch(console.log),l(!0))}),[n,r,a]),r&&o?P.createElement(xe,null,null===(t=r.action)||void 0===t?void 0:t.map(((t,n)=>{var r,a,l,i,c,s;const u=t.resource&&function(e){for(const t of null==o?void 0:o.entry)if(t.resource&&e.reference===T(t.resource))return t.resource;return}(t.resource),d=null===(a=null===(r=null==u?void 0:u.input)||void 0===r?void 0:r[0])||void 0===a?void 0:a.valueReference,p=null===(i=null===(l=null==u?void 0:u.output)||void 0===l?void 0:l[0])||void 0===i?void 0:i.valueReference;return P.createElement(P.Fragment,{key:`action-${n}`},P.createElement(xe.Col,{span:1,p:"md"},"completed"===(null==u?void 0:u.status)?P.createElement(nt,null):P.createElement(rt,{color:"gray"})),P.createElement(xe.Col,{span:9,p:"xs"},P.createElement(ne,{weight:500},t.title),t.description&&P.createElement("div",null,t.description),P.createElement("div",null,"Last edited by ",P.createElement(cr,{value:null===(c=null==u?void 0:u.meta)||void 0===c?void 0:c.author})," on ",m(null===(s=null==u?void 0:u.meta)||void 0===s?void 0:s.lastUpdated)),P.createElement("div",null,"Status: ",P.createElement(Pl,{status:(null==u?void 0:u.status)||"unknown"}))),P.createElement(xe.Col,{span:2,p:"md"},d&&!p&&P.createElement(B,{onClick:()=>e.onStart(u,d)},"Start"),d&&p&&P.createElement(B,{onClick:()=>e.onEdit(u,d,p)},"Edit")))}))):null}function $l(e,t){return function(e,t,n){const r=[];let a=e;a.snake&&(a=a.prev);for(;a&&a.prev&&a.prev.j>=0;){const e=a.i,l=a.j;a=a.prev;const o=a.i,i=a.j,c={position:o,lines:t.slice(o,e)},s={position:i,lines:n.slice(i,l)};let u;u=0===c.lines.length&&s.lines.length>0?"insert":c.lines.length>0&&0===s.lines.length?"delete":"change",r.push({original:c,revised:s,type:u}),a.snake&&(a=a.prev)}return r}(function(e,t){const n=e.length,r=t.length,a=n+r+1,l=1+2*a,o=l/2|0,i=new Array(l);i[o+1]={i:0,j:-1,prev:void 0,snake:!0};for(let l=0;l<a;l++){for(let a=-l;a<=l;a+=2){const c=o+a,s=c-1,u=i[c+1],d=i[s];let m,p=0;a===-l||a!==l&&d.i<u.i?(p=u.i,m=u):(p=d.i+1,m=d),i[s]=void 0;let g=p-a,v={i:p,j:g,prev:zl(m),snake:!1};for(;p<n&&g<r&&e[p]===t[g];)p++,g++;if(p>v.i&&(v={i:p,j:g,prev:v,snake:!0}),i[c]=v,p>=n&&g>=r)return i[c]}i[o+l-1]=void 0}return}(e,t),e,t)}function zl(e){return e&&!e.snake&&e.prev?e.prev:e}function Ll(e){const t=e.entry.filter((e=>!!e.resource)).map((e=>{var t;return{meta:null===(t=e.resource)||void 0===t?void 0:t.meta,lines:i(e.resource,!0).match(/[^\r\n]+/g)}})).sort(((e,t)=>e.meta.lastUpdated.localeCompare(t.meta.lastUpdated))),n=t[0].lines.map((e=>({id:t[0].meta.versionId,meta:t[0].meta,value:e,span:1})));return function(e,t){for(let n=1;n<t.length;n++){const r=$l(t[n-1].lines,t[n].lines);for(const a of r){const r=a.original.position,l=a.original.lines,o=a.revised.lines;if("delete"!==a.type&&"change"!==a.type||e.splice(r,l.length),"insert"===a.type||"change"===a.type)for(let l=0;l<a.revised.lines.length;l++)e.splice(r+l,0,{id:t[n].meta.versionId,meta:t[n].meta,value:o[l],span:1})}}}(n,t),function(e){let t=0;for(;t<e.length;){let n=t;for(;n<e.length&&e[n].id===e[t].id;)e[n].span=-1,n++;e[t].span=n-t,t=n}}(n),n}const Fl=G((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}px ${e.spacing.sm}px`,textAlign:"right"},line:{fontFamily:e.fontFamilyMonospace,fontSize:e.fontSizes.sm,padding:`${e.spacing.xs}px ${e.spacing.sm}px`},pre:{margin:0}})));function Ml(e){var t,n;const{classes:r}=Fl(),a=gt(),[l,o]=N(e.history);if(L((()=>{!e.history&&e.resourceType&&e.id&&a.readHistory(e.resourceType,e.id).then(o).catch(console.log)}),[a,e.history,e.resourceType,e.id]),!l)return P.createElement("div",null,"Loading...");const i=null===(n=null===(t=l.entry)||void 0===t?void 0:t[0])||void 0===n?void 0:n.resource,c=Ll(l);return P.createElement("div",{className:r.container},P.createElement("table",{className:r.root},P.createElement("tbody",null,c.map(((e,t)=>P.createElement("tr",{key:"row-"+t,className:e.span>0?r.startRow:r.normalRow},e.span>0&&P.createElement(P.Fragment,null,P.createElement("td",{className:r.author,rowSpan:e.span},P.createElement(sr,{value:e.meta.author,link:!0})),P.createElement("td",{className:r.dateTime,rowSpan:e.span},P.createElement(pn,{to:Ul(i,e.meta.versionId)},_l(e.meta.lastUpdated)))),P.createElement("td",{className:r.lineNumber},t+1),P.createElement("td",{className:r.line},P.createElement("pre",{className:r.pre},e.value))))))))}function Ul(e,t){return`/${e.resourceType}/${e.id}/_history/${t}`}function _l(e){const t=Math.floor((Date.now()-Date.parse(e))/1e3),n=Math.floor(t/31536e3);if(n>0)return ql(n,"year");const r=Math.floor(t/2592e3);if(r>0)return ql(r,"month");const a=Math.floor(t/86400);if(a>0)return ql(a,"day");const l=Math.floor(t/3600);if(l>0)return ql(l,"hour");const o=Math.floor(t/60);return o>0?ql(o,"minute"):ql(t,"second")}function ql(e,t){return`${e} ${1===e?t:t+"s"} ago`}const Wl=G((e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}})));function Kl(e){let t=e.original,n=e.revised;e.ignoreMeta&&(t=Object.assign(Object.assign({},t),{meta:void 0}),n=Object.assign(Object.assign({},n),{meta:void 0}));const r=$l(i(t,!0).match(/[^\r\n]+/g),i(n,!0).match(/[^\r\n]+/g));return P.createElement("pre",{style:{color:"gray"}},r.map(((e,t)=>P.createElement(Ql,{key:"delta"+t,delta:e}))))}function Ql(e){const{classes:t}=Wl();return P.createElement(P.Fragment,null,"...",P.createElement("br",null),e.delta.original.lines.length>0&&P.createElement("div",{className:t.removed},e.delta.original.lines.join("\n")),e.delta.revised.lines.length>0&&P.createElement("div",{className:t.added},e.delta.revised.lines.join("\n")),"...",P.createElement("br",null))}function Hl(e){var t;const n=gt(),[r,a]=N(e.history);return L((()=>{!e.history&&e.resourceType&&e.id&&n.readHistory(e.resourceType,e.id).then(a).catch(console.log)}),[n,e.history,e.resourceType,e.id]),r?P.createElement(Ee,{withBorder:!0,withColumnBorders:!0},P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"Author"),P.createElement("th",null,"Date"),P.createElement("th",null,"Version"))),P.createElement("tbody",null,null===(t=r.entry)||void 0===t?void 0:t.map(((e,t)=>P.createElement(Bl,{key:"entry-"+t,entry:e}))))):P.createElement("div",null,"Loading...")}function Bl(e){var t,n,r;const{response:a,resource:l}=e.entry;return l?P.createElement("tr",null,P.createElement("td",null,P.createElement(sr,{value:null===(t=l.meta)||void 0===t?void 0:t.author,link:!0})),P.createElement("td",null,m(null===(n=l.meta)||void 0===n?void 0:n.lastUpdated)),P.createElement("td",null,P.createElement(pn,{to:Gl(l)},null===(r=l.meta)||void 0===r?void 0:r.versionId))):P.createElement("tr",null,P.createElement("td",{colSpan:3},x(null==a?void 0:a.outcome)))}function Gl(e){var t;return`/${e.resourceType}/${e.id}/_history/${null===(t=e.meta)||void 0===t?void 0:t.versionId}`}const Jl=G((e=>({container:{display:"flex",minHeight:400},info:{minWidth:300,padding:20,borderRight:`1px solid ${e.colors.gray[3]}`},selection:{minWidth:300,padding:20}})));function Yl(e){var t;const{classes:n}=Jl(),r=gt(),a=xn(e.schedule),l=xn(e.questionnaire),[o,i]=N();$().current=o;const[c,s]=N(or()),[u,d]=N(),[m,p]=N(),[g,v]=N();if(L((()=>{a?(i([]),r.searchResources("Slot",new URLSearchParams([["_count",720..toString()],["schedule",T(a)],["start","gt"+Xl(c)],["start","lt"+Zl(c)]])).then(i).catch(console.log)):i(void 0)}),[r,a,c]),!a||!o||!l)return null;const h=null===(t=a.actor)||void 0===t?void 0:t[0];return P.createElement("div",{className:n.container,"data-testid":"scheduler"},P.createElement("div",{className:n.info},h&&P.createElement(qn,{value:h,size:"xl"}),h&&P.createElement(ne,{size:"xl",weight:500},P.createElement(cr,{value:h})),P.createElement("p",null,"1 hour"),u&&P.createElement("p",null,u.toLocaleDateString()),m&&P.createElement("p",null,to(new Date(m.start)))),P.createElement("div",{className:n.selection},!u&&P.createElement("div",null,P.createElement("h3",null,"Select date"),P.createElement(lr,{slots:o,onChangeMonth:s,onClick:d})),u&&!m&&P.createElement("div",null,P.createElement("h3",null,"Select time"),P.createElement(te,null,o.map((e=>{const t=new Date(e.start);return t.getTime()>u.getTime()&&t.getTime()<u.getTime()+864e5&&P.createElement("div",{key:e.id},P.createElement(B,{variant:"outline",style:{width:150},onClick:()=>p(e)},to(t)))})))),u&&m&&!g&&P.createElement(ol,{questionnaire:l,submitButtonText:"Next",onSubmit:v}),u&&m&&g&&P.createElement("div",null,P.createElement("h3",null,"You're all set!"),P.createElement("p",null,"Check your email for a calendar invite."))))}function Xl(e){return eo(e.getTime())}function Zl(e){return eo(e.getTime()+26784e5)}function eo(e){return new Date(Math.max(Date.now(),e)).toISOString()}function to(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}function no(e){return P.createElement(Sr,{value:e.serviceRequest,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:[{request:{method:"GET",url:`${T(e)}/_history`}},{request:{method:"GET",url:`Communication?based-on=${T(e)}&_sort=-_lastUpdated`}},{request:{method:"GET",url:`Media?_count=100&based-on=${T(e)}&_sort=-_lastUpdated`}},{request:{method:"GET",url:`DiagnosticReport?based-on=${T(e)}&_sort=-_lastUpdated`}}]}),createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",basedOn:[t(e)],subject:e.subject,sender:t(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",basedOn:[t(e)],subject:e.subject,operator:t(n),issued:(new Date).toISOString(),content:r})})}export{it as AddressDisplay,ut as AddressInput,ht as AnnotationInput,Et as AttachmentArrayDisplay,Tt as AttachmentArrayInput,xt as AttachmentButton,ft as AttachmentDisplay,Ot as AttachmentInput,En as BackboneElementDisplay,nr as BackboneElementInput,lr as CalendarInput,yn as CheckboxFormSection,Sn as CodeInput,rn as CodeableConceptDisplay,wn as CodeableConceptInput,an as CodingDisplay,An as CodingInput,on as ContactDetailDisplay,In as ContactDetailInput,ln as ContactPointDisplay,Dn as ContactPointInput,St as Container,Vn as DateTimeInput,zr as DefaultResourceTimeline,tn as DescriptionList,nn as DescriptionListEntry,dr as DiagnosticReportDisplay,Vt as Document,Zn as ElementDefinitionInputSelector,er as ElementDefinitionTypeInput,Lr as EncounterTimeline,br as ErrorBoundary,Ua as FhirPathTable,$t as Form,bn as FormSection,cn as HumanNameDisplay,$n as HumanNameInput,sn as IdentifierDisplay,zn as IdentifierInput,zt as Logo,pn as MedplumLink,mt as MedplumProvider,_a as MemoizedFhirPathTable,za as MemoizedSearchControl,mr as ObservationTable,It as Panel,Wa as PatientTimeline,Qa as PlanDefinitionBuilder,un as QuantityDisplay,Fn as QuantityInput,fl as QuestionnaireBuilder,ol as QuestionnaireForm,cl as QuestionnaireFormItem,al as QuestionnaireItemType,dn as RangeDisplay,Un as RangeInput,gn as ReferenceDisplay,Hn as ReferenceInput,Al as ReferenceRangeEditor,Dl as ReferenceRangeGroupEditor,Bt as RegisterForm,Nl as RequestGroupDisplay,vn as ResourceArrayDisplay,Bn as ResourceArrayInput,qn as ResourceAvatar,sr as ResourceBadge,Ml as ResourceBlame,Kl as ResourceDiff,Tn as ResourceForm,Hl as ResourceHistoryTable,Kn as ResourceInput,cr as ResourceName,hn as ResourcePropertyDisplay,Xn as ResourcePropertyInput,yr as ResourceTable,Sr as ResourceTimeline,Yl as Scheduler,Va as SearchChangeEvent,Pa as SearchClickEvent,$a as SearchControl,ha as SearchFieldEditor,ba as SearchFilterEditor,Ra as SearchLoadEvent,no as ServiceRequestTimeline,Xt as SignInForm,Pl as StatusBadge,Cr as Timeline,xr as TimelineItem,Jn as TimingInput,ra as addDateFilterBetween,Qr as addField,Kr as addFilter,Xr as addLastMonthFilter,la as addMissingFilter,ea as addNextMonthFilter,Zr as addThisMonthFilter,Gr as addTodayFilter,Jr as addTomorrowFilter,na as addYearToDateFilter,Br as addYesterdayFilter,ga as buildFieldNameString,qr as clearFilters,Wr as clearFiltersOnField,Rn as convertIsoToLocal,Pn as convertLocalToIso,_t as createScriptTag,Hr as deleteFilter,Lt as getErrorsForInput,Ft as getIssuesForExpression,ar as getMonthString,pa as getOpString,Qt as getRecaptcha,ma as getSearchOperators,ua as getSortField,or as getStartMonth,_l as getTimeString,fn as getValueAndType,Kt as initRecaptcha,ll as isChoiceQuestion,vl as isQuestionEnabled,da as isSortDescending,Rt as parseForm,va as renderValue,_r as setFilters,oa as setOffset,ia as setPage,On as setPropertyValue,ca as setSort,Tr as sortByDateAndPriority,sa as toggleSort,gt as useMedplum,pt as useMedplumContext,vt as useMedplumProfile,xn as useResource};
2
2
  //# sourceMappingURL=index.min.js.map