@medplum/react 0.9.15 → 0.9.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.min.js +1 -1
- package/dist/cjs/index.min.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +1 -1
- package/dist/esm/index.min.js.map +1 -1
- package/package.json +5 -5
package/dist/cjs/index.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@medplum/core"),require("react"),require("react-router-dom")):"function"==typeof define&&define.amd?define(["exports","@medplum/core","react","react-router-dom"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).medplum=e.medplum||{},e.medplum.ui={}),e.medplum.core,e.React,e.ReactRouterDOM)}(this,(function(e,t,n,a){"use strict";function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=l(n);function u(e){const n=e.value;return n?r.default.createElement(r.default.Fragment,null,t.formatAddress(n)):null}function o(e,t){var n;return null===(n=null==e?void 0:e.issue)||void 0===n?void 0:n.filter((e=>{var n;return(null===(n=e.expression)||void 0===n?void 0:n[0])===t}))}function i(e){const t=o(e.outcome,e.name),n=t&&t.length>0;return r.default.createElement("input",{id:e.name,name:e.name,type:c(e.type),size:e.size,step:e.step,className:"medplum-input",defaultValue:e.defaultValue||"",required:e.required,autoCapitalize:e.autoCapitalize,autoComplete:e.autoComplete,autoFocus:e.autoFocus,ref:e.inputRef,"aria-invalid":n,"aria-describedby":n?e.name+"-errors":"",placeholder:e.placeholder,"data-testid":e.testid,disabled:e.disabled,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)}})}function c(e){return e||"text"}function s(e){return r.default.createElement("div",{className:"medplum-input-row",style:{justifyContent:e.justifyContent}},e.children)}function d(e){const t=o(e.outcome,e.name),n=t&&t.length>0;return r.default.createElement("select",{id:e.name,name:e.name,className:"medplum-select",defaultValue:e.defaultValue||"",required:e.required,autoFocus:e.autoFocus,ref:e.inputRef,style:e.style,"aria-invalid":n,"aria-describedby":n?e.name+"-errors":"","data-testid":e.testid,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)}},e.children)}function m(e,t){return e&&e.line&&e.line.length>t?e.line[t]:""}function f(e,t,n){const a=e.line||[];for(;a.length<=t;)a.push("");return a[t]=n,Object.assign(Object.assign({},e),{line:a})}function p(e){const[t,a]=n.useState(e.defaultValue||{}),l=n.useRef();function u(t){a(t),e.onChange&&e.onChange(t)}return l.current=t,r.default.createElement(s,null,r.default.createElement(d,{testid:"address-use",defaultValue:null==t?void 0:t.use,onChange:function(e){u(Object.assign(Object.assign({},l.current),{use:e}))}},r.default.createElement("option",null),r.default.createElement("option",null,"home"),r.default.createElement("option",null,"mobile"),r.default.createElement("option",null,"old"),r.default.createElement("option",null,"temp"),r.default.createElement("option",null,"work")),r.default.createElement(d,{testid:"address-type",defaultValue:null==t?void 0:t.type,onChange:function(e){u(Object.assign(Object.assign({},l.current),{type:e}))}},r.default.createElement("option",null),r.default.createElement("option",null,"postal"),r.default.createElement("option",null,"physical"),r.default.createElement("option",null,"both")),r.default.createElement(i,{placeholder:"Line 1",defaultValue:m(t,0),onChange:function(e){u(f(l.current||{},0,e))}}),r.default.createElement(i,{placeholder:"Line 2",defaultValue:m(t,1),onChange:function(e){u(f(l.current||{},1,e))}}),r.default.createElement(i,{placeholder:"City",defaultValue:t.city,onChange:function(e){u(Object.assign(Object.assign({},l.current),{city:e}))}}),r.default.createElement(i,{placeholder:"State",defaultValue:t.state,onChange:function(e){u(Object.assign(Object.assign({},l.current),{state:e}))}}),r.default.createElement(i,{placeholder:"Postal Code",defaultValue:t.postalCode,onChange:function(e){u(Object.assign(Object.assign({},l.current),{postalCode:e}))}}))}function v(e){const t=e.value,{contentType:n,url:a,title:l}=null!=t?t:{};return a?r.default.createElement("div",{"data-testid":"attachment-display"},(null==n?void 0:n.startsWith("image/"))&&r.default.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:a,alt:null==t?void 0:t.title}),(null==n?void 0:n.startsWith("video/"))&&r.default.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},r.default.createElement("source",{type:n,src:a})),"application/pdf"===n&&!(null==l?void 0:l.endsWith(".pdf"))&&r.default.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},r.default.createElement("iframe",{width:"100%",height:"400",src:a+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),r.default.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},r.default.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 h(e){return r.default.createElement("div",null,e.values&&e.values.map(((t,n)=>r.default.createElement("div",{key:"attatchment-"+n},r.default.createElement(v,{value:t,maxWidth:e.maxWidth})))))}function g(e){const t="medplum-button"+(e.primary||"submit"===e.type?" medplum-button-primary":"")+(e.danger?" medplum-button-danger":"")+(e.borderless?" medplum-button-borderless":"")+(e.size?" medplum-button-"+e.size:"");return r.default.createElement("button",{type:e.type||"button",className:t,style:e.style,onClick:e.onClick,"aria-label":e.label,"data-testid":e.testid},e.children)}const E=n.createContext(void 0);function y(){return n.useContext(E)}function b(){return y().medplum}function C(){return y().profile}function T(e){e.preventDefault(),e.stopPropagation()}function S(e){if(k(e))return!0;if(e instanceof HTMLTableCellElement){const t=e.children;if(1===t.length&&k(t[0]))return!0}return!1}function k(e){return e instanceof HTMLInputElement&&"checkbox"===e.type}function O(e){const t=b(),a=n.useRef(null);function l(n){if(!n)return;if(!n.name)return;const a=n.name,l=n.type||"application/octet-stream";t.createBinary(n,a,l).then((t=>{e.onUpload({contentType:t.contentType,url:t.url,title:a})})).catch((e=>{var t,n,a;alert(null===(a=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===a?void 0:a.text)}))}return r.default.createElement(r.default.Fragment,null,r.default.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:a,onChange:e=>function(e){T(e);const t=e.target.files;t&&Array.from(t).forEach(l)}(e)}),r.default.createElement(g,{testid:"upload-button",onClick:e=>{var t;T(e),null===(t=a.current)||void 0===t||t.click()}},"Upload..."))}function x(e){var t;const[a,l]=n.useState(null!==(t=e.defaultValue)&&void 0!==t?t:[]),u=n.useRef();function o(t){l(t),e.onChange&&e.onChange(t)}return u.current=a,r.default.createElement("table",null,r.default.createElement("colgroup",null,r.default.createElement("col",{width:"90%"}),r.default.createElement("col",{width:"10%"})),r.default.createElement("tbody",null,a.map(((e,t)=>r.default.createElement("tr",{key:`${t}-${a.length}`},r.default.createElement("td",null,r.default.createElement(v,{value:e,maxWidth:200})),r.default.createElement("td",{className:"medplum-right"},r.default.createElement(g,{onClick:e=>{T(e);const n=a.slice();n.splice(t,1),o(n)}},"Remove"))))),r.default.createElement("tr",null,r.default.createElement("td",null),r.default.createElement("td",{className:"medplum-right"},r.default.createElement(O,{onUpload:e=>{o([...u.current,e])}})))))}function j(e){const[t,a]=n.useState(e.defaultValue);function l(t){a(t),e.onChange&&e.onChange(t)}return t?r.default.createElement(r.default.Fragment,null,r.default.createElement(v,{value:t,maxWidth:200}),r.default.createElement(g,{onClick:e=>{T(e),l(void 0)}},"Remove")):r.default.createElement(O,{onUpload:l})}function R(e){var t,a;const l=n.useRef(null),[u,o]=n.useState(!1),[i,c]=n.useState(""),[s,d]=n.useState(),[m,f]=n.useState(!1),[p,v]=n.useState(null!==(t=e.defaultValue)&&void 0!==t?t:[]),[h,g]=n.useState([]),[E,y]=n.useState(-1),[b,C]=n.useState(),[S,k]=n.useState(),O=n.useRef();O.current=i;const x=n.useRef();x.current=s;const j=n.useRef();j.current=b;const R=n.useRef();function w(t){v(t),e.onChange&&e.onChange(t)}function P(t){l.current.value="";const n=e.multiple?[...p,t]:[t];o(!0),f(!1),c(""),g([]),y(-1),w(n)}function N(){var e;null===(e=l.current)||void 0===e||e.focus()}function V(){o(!1),window.setTimeout((()=>{f(!1)}),200)}function D(){j.current&&(j.current.abort(),C(void 0)),void 0!==x.current&&window.clearTimeout(x.current);const t=window.setTimeout((()=>function(){var t,n;d(void 0);const a=(null===(n=null===(t=l.current)||void 0===t?void 0:t.value)||void 0===n?void 0:n.trim())||"";if(a===O.current)return;if(!a)return f(!1),c(""),g([]),void y(-1);c(a);const r=new AbortController;C(r),e.loadOptions(a,r.signal).then((e=>{r.signal.aborted||(f(e.length>0),g(e),C(void 0),R.current&&(P(e[0]),k(!1)))})).catch(console.log)}()),100);d(t)}function I(e){switch(e.key){case"Enter":case"Tab":!function(e){var t;x.current||j.current||!A()?k(!0):(T(e),null===(t=l.current)||void 0===t||t.focus())}(e);break;case"ArrowUp":F(-1),T(e);break;case"ArrowDown":F(1),T(e);break;case"Backspace":!function(e){var t;if(null===(t=l.current)||void 0===t?void 0:t.value)return;p.length>0&&(T(e),w(p.slice(0,p.length-1)))}(e);break;case",":case";":!function(e){var t;A(),T(e),null===(t=l.current)||void 0===t||t.focus()}(e)}}function A(){var t;let n;return E>=0&&E<h.length?n=h[E]:-1===E&&h.length>0?n=h[0]:e.buildUnstructured&&(null===(t=l.current)||void 0===t?void 0:t.value)&&(n=e.buildUnstructured(l.current.value)),!!n&&(P(n),!0)}function F(e){let t=E+e;t<0?t=0:t>=h.length&&(t=h.length-1),y(t)}R.current=S,n.useEffect((()=>()=>{j.current&&j.current.abort()}),[]),n.useEffect((()=>{var t;v(null!==(t=e.defaultValue)&&void 0!==t?t:[])}),[e.defaultValue]);const L=null!==(a=e.className)&&void 0!==a?a:"medplum-autocomplete-container";return r.default.createElement("div",{"data-testid":"autocomplete",className:L+(u?" focused":""),onClick:()=>N()},r.default.createElement("ul",{onClick:()=>N()},p.map((t=>r.default.createElement("li",{key:e.getId(t),"data-testid":"selected",className:"medplum-autocomplete-item choice"},e.getDisplay(t)))),r.default.createElement("li",{className:"medplum-autocomplete-item"},r.default.createElement("input",{type:"text",autoFocus:e.autofocus,placeholder:0===p.length?e.placeholder:void 0,autoComplete:"off",autoCapitalize:"off",spellCheck:"true",onFocus:()=>{o(!0)},onBlur:()=>V(),onChange:()=>D(),onInput:()=>D(),onKeyDown:e=>I(e),ref:l,"data-testid":"input-element"}))),m&&r.default.createElement("div",{className:"medplum-autocomplete","data-testid":"dropdown"},h.map(((t,n)=>r.default.createElement("div",{key:e.getId(t),className:n===E?"medplum-autocomplete-row medplum-autocomplete-active":"medplum-autocomplete-row",onMouseOver:e=>function(e,t){y(t)}(0,n),onClick:e=>function(e,t){T(e),P(t)}(e,t)},e.getIcon&&r.default.createElement("div",{className:"medplum-autocomplete-icon"},e.getIcon(t)),r.default.createElement("div",{className:"medplum-autocomplete-label"},e.getDisplay(t),e.getHelpText&&r.default.createElement("div",{className:"medplum-autocomplete-help-text"},e.getHelpText(t)))))),e.onCreateNew&&r.default.createElement("div",{className:"medplum-autocomplete-row",onClick:e.onCreateNew},r.default.createElement("div",{className:"medplum-autocomplete-label"},"Create new..."))))}function w(e){const t=a.useNavigate();let n="#";return e.to&&("string"==typeof e.to?n=e.to:"resourceType"in e.to?n=`/${e.to.resourceType}/${e.to.id}`:"reference"in e.to&&(n=`/${e.to.reference}`)),r.default.createElement("a",{href:n,id:e.id,"aria-label":e.label,"data-testid":e.testid||"link",className:e.className,onClick:a=>{T(a),e.onClick?e.onClick():e.to&&t(n)}},e.children)}const P={resourceType:"Device",id:"system",deviceName:[{name:"System"}]};function N(e){const t=b(),[a,l]=n.useState(function(e,t){if(!t)return;if("resourceType"in t)return t;if("reference"in t)return"system"===t.reference?P:e.getCachedReference(t);return}(t,e));return n.useEffect((()=>{let n=!0;return!a&&e&&"reference"in e&&e.reference&&t.readReference(e).then((e=>{n&&l(e)})).catch((()=>l(void 0))),()=>n=!1}),[t,a,e]),a}function V(e){var n,a;const l=N(e.value),u=e.size?"medplum-avatar "+e.size:"medplum-avatar",o=l?t.getDisplayString(l):null!==(n=e.alt)&&void 0!==n?n:"",i=o&&function(e){return e.split(" ").map((e=>e[0])).join("")}(o),c=null!==(a=l&&t.getImageSrc(l))&&void 0!==a?a:e.src,s=c?r.default.createElement("img",{src:c,alt:o}):i;return r.default.createElement("div",{className:u,style:{backgroundColor:e.color},"data-testid":"avatar"},e.link&&l?r.default.createElement(w,{to:l},s):s)}const D=["meta","implicitRules","language","text","contained","extension","modifierExtension"];function I(e){const t=o(e.outcome,e.htmlFor),n=t&&t.length>0;return r.default.createElement("fieldset",null,e.title&&r.default.createElement("label",{htmlFor:e.htmlFor},e.title),e.description&&r.default.createElement("small",null,e.description),e.children,n&&r.default.createElement("div",{id:e.htmlFor+"-errors",className:"medplum-input-error"},null==t?void 0:t.map((e=>{var t,n;return r.default.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)}))))}function A(e){return r.default.createElement("dl",{className:"medplum-description-list"+(e.compact?" compact":"")},e.children)}function F(e){return r.default.createElement(r.default.Fragment,null,r.default.createElement("dt",null,e.term),r.default.createElement("dd",null,e.children))}function L(e){const n=e.value;if(!n)return null;const a=e.typeName,l=e.schema.types[a];return l?"object"==typeof n&&"name"in n&&1===Object.keys(n).length?r.default.createElement("div",null,n.name):r.default.createElement(A,{compact:e.compact},Object.entries(l.properties).map((a=>{const l=a[0];if(D.indexOf(l)>=0)return null;const u=a[1],[o,i]=Z(n,u);return e.ignoreMissingValues&&(!o||Array.isArray(o)&&0===o.length)?null:r.default.createElement(F,{key:l,term:t.getPropertyDisplayName(u)},r.default.createElement(X,{schema:e.schema,property:u,propertyType:i,value:o,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))}))):r.default.createElement("div",null,a," not implemented")}function M(e){var t,n;return r.default.createElement(r.default.Fragment,null,(null===(t=e.value)||void 0===t?void 0:t.display)||(null===(n=e.value)||void 0===n?void 0:n.code))}function $(e){const t=e.value;return t?t.text?r.default.createElement(r.default.Fragment,null,t.text):t.coding&&t.coding.length>0?r.default.createElement(M,{value:t.coding[0]}):null:null}function _(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("]")),r.default.createElement(r.default.Fragment,null,n.join("").trim())}function U(e){return e.value?r.default.createElement(r.default.Fragment,null,new Date(e.value).toLocaleString()):null}function Q(e){const n=e.value;return n?r.default.createElement(r.default.Fragment,null,t.formatHumanName(n,e.options)):null}function q(e){var t,n;return r.default.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 z(e){const t=e.value;return t&&(t.start||t.end)?r.default.createElement("span",null,r.default.createElement(U,{value:t.start}),"-",r.default.createElement(U,{value:t.end})):null}function H(e){return r.default.createElement(r.default.Fragment,null,B(e.value))}function B(e){if(!e)return"";const t=[];return e.comparator&&(t.push(e.comparator),t.push(" ")),void 0!==e.value&&t.push(e.value),e.unit&&("%"!==e.unit&&t.push(" "),t.push(e.unit)),t.join("")}function W(e){return r.default.createElement(r.default.Fragment,null,K(e.value))}function K(e){return e&&(e.low||e.high)?e.low&&!e.high?`>= ${B(e.low)}`:!e.low&&e.high?`<= ${B(e.high)}`:`${B(e.low)} - ${B(e.high)}`:""}function G(e){const t=e.value;return t?r.default.createElement(r.default.Fragment,null,r.default.createElement(H,{value:t.numerator})," / ",r.default.createElement(H,{value:t.denominator})):null}function Y(e){if(!e.value)return null;const n=e.value.display||e.value.reference||t.stringify(e.value);return!1!==e.link&&e.value.reference?r.default.createElement(w,{to:e.value},n):r.default.createElement(r.default.Fragment,null,n)}function J(e){var t,n,a;const l=e.property,u=null!==(t=e.values)&&void 0!==t?t:[],o=null===(a=null===(n=l.type)||void 0===n?void 0:n[0])||void 0===a?void 0:a.code;return r.default.createElement(r.default.Fragment,null,u.map(((t,n)=>r.default.createElement("div",{key:`${n}-${u.length}`},r.default.createElement(X,{arrayElement:!0,schema:e.schema,property:l,propertyType:o,value:t,ignoreMissingValues:e.ignoreMissingValues,link:e.link})))))}function X(e){var n;const{property:a,propertyType:l,value:o}=e;if("*"===(null==a?void 0:a.max)&&!e.arrayElement){if("Attachment"===l)return r.default.createElement(h,{values:o,maxWidth:e.maxWidth});if(!e.schema)throw Error(`Displaying property of type ${e.propertyType} requires schema to be passed`);return r.default.createElement(J,{schema:e.schema,property:a,values:o,ignoreMissingValues:e.ignoreMissingValues,link:e.link})}switch(l){case t.PropertyType.boolean:return r.default.createElement("div",null,void 0===o?"":Boolean(o).toString());case t.PropertyType.SystemString:case t.PropertyType.canonical:case t.PropertyType.code:case t.PropertyType.date:case t.PropertyType.integer:case t.PropertyType.positiveInt:case t.PropertyType.string:case t.PropertyType.unsignedInt:case t.PropertyType.uri:case t.PropertyType.url:return r.default.createElement("div",null,o);case t.PropertyType.dateTime:case t.PropertyType.instant:return r.default.createElement(U,{value:o});case t.PropertyType.markdown:return r.default.createElement("pre",null,o);case t.PropertyType.Address:return r.default.createElement(u,{value:o});case t.PropertyType.Annotation:return r.default.createElement("div",null,null==o?void 0:o.text);case t.PropertyType.Attachment:return r.default.createElement(v,{value:o,maxWidth:e.maxWidth});case t.PropertyType.CodeableConcept:return r.default.createElement($,{value:o});case t.PropertyType.Coding:return r.default.createElement(M,{value:o});case t.PropertyType.ContactPoint:return r.default.createElement(_,{value:o});case t.PropertyType.HumanName:return r.default.createElement(Q,{value:o});case t.PropertyType.Identifier:return r.default.createElement(q,{value:o});case t.PropertyType.Period:return r.default.createElement(z,{value:o});case t.PropertyType.Quantity:return r.default.createElement(H,{value:o});case t.PropertyType.Range:return r.default.createElement(W,{value:o});case t.PropertyType.Ratio:return r.default.createElement(G,{value:o});case t.PropertyType.Reference:return r.default.createElement(Y,{value:o,link:e.link});default:if(!e.schema)throw Error(`Displaying property of type ${e.propertyType} requires schema to be passed`);return r.default.createElement(L,{schema:e.schema,typeName:t.buildTypeName(null===(n=null==a?void 0:a.path)||void 0===n?void 0:n.split(".")),value:o,compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}function Z(e,n){var a,l;if(!e)return[void 0,t.PropertyType.string];const r=null===(l=null===(a=n.path)||void 0===a?void 0:a.split("."))||void 0===l?void 0:l.pop();if(!r)return[void 0,t.PropertyType.string];const u=n.type;if(!u||0===u.length)return[void 0,t.PropertyType.string];if(1===u.length)return[e[r],u[0].code];for(const n of u){const a=r.replace("[x]",t.capitalize(n.code));if(a in e)return[e[a],n.code]}return[void 0,u[0].code]}function ee(e){const a=C(),[l,u]=n.useState(e.defaultValue||{});return n.useRef().current=l,r.default.createElement(i,{name:e.name,type:"text",placeholder:"Annotation text",defaultValue:l.text,onChange:function(n){const l=n?{text:n,authorReference:a&&t.createReference(a),time:(new Date).toISOString()}:{};u(l),e.onChange&&e.onChange(l)}})}function te(e){const t=b();let n;return e.defaultValue&&(n=[e.defaultValue]),r.default.createElement(R,{loadOptions:n=>{var a;const l=null===(a=e.property.binding)||void 0===a?void 0:a.valueSet;return t.searchValueSet(l,n).then((e=>e.expansion.contains.map(ne)))},buildUnstructured:ae,getId:le,getDisplay:re,name:e.name,defaultValue:n,onChange:t=>{e.onChange&&e.onChange(t[0])}})}function ne(e){return{text:e.display,coding:[{system:e.system,code:e.code,display:e.display}]}}function ae(e){return{text:e}}function le(e){return e.coding&&e.coding.length>0?e.coding[0].code:t.stringify(e)}function re(e){var t,n,a,l,u,o;const i=null!==(o=null!==(a=null===(n=null===(t=e.coding)||void 0===t?void 0:t[0])||void 0===n?void 0:n.display)&&void 0!==a?a:null===(u=null===(l=e.coding)||void 0===l?void 0:l[0])||void 0===u?void 0:u.code)&&void 0!==o?o:e.text;return r.default.createElement(r.default.Fragment,null,i)}const ue={};function oe(e){const t=b();let n;return e.defaultValue&&(n=[e.defaultValue]),r.default.createElement(R,{loadOptions:n=>{var a;const l=null===(a=e.property.binding)||void 0===a?void 0:a.valueSet;return t.searchValueSet(l,n).then((e=>{const t=e.expansion.contains;return t.forEach((e=>ue[e.code]=e.display)),t.map((e=>e.code))}))},buildUnstructured:e=>e,getId:e=>e,getDisplay:e=>r.default.createElement(r.default.Fragment,null,ue[e]||e),name:e.name,defaultValue:n,onChange:t=>{e.onChange&&e.onChange(t[0])}})}function ie(e){const t=b();let n;return e.defaultValue&&(n=[e.defaultValue]),r.default.createElement(R,{loadOptions:n=>{var a;const l=null===(a=e.property.binding)||void 0===a?void 0:a.valueSet;return t.searchValueSet(l,n).then((e=>e.expansion.contains.map((e=>({system:e.system,code:e.code,display:e.display})))))},buildUnstructured:e=>({code:e}),getId:e=>e.code,getDisplay:e=>r.default.createElement(M,{value:e}),name:e.name,defaultValue:n,onChange:t=>{e.onChange&&e.onChange(t[0])}})}function ce(e){const[t,a]=n.useState(e.defaultValue),l=n.useRef();function u(t){a(t),e.onChange&&e.onChange(t)}return l.current=t,r.default.createElement(s,null,r.default.createElement(d,{defaultValue:null==t?void 0:t.system,onChange:function(e){u(Object.assign(Object.assign({},l.current),{system:e||void 0}))},testid:"system"},r.default.createElement("option",null),r.default.createElement("option",null,"email"),r.default.createElement("option",null,"fax"),r.default.createElement("option",null,"pager"),r.default.createElement("option",null,"phone"),r.default.createElement("option",null,"other"),r.default.createElement("option",null,"sms")),r.default.createElement(d,{defaultValue:null==t?void 0:t.use,onChange:function(e){u(Object.assign(Object.assign({},l.current),{use:e||void 0}))},testid:"use"},r.default.createElement("option",null),r.default.createElement("option",null,"home"),r.default.createElement("option",null,"mobile"),r.default.createElement("option",null,"old"),r.default.createElement("option",null,"temp"),r.default.createElement("option",null,"work")),r.default.createElement(i,{placeholder:"Value",defaultValue:null==t?void 0:t.value,onChange:function(e){u(Object.assign(Object.assign({},l.current),{value:e||void 0}))}}))}function se(e){return r.default.createElement(i,Object.assign({},e,{type:"datetime-local",defaultValue:de(e.defaultValue),onChange:t=>{e.onChange&&e.onChange(me(t))}}))}function de(e){if(!e)return"";const t=new Date(e);return fe(t)?t.toLocaleDateString("sv")+"T"+t.toLocaleTimeString("sv"):""}function me(e){if(!e)return"";const t=new Date(e);return fe(t)?t.toISOString():""}function fe(e){return e instanceof Date&&!isNaN(e.getTime())}function pe(e){const t=o(e.outcome,e.name),n=t&&t.length>0;return r.default.createElement("textarea",{id:e.name,name:e.name,className:"medplum-textarea",defaultValue:e.defaultValue||"",required:e.required,autoComplete:e.autoComplete,autoFocus:e.autoFocus,ref:e.inputRef,"aria-invalid":n,"aria-describedby":n?e.name+"-errors":"",placeholder:e.placeholder,"data-testid":e.testid,style:e.style,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)}})}function ve(e){return r.default.createElement(pe,{testid:"extension-input",name:e.name,defaultValue:t.stringify(e.defaultValue),onChange:t=>{e.onChange&&e.onChange(JSON.parse(t))}})}function he(e){var t,a,l;const[u,o]=n.useState(e.defaultValue),c=n.useRef();function m(t){o(t),e.onChange&&e.onChange(t)}return c.current=u,r.default.createElement(s,null,r.default.createElement(d,{defaultValue:null==u?void 0:u.use,onChange:function(e){m(Object.assign(Object.assign({},c.current),{use:e||void 0}))},testid:"use"},r.default.createElement("option",null),r.default.createElement("option",null,"usual"),r.default.createElement("option",null,"official"),r.default.createElement("option",null,"temp"),r.default.createElement("option",null,"nickname"),r.default.createElement("option",null,"anonymous"),r.default.createElement("option",null,"old"),r.default.createElement("option",null,"maiden")),r.default.createElement(i,{placeholder:"Prefix",defaultValue:null===(t=null==u?void 0:u.prefix)||void 0===t?void 0:t.join(" "),onChange:function(e){m(Object.assign(Object.assign({},c.current),{prefix:e?e.split(" "):void 0}))}}),r.default.createElement(i,{placeholder:"Given",defaultValue:null===(a=null==u?void 0:u.given)||void 0===a?void 0:a.join(" "),onChange:function(e){m(Object.assign(Object.assign({},c.current),{given:e?e.split(" "):void 0}))}}),r.default.createElement(i,{placeholder:"Family",defaultValue:null==u?void 0:u.family,onChange:function(e){m(Object.assign(Object.assign({},c.current),{family:e||void 0}))}}),r.default.createElement(i,{placeholder:"Suffix",defaultValue:null===(l=null==u?void 0:u.suffix)||void 0===l?void 0:l.join(" "),onChange:function(e){m(Object.assign(Object.assign({},c.current),{suffix:e?e.split(" "):void 0}))}}))}function ge(e){const[t,a]=n.useState(e.defaultValue);function l(t){a(t),e.onChange&&e.onChange(t)}return r.default.createElement(s,null,r.default.createElement(i,{placeholder:"System",defaultValue:null==t?void 0:t.system,onChange:e=>l(Object.assign(Object.assign({},t),{system:e}))}),r.default.createElement(i,{placeholder:"Value",defaultValue:null==t?void 0:t.value,onChange:e=>l(Object.assign(Object.assign({},t),{value:e}))}))}function Ee(e){const[t,a]=n.useState(e.defaultValue);function l(t){a(t),e.onChange&&e.onChange(t)}return r.default.createElement(s,null,r.default.createElement(i,{type:"datetime-local",placeholder:"Start",defaultValue:null==t?void 0:t.start,onChange:e=>l(Object.assign(Object.assign({},t),{start:e}))}),r.default.createElement(i,{type:"datetime-local",placeholder:"End",defaultValue:null==t?void 0:t.end,onChange:e=>l(Object.assign(Object.assign({},t),{end:e}))}))}function ye(e){var t;const[a,l]=n.useState(e.defaultValue);function u(t){l(t),e.onChange&&e.onChange(t)}return r.default.createElement(s,null,r.default.createElement(d,{style:{width:80},testid:e.name+"-comparator",defaultValue:null==a?void 0:a.comparator,onChange:e=>u(Object.assign(Object.assign({},a),{comparator:e}))},r.default.createElement("option",null),r.default.createElement("option",null,"<"),r.default.createElement("option",null,"<="),r.default.createElement("option",null,">="),r.default.createElement("option",null,">")),r.default.createElement(i,{name:e.name,type:"number",step:"any",placeholder:"Value",defaultValue:null===(t=null==a?void 0:a.value)||void 0===t?void 0:t.toString(),onChange:e=>u(Object.assign(Object.assign({},a),{value:be(e)}))}),r.default.createElement(i,{placeholder:"Unit",defaultValue:null==a?void 0:a.unit,onChange:e=>u(Object.assign(Object.assign({},a),{unit:e}))}))}function be(e){if(e)return parseFloat(e)}function Ce(e){const[t,a]=n.useState(e.defaultValue);function l(t){a(t),e.onChange&&e.onChange(t)}return r.default.createElement(s,null,r.default.createElement(ye,{name:e.name+"-low",defaultValue:null==t?void 0:t.low,onChange:e=>l(Object.assign(Object.assign({},t),{low:e}))}),r.default.createElement(ye,{name:e.name+"-high",defaultValue:null==t?void 0:t.high,onChange:e=>l(Object.assign(Object.assign({},t),{high:e}))}))}function Te(e){const[t,a]=n.useState(e.defaultValue);function l(t){a(t),e.onChange&&e.onChange(t)}return r.default.createElement(s,null,r.default.createElement(ye,{name:e.name+"-numerator",defaultValue:null==t?void 0:t.numerator,onChange:e=>l(Object.assign(Object.assign({},t),{numerator:e}))}),r.default.createElement(ye,{name:e.name+"-denominator",defaultValue:null==t?void 0:t.denominator,onChange:e=>l(Object.assign(Object.assign({},t),{denominator:e}))}))}function Se(e){const n=N(e.value);if(!n)return null;const a=t.getDisplayString(n);return e.link?r.default.createElement(w,{to:n},a):r.default.createElement("span",null,a)}function ke(e){const t=b(),a=N(e.defaultValue),[l,u]=n.useState(),o=n.useRef(e.resourceType);return o.current=e.resourceType,n.useEffect((()=>{u(a)}),[a]),r.default.createElement(R,{loadOptions:e=>t.search(o.current,"name="+encodeURIComponent(e)).then((e=>e.entry.map((e=>e.resource)))),getId:e=>e.id,getIcon:e=>r.default.createElement(V,{value:e}),getDisplay:e=>r.default.createElement(Se,{value:e}),getHelpText:e=>{if("Patient"===e.resourceType&&e.birthDate)return"DoB: "+e.birthDate},name:e.name,defaultValue:l?[l]:void 0,className:e.className,placeholder:e.placeholder,onChange:t=>{var n;n=t.length>0?t[0]:void 0,u(n),e.onChange&&e.onChange(n)}})}function Oe(e){const a=e.targetTypes,l=function(e,t){var n;const a=null===(n=null==e?void 0:e.reference)||void 0===n?void 0:n.split("/")[0];if(a)return a;if(t&&t.length>0)return t[0];return}(e.defaultValue,a),[u,o]=n.useState(e.defaultValue),[c,m]=n.useState(l);n.useRef().current=u;return n.useRef().current=c,r.default.createElement(s,null,a?r.default.createElement(d,{testid:"reference-input-resource-type-select",defaultValue:c,onChange:m},a.map((e=>r.default.createElement("option",{key:e,value:e},e)))):r.default.createElement(i,{testid:"reference-input-resource-type-input",defaultValue:c,onChange:m}),r.default.createElement(ke,{resourceType:c,name:e.name+"-id",defaultValue:u,onChange:n=>{var a;a=n?t.createReference(n):void 0,o(a),e.onChange&&e.onChange(a)}}))}function xe(e){var t;const[a,l]=n.useState(null!==(t=e.defaultValue)&&void 0!==t?t:[]),u=n.useRef();function o(t){l(t),e.onChange&&e.onChange(t)}return u.current=a,r.default.createElement("div",null,r.default.createElement("table",{style:{width:"100%"}},r.default.createElement("colgroup",null,r.default.createElement("col",{width:"90%"}),r.default.createElement("col",{width:"10%"})),r.default.createElement("tbody",null,a.map(((t,n)=>r.default.createElement("tr",{key:`${n}-${a.length}`},r.default.createElement("td",null,r.default.createElement(je,{arrayElement:!0,schema:e.schema,property:e.property,name:e.name+"."+n,defaultValue:t,onChange:e=>{const t=[...u.current];t[n]=e,o(t)}})),r.default.createElement("td",{style:{textAlign:"right"}},r.default.createElement(g,{onClick:e=>{T(e);const t=[...u.current];t.splice(n,1),o(t)}},"Remove"))))),r.default.createElement("tr",null,r.default.createElement("td",null),r.default.createElement("td",{style:{textAlign:"right"}},r.default.createElement(g,{onClick:e=>{T(e);const t=[...u.current];t.push(void 0),o(t)}},"Add"))))))}function je(e){var t,n,a;const l=e.property,u=null!==(t=e.defaultPropertyType)&&void 0!==t?t:null===(a=null===(n=l.type)||void 0===n?void 0:n[0])||void 0===a?void 0:a.code,o=e.name,i=e.defaultValue;if("*"===l.max&&!e.arrayElement)return"Attachment"===u?r.default.createElement(x,{name:o,defaultValue:i,onChange:e.onChange}):r.default.createElement(xe,{schema:e.schema,property:l,name:o,defaultValue:i,onChange:e.onChange});const c=l.type;return c.length>1?r.default.createElement(Re,Object.assign({elementDefinitionTypes:c},e)):r.default.createElement(we,Object.assign({elementDefinitionType:c[0]},e))}function Re(e){const a=e.elementDefinitionTypes;let l;l=e.defaultPropertyType?a.find((t=>t.code===e.defaultPropertyType)):a[0];const[u,o]=n.useState(l);return r.default.createElement(s,null,r.default.createElement(d,{style:{width:"200px"},defaultValue:u.code,onChange:e=>{o(a.find((t=>t.code===e)))}},a.map((e=>r.default.createElement("option",{key:e.code,value:e.code},e.code)))),r.default.createElement(we,Object.assign({},e,{elementDefinitionType:u,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",t.capitalize(u.code)))}})))}function we(e){const n=e.property,a=e.elementDefinitionType.code,l=e.name,u=e.defaultValue;switch(a){case t.PropertyType.SystemString:case t.PropertyType.canonical:case t.PropertyType.string:case t.PropertyType.time:case t.PropertyType.uri:case t.PropertyType.url:return r.default.createElement(i,{type:"text",name:l,testid:l,defaultValue:u,onChange:e.onChange,outcome:e.outcome});case t.PropertyType.date:return r.default.createElement(i,{type:"date",name:l,testid:l,defaultValue:u,onChange:e.onChange,outcome:e.outcome});case t.PropertyType.dateTime:case t.PropertyType.instant:return r.default.createElement(se,{type:"datetime-local",name:l,testid:l,defaultValue:u,onChange:e.onChange,outcome:e.outcome});case t.PropertyType.decimal:case t.PropertyType.integer:case t.PropertyType.positiveInt:case t.PropertyType.unsignedInt:return r.default.createElement(i,{type:"number",step:a===t.PropertyType.decimal?"any":1,name:l,testid:l,defaultValue:u,onChange:t=>{e.onChange&&e.onChange(parseFloat(t))},outcome:e.outcome});case t.PropertyType.code:return r.default.createElement(oe,{property:n,name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.boolean:return r.default.createElement("input",{type:"checkbox",name:l,"data-testid":l,defaultChecked:!!u,value:"true",onChange:t=>e.onChange&&e.onChange("true"===t.target.value)});case t.PropertyType.markdown:return r.default.createElement(pe,{name:l,testid:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Address:return r.default.createElement(p,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Annotation:return r.default.createElement(ee,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Attachment:return r.default.createElement(j,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.CodeableConcept:return r.default.createElement(te,{property:n,name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Coding:return r.default.createElement(ie,{property:n,name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.ContactPoint:return r.default.createElement(ce,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Extension:return r.default.createElement(ve,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.HumanName:return r.default.createElement(he,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Identifier:return r.default.createElement(ge,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Period:return r.default.createElement(Ee,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Quantity:return r.default.createElement(ye,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Range:return r.default.createElement(Ce,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Ratio:return r.default.createElement(Te,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Reference:return r.default.createElement(Oe,{name:l,defaultValue:u,targetTypes:Pe(n),onChange:e.onChange});default:return r.default.createElement(Ve,{schema:e.schema,property:n,name:l,defaultValue:u,onChange:e.onChange,outcome:e.outcome})}}function Pe(e){var t,n,a;return null===(a=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===a?void 0:a.map((e=>e.split("/").pop()))}function Ne(e,n,a,l,r){const u=l.type;if(u.length>1)for(const a of u){const l=n.replace("[x]",t.capitalize(a.code));l in e&&delete e[l]}return e[a]=r,e}function Ve(e){var a,l;const[u,o]=n.useState(null!==(a=e.defaultValue)&&void 0!==a?a:{});const i=t.buildTypeName(null===(l=e.property.path)||void 0===l?void 0:l.split(".")),c=e.schema.types[i];return c?r.default.createElement(r.default.Fragment,null,Object.entries(c.properties).map((n=>{const a=n[0];if("id"===a||D.indexOf(a)>=0)return null;const l=n[1];if(!l.type)return null;const[i,c]=Z(u,l);return r.default.createElement(I,{key:a,title:t.getPropertyDisplayName(l),description:l.definition,htmlFor:a,outcome:e.outcome},r.default.createElement(je,{schema:e.schema,property:l,name:a,defaultValue:i,defaultPropertyType:c,outcome:e.outcome,onChange:(t,l)=>{!function(t){o(t),e.onChange&&e.onChange(t)}(Ne(u,a,null!=l?l:a,n[1],t))}}))}))):r.default.createElement("div",null,i," not implemented")}function De(e){var t;return r.default.createElement("div",{className:"medplum-resource-badge"},r.default.createElement(V,{size:null!==(t=e.size)&&void 0!==t?t:"small",value:e.value,link:e.link}),r.default.createElement(Se,{value:e.value,link:e.link}))}function Ie(e){var n;const a=N(e.value);if(!a)return null;let l;if(a.presentedForm&&a.presentedForm.length>0){const e=a.presentedForm[0];(null===(n=e.contentType)||void 0===n?void 0:n.startsWith("text/plain"))&&e.data&&(l=window.atob(e.data))}return r.default.createElement("div",{className:"medplum-diagnostic-report"},r.default.createElement("h1",null,"Diagnostic Report"),r.default.createElement("div",{className:"medplum-diagnostic-report-header"},a.subject&&r.default.createElement("dl",null,r.default.createElement("dt",null,"Subject"),r.default.createElement("dd",null,r.default.createElement(De,{value:a.subject,link:!0}))),a.resultsInterpreter&&a.resultsInterpreter.map((e=>r.default.createElement("dl",{key:e.reference},r.default.createElement("dt",null,"Interpreter"),r.default.createElement("dd",null,r.default.createElement(De,{value:e,link:!0}))))),a.issued&&r.default.createElement("dl",null,r.default.createElement("dt",null,"Issued"),r.default.createElement("dd",null,r.default.createElement(U,{value:a.issued}))),a.status&&r.default.createElement("dl",null,r.default.createElement("dt",null,"Status"),r.default.createElement("dd",null,t.capitalize(a.status)))),l&&r.default.createElement("pre",null,l),a.result&&r.default.createElement(Ae,{value:a.result}))}function Ae(e){var t;return r.default.createElement("table",{className:"medplum-table"},r.default.createElement("thead",null,r.default.createElement("tr",null,r.default.createElement("th",null,"Test"),r.default.createElement("th",null,"Value"),r.default.createElement("th",null,"Reference Range"),r.default.createElement("th",null,"Interpretation"))),r.default.createElement("tbody",null,null===(t=e.value)||void 0===t?void 0:t.map(((e,t)=>r.default.createElement(Fe,{key:"obs-"+t,value:e})))))}function Fe(e){const t=N(e.value);return t?r.default.createElement("tr",null,r.default.createElement("td",null,r.default.createElement(w,{to:t},r.default.createElement($,{value:t.code}))),r.default.createElement("td",null,r.default.createElement(Le,{value:t})),r.default.createElement("td",null,r.default.createElement(Me,{value:t.referenceRange})),r.default.createElement("td",null,t.interpretation&&t.interpretation.length>0&&r.default.createElement($,{value:t.interpretation[0]}))):null}function Le(e){var t;const n=e.value;return(null==n?void 0:n.valueQuantity)?r.default.createElement(H,{value:null===(t=e.value)||void 0===t?void 0:t.valueQuantity}):(null==n?void 0:n.valueString)?r.default.createElement(r.default.Fragment,null,n.valueString):n&&"component"in n&&(null==n?void 0:n.component)?r.default.createElement(r.default.Fragment,null,n.component.map(((e,t)=>r.default.createElement(Le,{key:`obs-${t}`,value:e}))).reduce(((e,t)=>[e," / ",t]))):null}function Me(e){const t=e.value&&e.value.length>0&&e.value[0];return t?r.default.createElement(W,{value:t}):null}function $e(e){const t={};for(const n of Array.from(e.elements))n instanceof HTMLInputElement?_e(t,n):n instanceof HTMLTextAreaElement?t[n.name]=n.value:n instanceof HTMLSelectElement&&Ue(t,n);return t}function _e(e,t){t.disabled||("checkbox"!==t.type&&"radio"!==t.type||t.checked)&&(e[t.name]=t.value)}function Ue(e,t){e[t.name]=t.value}function Qe(e){return r.default.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:t=>{t.preventDefault();const n=$e(t.target);e.onSubmit&&e.onSubmit(n)}},e.children)}function qe(){return r.default.createElement("div",{role:"progressbar","aria-busy":"true",className:"medplum-loading"},r.default.createElement("div",{className:"medplum-loading-container"},r.default.createElement("svg",{className:"medplum-loading-spinner",viewBox:"0 0 100 100"},r.default.createElement("circle",{cx:"50",cy:"50",r:"40"}))))}function ze(e){return r.default.createElement("div",{className:"medplum-menu-item",onClick:()=>e.onClick(),"aria-label":e.label},e.children)}function He(e){const a=b(),[l,u]=n.useState();if(n.useEffect((()=>{a.requestSchema(e.original.resourceType).then(u)}),[a,e.original.resourceType]),!l)return null;const o=l.types[e.original.resourceType];return o?r.default.createElement("table",{className:"medplum-diff-table"},r.default.createElement("colgroup",null,r.default.createElement("col",{style:{width:"30%"}}),r.default.createElement("col",{style:{width:"35%"}}),r.default.createElement("col",{style:{width:"35%"}})),r.default.createElement("thead",null,r.default.createElement("tr",null,r.default.createElement("th",null,"Property"),r.default.createElement("th",null,"Before"),r.default.createElement("th",null,"After"))),r.default.createElement("tbody",null,Object.entries(o.properties).map((n=>{const a=n[0];if("id"===a||"meta"===a)return null;const u=n[1],[o,i]=Z(e.original,u),[c,s]=Z(e.revised,u);return Be(o)&&Be(c)||t.stringify(o)===t.stringify(c)?null:r.default.createElement("tr",{key:a},r.default.createElement("td",null,t.getPropertyDisplayName(u)),r.default.createElement("td",{className:"medplum-diff-removed"},r.default.createElement(X,{schema:l,property:u,propertyType:i,value:o,ignoreMissingValues:!0})),r.default.createElement("td",{className:"medplum-diff-added"},r.default.createElement(X,{schema:l,property:u,propertyType:s,value:c,ignoreMissingValues:!0})))})))):null}function Be(e){return!e||Array.isArray(e)&&0===e.length||"object"==typeof e&&0===Object.keys(e).length}function We(e){const t=b(),a=N(e.value),[l,u]=n.useState();return n.useEffect((()=>{a&&t.requestSchema(a.resourceType).then(u)}),[t,a]),l&&a?r.default.createElement(L,{schema:l,typeName:a.resourceType,value:a,ignoreMissingValues:e.ignoreMissingValues}):null}function Ke(e){const t=e.height||"100%",n=e.height?e.height+25:"100%",a="medplum-scrollable-content"+(e.className?` ${e.className}`:"");return r.default.createElement("div",{className:"medplum-scrollable-container",style:{height:t}},r.default.createElement("div",{className:a,role:e.role,style:{height:n}},e.children))}class Ge extends r.default.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?r.default.createElement("h1",null,"Something went wrong."):this.props.children}}function Ye(e){const t=n.useRef(null),l=a.useLocation(),u=n.useRef();e.visible?void 0===u.current&&(u.current=l):u.current=void 0;const o=n.useRef();o.current=e,n.useEffect((()=>{function n(n){var a,l;(null===(a=o.current)||void 0===a?void 0:a.visible)&&(null===(l=o.current)||void 0===l?void 0:l.autoClose)&&(null==t?void 0:t.current)&&!t.current.contains(n.target)&&e.onClose()}return document.addEventListener("click",n,!0),()=>document.removeEventListener("click",n,!0)}),[e]),n.useEffect((()=>{e.visible&&l!==u.current&&e.onClose()}),[l,e]);const i={display:e.visible?"block":"none"};return e.anchor&&(e.anchor.right+250<document.body.clientWidth?i.left=e.anchor.right+"px":i.right=document.body.clientWidth-e.anchor.left+"px",e.anchor.top+300<document.body.clientHeight?i.top=e.anchor.top+"px":i.bottom=document.body.clientHeight-e.anchor.top+"px"),r.default.createElement(r.default.Fragment,null,e.modal&&r.default.createElement("div",{className:e.visible?"medplum-backdrop active":"medplum-backdrop",onClick:e.onClose}),r.default.createElement("div",{ref:t,className:"medplum-popup "+(e.visible?e.activeClassName:e.inactiveClassName),style:i,"data-testid":"popup"},e.children))}function Je(e){return r.default.createElement("main",{className:"medplum-document medplum-timeline"},e.children)}function Xe(e){var a,l,u;const[o,i]=n.useState(),c=null!==(a=e.profile)&&void 0!==a?a:null===(l=e.resource.meta)||void 0===l?void 0:l.author;return r.default.createElement("article",{className:e.className||"medplum-timeline-item","data-testid":"timeline-item"},r.default.createElement("div",{className:"medplum-timeline-item-header"},r.default.createElement("div",{className:"medplum-timeline-item-avatar"},r.default.createElement(V,{value:c,link:!0,size:"medium"})),r.default.createElement("div",{className:"medplum-timeline-item-title"},r.default.createElement(Se,{value:c,link:!0}),r.default.createElement("div",{className:"medplum-timeline-item-subtitle"},r.default.createElement(w,{to:e.resource},r.default.createElement(U,{value:null===(u=e.resource.meta)||void 0===u?void 0:u.lastUpdated})),r.default.createElement("span",null,"·"),r.default.createElement(w,{to:e.resource},e.resource.resourceType))),e.popupMenuItems&&r.default.createElement("div",{className:"medplum-timeline-item-actions"},r.default.createElement("a",{href:"#","aria-label":`Actions for ${t.getReferenceString(e.resource)}`,onClick:e=>{T(e);const t=e.currentTarget.getBoundingClientRect();i(t)}},r.default.createElement("svg",{fill:"currentColor",viewBox:"0 0 20 20"},r.default.createElement("g",{transform:"translate(-446 -350)"},r.default.createElement("path",{d:"M458 360a2 2 0 1 1-4 0 2 2 0 0 1 4 0m6 0a2 2 0 1 1-4 0 2 2 0 0 1 4 0m-12 0a2 2 0 1 1-4 0 2 2 0 0 1 4 0"})))))),r.default.createElement(Ge,null,e.padding&&r.default.createElement("div",{style:{padding:"2px 16px 16px 16px"}},e.children),!e.padding&&r.default.createElement(r.default.Fragment,null,e.children)),e.socialEnabled&&r.default.createElement("div",{className:"medplum-timeline-item-footer"},r.default.createElement(g,{borderless:!0},"Like"),r.default.createElement(g,{borderless:!0},"Comment")),e.popupMenuItems&&r.default.createElement(Ye,{visible:!!o,anchor:o,autoClose:!0,onClose:()=>i(void 0)},e.popupMenuItems))}function Ze(e){e.sort(et)}function et(e,t){const n=tt(e),a=tt(t);return n>a?1:n<a?-1:nt(e)-nt(t)}function tt(e){const t=e.priority;return"string"==typeof t&&{stat:4,asap:3,urgent:2}[t]||0}function nt(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}function at(e){const t=a.useNavigate(),l=b(),u=l.getProfile(),o=n.useRef(null),c=N(e.value),[s,d]=n.useState(),[m,f]=n.useState([]),p=e.buildSearchRequests,v=n.useRef(m);v.current=m;const h=n.useCallback((()=>{if(!c)return f([]),void d({});const e=p(c);l.post("fhir/R4",e).then(E)}),[l,c,p]);function E(e){const t=[];if(e.entry){for(const n of e.entry){const e=n.resource;if(e&&("history"===e.type&&d(e),e.entry))for(const n of e.entry)t.push(n.resource)}Ze(t),t.reverse()}f(t)}function y(e){const t=[...v.current,...e];Ze(t),t.reverse(),f(t)}function C(e,t){return l.updateResource(Object.assign(Object.assign({},e),{priority:t}))}function T(e){C(e,"stat").then(h)}function S(e){C(e,"routine").then(h)}function k(e){t(`/${e.resourceType}/${e.id}`)}function x(e){t(`/${e.resourceType}/${e.id}/edit`)}function j(e){t(`/${e.resourceType}/${e.id}/delete`)}function R(e){var n;t(`/${e.resourceType}/${e.id}/_history/${null===(n=e.meta)||void 0===n?void 0:n.versionId}`)}return n.useEffect((()=>{h()}),[h]),c&&s?r.default.createElement(Je,null,e.createCommunication&&r.default.createElement("article",{className:"medplum-timeline-item"},r.default.createElement("div",{className:"medplum-timeline-item-header"},r.default.createElement(Qe,{testid:"timeline-form",onSubmit:t=>{var n;n=t.text,c&&e.createCommunication&&l.createResource(e.createCommunication(c,u,n)).then((e=>{y([e])}));const a=o.current;a&&(a.value="",a.focus())}},r.default.createElement(i,{name:"text",testid:"timeline-input",inputRef:o}),r.default.createElement(g,{type:"submit"},"Comment"),r.default.createElement(O,{onUpload:function(t){c&&e.createMedia&&l.createResource(e.createMedia(c,u,t)).then((e=>{y([e])}))}})))),m.map((e=>{var t;if(e.resourceType===c.resourceType&&e.id===c.id)return r.default.createElement(rt,{key:null===(t=e.meta)||void 0===t?void 0:t.versionId,history:s,resource:e,onDetails:R});const n=`${e.resourceType}/${e.id}`;switch(e.resourceType){case"AuditEvent":return r.default.createElement(it,{key:n,resource:e,onDetails:k});case"Communication":return r.default.createElement(ut,{key:n,resource:e,onPin:"stat"!==e.priority?T:void 0,onUnpin:"stat"===e.priority?S:void 0,onDetails:k,onEdit:x,onDelete:j});case"DiagnosticReport":return r.default.createElement(ct,{key:n,resource:e,onDetails:k,onEdit:x,onDelete:j});case"Media":return r.default.createElement(ot,{key:n,resource:e,onDetails:k,onEdit:x,onDelete:j});default:return r.default.createElement(Xe,{key:n,resource:e,padding:!0},r.default.createElement(We,{value:e,ignoreMissingValues:!0}))}}))):r.default.createElement(qe,null)}function lt(e){return r.default.createElement(r.default.Fragment,null,e.onPin&&r.default.createElement(ze,{onClick:()=>e.onPin(e.resource),label:`Pin ${t.getReferenceString(e.resource)}`},"Pin"),e.onUnpin&&r.default.createElement(ze,{onClick:()=>e.onUnpin(e.resource),label:`Unpin ${t.getReferenceString(e.resource)}`},"Unpin"),e.onDetails&&r.default.createElement(ze,{onClick:()=>e.onDetails(e.resource),label:`Details ${t.getReferenceString(e.resource)}`},"Details"),e.onEdit&&r.default.createElement(ze,{onClick:()=>e.onEdit(e.resource),label:`Edit ${t.getReferenceString(e.resource)}`},"Edit"),e.onDelete&&r.default.createElement(ze,{onClick:()=>e.onDelete(e.resource),label:`Delete ${t.getReferenceString(e.resource)}`},"Delete"))}function rt(e){const t=function(e,t){const n=e.entry,a=n.findIndex((e=>{var n,a,l;return(null===(a=null===(n=e.resource)||void 0===n?void 0:n.meta)||void 0===a?void 0:a.versionId)===(null===(l=t.meta)||void 0===l?void 0:l.versionId)}));if(a>=n.length-1)return;return n[a+1].resource}(e.history,e.resource);return t?r.default.createElement(Xe,{resource:e.resource,padding:!0,popupMenuItems:r.default.createElement(lt,Object.assign({},e))},r.default.createElement(He,{original:t,revised:e.resource})):r.default.createElement(Xe,{resource:e.resource,padding:!0,popupMenuItems:r.default.createElement(lt,Object.assign({},e))},r.default.createElement("h3",null,"Created"),r.default.createElement(We,{value:e.resource,ignoreMissingValues:!0}))}function ut(e){var t,n;const a=!e.resource.priority||"routine"===e.resource.priority?"medplum-timeline-item":"medplum-timeline-item medplum-timeline-item-pinned";return r.default.createElement(Xe,{resource:e.resource,profile:e.resource.sender,padding:!0,className:a,popupMenuItems:r.default.createElement(lt,Object.assign({},e))},r.default.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 ot(e){var t;const n=null===(t=e.resource.content)||void 0===t?void 0:t.contentType,a=n&&!n.startsWith("image/")&&!n.startsWith("video/")&&"application/pdf"!==n;return r.default.createElement(Xe,{resource:e.resource,padding:!!a,popupMenuItems:r.default.createElement(lt,Object.assign({},e))},r.default.createElement(v,{value:e.resource.content}))}function it(e){return r.default.createElement(Xe,{resource:e.resource,padding:!0,popupMenuItems:r.default.createElement(lt,Object.assign({},e))},r.default.createElement(Ke,null,r.default.createElement("pre",null,e.resource.outcomeDesc)))}function ct(e){return r.default.createElement(Xe,{resource:e.resource,padding:!0,popupMenuItems:r.default.createElement(lt,Object.assign({},e))},r.default.createElement(Ie,{value:e.resource}))}function st(e){return r.default.createElement("main",{className:"medplum-document"},r.default.createElement("article",{style:{maxWidth:e.width}},e.children))}function dt(e,t,n,a){return new(n||(n=Promise))((function(l,r){function u(e){try{i(a.next(e))}catch(e){r(e)}}function o(e){try{i(a.throw(e))}catch(e){r(e)}}function i(e){var t;e.done?l(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(u,o)}i((a=a.apply(e,t||[])).next())}))}function mt(e){const n=b();return r.default.createElement(R,{loadOptions:(e,a)=>dt(this,void 0,void 0,(function*(){return function(e,t){const n=[];e.data.Patients1&&n.push(...e.data.Patients1);e.data.Patients2&&n.push(...e.data.Patients2);e.data.ServiceRequestList&&n.push(...e.data.ServiceRequestList);return function(e,t){return e.sort(((e,n)=>ft(n,t)-ft(e,t)))}(function(e){const t=new Set,n=[];for(const a of e)t.has(a.id)||(t.add(a.id),n.push(a));return n}(n),t).slice(0,5)}(yield n.graphql(function(e){const n=JSON.stringify(e);if(t.isUUID(e))return`{\n Patients1: PatientList(_id: ${n}, _count: 1) {\n resourceType\n id\n identifier {\n system\n value\n }\n name {\n given\n family\n }\n birthDate\n }\n ServiceRequestList(_id: ${n}, _count: 1) {\n resourceType\n id\n identifier {\n system\n value\n }\n subject {\n display\n }\n }\n }`.replace(/\s+/g," ");return`{\n Patients1: PatientList(name: ${n}, _count: 5) {\n resourceType\n id\n identifier {\n system\n value\n }\n name {\n given\n family\n }\n birthDate\n }\n Patients2: PatientList(identifier: ${n}, _count: 5) {\n resourceType\n id\n identifier {\n system\n value\n }\n name {\n given\n family\n }\n birthDate\n }\n ServiceRequestList(identifier: ${n}, _count: 5) {\n resourceType\n id\n identifier {\n system\n value\n }\n subject {\n display\n }\n }\n }`.replace(/\s+/g," ")}(e),{signal:a}),e)})),getId:e=>e.id,getIcon:e=>r.default.createElement(V,{value:e}),getDisplay:e=>r.default.createElement(Se,{value:e}),getHelpText:e=>{var t;return"Patient"===e.resourceType&&e.birthDate?"DoB: "+e.birthDate:null===(t=e.subject)||void 0===t?void 0:t.display},name:e.name,className:e.className,placeholder:e.placeholder,onChange:t=>e.onChange(t[0])})}function ft(e,n){let a=0;if(e.identifier)for(const t of e.identifier)a=Math.max(a,pt(t.value,n));if("Patient"===e.resourceType&&e.name)for(const l of e.name)a=Math.max(a,pt(t.formatHumanName(l),n));return a}function pt(e,t){if(!e)return 0;const n=e.toLowerCase().indexOf(t.toLowerCase());return n<0?0:100-n}function vt(e){return r.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},r.default.createElement("title",null,"Medplum Logo"),r.default.createElement("path",{fill:e.fill||"#ad7136",d:"M282 67c6-16 16-29 29-40L289 0c-22 17-37 41-43 68l17 23 19-24z"}),r.default.createElement("path",{fill:e.fill||"#654b87",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"}),r.default.createElement("path",{fill:e.fill||"#463068",d:"M231 489l-17 2c-87 0-158-96-158-214S127 63 214 63l17 1c-39 12-70 102-70 213s31 201 70 212z"}),r.default.createElement("path",{fill:e.fill||"#70d65b",d:"M207 220a176 176 0 01-177 43A176 176 0 01251 43l1 5c17 59 2 125-45 172z"}),r.default.createElement("path",{fill:e.fill||"#58b741",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}const ht=["$/_history","Communication?subject=$","Device?patient=$","DeviceRequest?patient=$","DiagnosticReport?subject=$","Media?subject=$","ServiceRequest?subject=$"];var gt;function Et(e,n){if(e)return e.map((e=>function(e,n){const{linkId:a,type:l}=e;if(!a||!l)return e;if("group"===l)return Object.assign(Object.assign({},e),{item:Et(e.item,n)});const r=n[a];if(!r)return e;let u;switch(l){case t.PropertyType.boolean:u={valueBoolean:"true"===r};break;case t.PropertyType.code:case t.PropertyType.Coding:u={valueCoding:{code:r}};break;case t.PropertyType.date:u={valueDate:r};break;case t.PropertyType.dateTime:case t.PropertyType.instant:u={valueDateTime:r};break;case t.PropertyType.decimal:u={valueDecimal:parseFloat(r)};break;case t.PropertyType.integer:case t.PropertyType.positiveInt:case t.PropertyType.unsignedInt:u={valueInteger:parseInt(r)};break;case t.PropertyType.SystemString:case t.PropertyType.string:case t.PropertyType.markdown:u={valueString:r};break;case t.PropertyType.time:u={valueTime:r};break;case t.PropertyType.uri:case t.PropertyType.url:u={valueUri:r};break;case t.PropertyType.canonical:case t.PropertyType.Reference:u={valueReference:{reference:r}}}if(!u)return e;return Object.assign(Object.assign({},e),{initial:[u]})}(e,n)))}function yt(e){return"choice"===e.type||"open-choice"===e.type}function bt(t){const[a,l]=n.useState(Tt(t.items));function u(e,n){const r=a.slice();r[e]=n,l(r),t.onChange(r)}return r.default.createElement(r.default.Fragment,null,t.items.map(((n,a)=>n.type===e.QuestionnaireItemType.group?r.default.createElement(Ct,{key:n.linkId,schema:t.schema,item:n,onChange:e=>u(a,e)}):r.default.createElement(I,{key:n.linkId,htmlFor:n.linkId,title:n.text||""},r.default.createElement(Ct,{schema:t.schema,item:n,onChange:e=>u(a,e)})))))}function Ct(n){const a=n.item,l=a.type;if(!l)return null;const u=a.linkId;if(!u)return null;const o=a.initial&&a.initial.length>0?a.initial[0]:void 0;function c(e){n.onChange({linkId:a.linkId,answer:[e]})}switch(l){case e.QuestionnaireItemType.group:return r.default.createElement("div",null,r.default.createElement("h3",null,a.text),a.item&&r.default.createElement(bt,{schema:n.schema,items:a.item,onChange:function(e){n.onChange({linkId:a.linkId,item:e})}}));case e.QuestionnaireItemType.boolean:return r.default.createElement("input",{type:"checkbox",id:u,name:u,value:"true",defaultChecked:null==o?void 0:o.valueBoolean,onChange:e=>c({valueBoolean:e.currentTarget.checked})});case e.QuestionnaireItemType.decimal:return r.default.createElement(i,{type:"number",step:"any",name:u,defaultValue:null==o?void 0:o.valueDecimal,onChange:e=>c({valueDecimal:parseFloat(e)})});case e.QuestionnaireItemType.integer:return r.default.createElement(i,{type:"number",step:1,name:u,defaultValue:null==o?void 0:o.valueInteger,onChange:e=>c({valueInteger:parseInt(e)})});case e.QuestionnaireItemType.date:return r.default.createElement(i,{type:"date",name:u,defaultValue:null==o?void 0:o.valueDate,onChange:e=>c({valueDate:e})});case e.QuestionnaireItemType.dateTime:return r.default.createElement(se,{type:"datetime-local",name:u,defaultValue:null==o?void 0:o.valueDateTime,onChange:e=>c({valueDateTime:e})});case e.QuestionnaireItemType.time:return r.default.createElement(i,{type:"time",name:u,defaultValue:null==o?void 0:o.valueTime,onChange:e=>c({valueTime:e})});case e.QuestionnaireItemType.string:return r.default.createElement(i,{type:"text",name:u,defaultValue:null==o?void 0:o.valueString,onChange:e=>c({valueString:e})});case e.QuestionnaireItemType.text:return r.default.createElement(pe,{name:u,defaultValue:null==o?void 0:o.valueString,onChange:e=>c({valueString:e})});case e.QuestionnaireItemType.url:return r.default.createElement(i,{type:"url",name:u,defaultValue:null==o?void 0:o.valueUri,onChange:e=>c({valueUri:e})});case e.QuestionnaireItemType.choice:case e.QuestionnaireItemType.openChoice:return r.default.createElement("div",null,a.answerOption&&a.answerOption.map(((e,a)=>{const l=n.schema.types.QuestionnaireItemAnswerOption.properties["value[x]"],i=n.schema.types.QuestionnaireItemAnswerOption.properties["value[x]"],[s,d]=Z(e,l),[m,f]=Z(o,i),p="value"+t.capitalize(d),v=`${u}-option-${a}`;return r.default.createElement("div",{key:v,className:"medplum-questionnaire-option-row"},r.default.createElement("div",{className:"medplum-questionnaire-option-checkbox"},r.default.createElement("input",{type:"radio",id:v,name:u,value:s,defaultChecked:d===f&&t.stringify(s)===t.stringify(m),onChange:()=>c({[p]:s})})),r.default.createElement("div",null,r.default.createElement("label",{htmlFor:v},r.default.createElement(X,{schema:n.schema,property:l,propertyType:d,value:s}))))})));case e.QuestionnaireItemType.attachment:return r.default.createElement(j,{name:u,defaultValue:null==o?void 0:o.valueAttachment,onChange:e=>c({valueAttachment:e})});case e.QuestionnaireItemType.reference:return r.default.createElement(Oe,{name:u,defaultValue:null==o?void 0:o.valueReference,onChange:e=>c({valueReference:e})});case e.QuestionnaireItemType.quantity:return r.default.createElement(ye,{name:u,defaultValue:null==o?void 0:o.valueQuantity,onChange:e=>c({valueQuantity:e})})}return null}function Tt(e){var t;return null!==(t=null==e?void 0:e.map(St))&&void 0!==t?t:[]}function St(e){var t,n;return{linkId:e.linkId,item:Tt(e.item),answer:null!==(n=null===(t=e.initial)||void 0===t?void 0:t.map(kt))&&void 0!==n?n:[]}}function kt(e){return Object.assign({},e)}function Ot(t){var a;const l=t.item,u=t.item,o="resourceType"in t.item,c=o||u.type===e.QuestionnaireItemType.group,s=null!==(a=u.linkId)&&void 0!==a?a:"[untitled]",m=t.selectedKey===t.item.id,f=t.hoverKey===t.item.id,p=n.useRef();function v(e){var n;const a=p.current;t.onChange(Object.assign(Object.assign({},a),{item:null===(n=a.item)||void 0===n?void 0:n.map((t=>t.id===e.id?e:t))}))}function h(e){var n,a;t.onChange(Object.assign(Object.assign({},t.item),{item:[...null!==(a=null===(n=t.item)||void 0===n?void 0:n.item)&&void 0!==a?a:[],e]}))}function g(e,n){t.onChange(Object.assign(Object.assign({},p.current),{[e]:n}))}p.current=t.item;const E=m?"section editing":f?"section hovering":"section";return r.default.createElement("div",{"data-testid":u.linkId,className:E,onClick:function(e){T(e),t.setSelectedKey(t.item.id)},onMouseOver:function(e){T(e),t.setHoverKey(t.item.id)}},m?r.default.createElement(r.default.Fragment,null,o&&r.default.createElement("div",null,r.default.createElement(i,{defaultValue:l.title,onChange:e=>g("title",e)})),!c&&r.default.createElement("div",null,r.default.createElement(d,{defaultValue:u.type,onChange:e=>g("type",e)},r.default.createElement("option",{value:"display"},"Display"),r.default.createElement("optgroup",{label:"Question"},r.default.createElement("option",{value:"boolean"},"Boolean"),r.default.createElement("option",{value:"decimal"},"Decimal"),r.default.createElement("option",{value:"integer"},"Integer"),r.default.createElement("option",{value:"date"},"Date"),r.default.createElement("option",{value:"dateTime"},"Date/Time"),r.default.createElement("option",{value:"time"},"Time"),r.default.createElement("option",{value:"string"},"String"),r.default.createElement("option",{value:"text"},"Text"),r.default.createElement("option",{value:"url"},"URL"),r.default.createElement("option",{value:"choice"},"Choice"),r.default.createElement("option",{value:"open-choice"},"Open Choice"),r.default.createElement("option",{value:"attachment"},"Attachment"),r.default.createElement("option",{value:"reference"},"Reference"),r.default.createElement("option",{value:"quantity"},"Quantity")))),!o&&r.default.createElement(pe,{style:{width:"95%",height:"100px",minHeight:"100px",margin:"8px 4px 4px 4px"},defaultValue:u.text,onChange:e=>g("text",e)}),yt(u)&&r.default.createElement(xt,{schema:t.schema,options:u.answerOption,onChange:e=>g("answerOption",e)})):r.default.createElement(r.default.Fragment,null,l.title&&r.default.createElement("h1",null,l.title),u.text&&r.default.createElement("p",null,u.text),!c&&r.default.createElement(Ct,{schema:t.schema,item:u,onChange:()=>{}})),u.item&&u.item.map((e=>r.default.createElement("div",{key:e.id},r.default.createElement(Ot,{schema:t.schema,item:e,selectedKey:t.selectedKey,setSelectedKey:t.setSelectedKey,hoverKey:t.hoverKey,setHoverKey:t.setHoverKey,onChange:v,onRemove:()=>function(e){var n,a;t.onChange(Object.assign(Object.assign({},t.item),{item:null===(a=null===(n=t.item)||void 0===n?void 0:n.item)||void 0===a?void 0:a.filter((t=>t!==e))}))}(e)})))),!c&&r.default.createElement("div",{className:"top-actions"},m?r.default.createElement(i,{defaultValue:u.linkId,onChange:e=>g("linkId",e),size:4}):r.default.createElement("div",null,s)),r.default.createElement("div",{className:"bottom-actions"},c&&r.default.createElement(r.default.Fragment,null,r.default.createElement("a",{href:"#",onClick:e=>{e.preventDefault(),h({id:Pt(),linkId:wt("q"),type:"string",text:"Question"})}},"Add item"),r.default.createElement("a",{href:"#",onClick:e=>{e.preventDefault(),h({id:Pt(),linkId:wt("g"),type:"group",text:"Group"})}},"Add group")),!o&&r.default.createElement("a",{href:"#",onClick:e=>{e.preventDefault(),t.onRemove&&t.onRemove()}},"Remove")))}function xt(e){var t;const n=e.schema.types.QuestionnaireItemAnswerOption.properties["value[x]"],a=null!==(t=e.options)&&void 0!==t?t:[];return r.default.createElement("div",null,a.map((t=>{const[l,u]=Z(t,n);return r.default.createElement("div",{key:t.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},r.default.createElement("div",null,r.default.createElement(je,{key:t.id,schema:e.schema,name:"value[x]",property:n,defaultPropertyType:u,defaultValue:l,onChange:(n,l)=>{const r=[...a],u=r.findIndex((e=>e.id===t.id));r[u]={id:t.id,[l]:n},e.onChange(r)}})),r.default.createElement("div",null,r.default.createElement("a",{href:"#",onClick:n=>{T(n),e.onChange(a.filter((e=>e.id!==t.id)))}},"Remove")))})),r.default.createElement("a",{href:"#",onClick:t=>{T(t),e.onChange([...a,{id:Pt()}])}},"Add choice"))}e.QuestionnaireItemType=void 0,(gt=e.QuestionnaireItemType||(e.QuestionnaireItemType={})).group="group",gt.display="display",gt.question="question",gt.boolean="boolean",gt.decimal="decimal",gt.integer="integer",gt.date="date",gt.dateTime="dateTime",gt.time="time",gt.string="string",gt.text="text",gt.url="url",gt.choice="choice",gt.openChoice="open-choice",gt.attachment="attachment",gt.reference="reference",gt.quantity="quantity";let jt=1,Rt=1;function wt(e){return e+jt++}function Pt(){return"id-"+Rt++}function Nt(e){if(e)return e.map((e=>Object.assign(Object.assign({},e),{id:e.id||Pt(),item:Nt(e.item),answerOption:Vt(e.answerOption)})))}function Vt(e){if(e)return e.map((e=>Object.assign(Object.assign({},e),{id:e.id||Pt()})))}function Dt(e,t){return function(e,t,n){const a=[];let l=e;l.snake&&(l=l.prev);for(;l&&l.prev&&l.prev.j>=0;){const e=l.i,r=l.j;l=l.prev;const u=l.i,o=l.j,i={position:u,lines:t.slice(u,e)},c={position:o,lines:n.slice(o,r)};let s;s=0===i.lines.length&&c.lines.length>0?"insert":i.lines.length>0&&0===c.lines.length?"delete":"change",a.push({original:i,revised:c,type:s}),l.snake&&(l=l.prev)}return a}(function(e,t){const n=e.length,a=t.length,l=n+a+1,r=1+2*l,u=r/2|0,o=new Array(r);o[u+1]={i:0,j:-1,prev:void 0,snake:!0};for(let r=0;r<l;r++){for(let l=-r;l<=r;l+=2){const i=u+l,c=i-1,s=o[i+1],d=o[c];let m,f=0;l===-r||l!==r&&d.i<s.i?(f=s.i,m=s):(f=d.i+1,m=d),o[c]=void 0;let p=f-l,v={i:f,j:p,prev:It(m),snake:!1};for(;f<n&&p<a&&e[f]===t[p];)f++,p++;if(f>v.i&&(v={i:f,j:p,prev:v,snake:!0}),o[i]=v,f>=n&&p>=a)return o[i]}o[u+r-1]=void 0}return}(e,t),e,t)}function It(e){return e&&!e.snake&&e.prev?e.prev:e}function At(e){const n=e.entry.map((e=>{var n;return{meta:null===(n=e.resource)||void 0===n?void 0:n.meta,lines:t.stringify(e.resource,!0).match(/[^\r\n]+/g)}})).sort(((e,t)=>e.meta.lastUpdated.localeCompare(t.meta.lastUpdated))),a=n[0].lines.map((e=>({id:n[0].meta.versionId,meta:n[0].meta,value:e,span:1})));return function(e,t){for(let n=1;n<t.length;n++){const a=Dt(t[n-1].lines,t[n].lines);for(const l of a){const a=l.original.position,r=l.original.lines,u=l.revised.lines;if("delete"!==l.type&&"change"!==l.type||e.splice(a,r.length),"insert"===l.type||"change"===l.type)for(let r=0;r<l.revised.lines.length;r++)e.splice(a+r,0,{id:t[n].meta.versionId,meta:t[n].meta,value:u[r],span:1})}}}(a,n),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}}(a),a}function Ft(e,t){return`/${e.resourceType}/${e.id}/_history/${t}`}function Lt(e){const t=Math.floor((Date.now()-Date.parse(e))/1e3),n=Math.floor(t/31536e3);if(n>0)return Mt(n,"year");const a=Math.floor(t/2592e3);if(a>0)return Mt(a,"month");const l=Math.floor(t/86400);if(l>0)return Mt(l,"day");const r=Math.floor(t/3600);if(r>0)return Mt(r,"hour");const u=Math.floor(t/60);return u>0?Mt(u,"minute"):Mt(t,"second")}function Mt(e,t){return`${e} ${1===e?t:t+"s"} ago`}function $t(e){return r.default.createElement(r.default.Fragment,null,"...",r.default.createElement("br",null),e.delta.original.lines.length>0&&r.default.createElement("div",{className:"medplum-diff-removed"},e.delta.original.lines.join("\n")),e.delta.revised.lines.length>0&&r.default.createElement("div",{className:"medplum-diff-added"},e.delta.revised.lines.join("\n")),"...",r.default.createElement("br",null))}function _t(e){var t,n,a;return r.default.createElement("tr",null,r.default.createElement("td",null,r.default.createElement(De,{value:null===(t=e.version.meta)||void 0===t?void 0:t.author,link:!0})),r.default.createElement("td",null,r.default.createElement(U,{value:null===(n=e.version.meta)||void 0===n?void 0:n.lastUpdated})),r.default.createElement("td",null,r.default.createElement(w,{to:Ut(e.version)},null===(a=e.version.meta)||void 0===a?void 0:a.versionId)))}function Ut(e){var t;return`/${e.resourceType}/${e.id}/_history/${null===(t=e.meta)||void 0===t?void 0:t.versionId}`}function Qt(e,n,a){var l;if("_lastUpdated"===a)return{name:"_lastUpdated",searchParam:{resourceType:"SearchParameter",base:["Resource"],code:"_lastUpdated",name:"_lastUpdated",type:"date",expression:"Resource.meta.lastUpdated"}};if("meta.versionId"===a)return{name:"meta.versionId",searchParam:{resourceType:"SearchParameter",base:["Resource"],code:"_versionId",name:"_versionId",type:"token",expression:"Resource.meta.versionId"}};const r=e.types[n];let u=r.properties[a],o=null===(l=r.searchParams)||void 0===l?void 0:l[a];if(u&&!o&&r.searchParams){const e=`${n}.${a}`;o=Object.values(r.searchParams).find((t=>{var n;return null===(n=t.expression)||void 0===n?void 0:n.includes(e)}))}if(!u&&(null==o?void 0:o.expression)){u=t.getSearchParameterDetails(e,n,o).elementDefinition}return{name:a,elementDefinition:u,searchParam:o}}function qt(e){const[t,a]=n.useState(100),[l,u]=n.useState(100);if(!e.visible)return null;return r.default.createElement(r.default.Fragment,null,r.default.createElement("div",{className:"modal-dialog-bg"}),r.default.createElement("div",{className:"modal-dialog","data-testid":"dialog",tabIndex:0,style:{left:t+"px",top:l+"px"}},r.default.createElement("div",{className:"modal-dialog-title",onMouseDown:e=>function(e){T(e);const n=e.clientX-t,r=e.clientY-l;function o(e){T(e),a(e.clientX-n),u(e.clientY-r)}document.addEventListener("mouseup",(function e(t){T(t),document.removeEventListener("mouseup",e,!0),document.removeEventListener("mousemove",o,!0)}),!0),document.addEventListener("mousemove",o,!0)}(e)},r.default.createElement("span",{className:"modal-dialog-title-text"},e.title),r.default.createElement("span",{className:"modal-dialog-title-close",tabIndex:0,onClick:e.onCancel},r.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},r.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))),r.default.createElement("div",{className:"modal-dialog-content"},e.children),r.default.createElement("div",{className:"modal-dialog-buttons"},r.default.createElement(g,{testid:"dialog-ok",onClick:e.onOk},"OK"),r.default.createElement(g,{testid:"dialog-cancel",onClick:e.onCancel},"Cancel"))))}const zt={string:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.CONTAINS,t.Operator.EXACT],fulltext:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.CONTAINS,t.Operator.EXACT],token:[t.Operator.EQUALS,t.Operator.NOT_EQUALS],reference:[t.Operator.EQUALS,t.Operator.NOT_EQUALS],numeric:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.GREATER_THAN,t.Operator.LESS_THAN,t.Operator.GREATER_THAN_OR_EQUALS,t.Operator.LESS_THAN_OR_EQUALS],date:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.GREATER_THAN,t.Operator.LESS_THAN,t.Operator.GREATER_THAN_OR_EQUALS,t.Operator.LESS_THAN_OR_EQUALS,t.Operator.STARTS_AFTER,t.Operator.ENDS_BEFORE,t.Operator.APPROXIMATELY],datetime:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.GREATER_THAN,t.Operator.LESS_THAN,t.Operator.GREATER_THAN_OR_EQUALS,t.Operator.LESS_THAN_OR_EQUALS,t.Operator.STARTS_AFTER,t.Operator.ENDS_BEFORE,t.Operator.APPROXIMATELY]},Ht={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",above:"above",below:"below",in:"in","not-in":"not in","of-type":"of type"};function Bt(e,t){return Object.assign(Object.assign({},e),{filters:t,offset:0,name:void 0})}function Wt(e,t){return Bt(e,(e.filters||[]).filter((e=>e.code!==t)))}function Kt(e,t,n,a,l){l&&(e=Wt(e,t));const r=[];return e.filters&&r.push(...e.filters),r.push({code:t,operator:n,value:a||""}),Bt(e,r)}function Gt(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 Yt(e,t){return Zt(e,t,-1)}function Jt(e,t){return Zt(e,t,0)}function Xt(e,t){return Zt(e,t,1)}function Zt(e,t,n){const a=new Date;a.setDate(a.getDate()+n),a.setHours(0,0,0,0);const l=new Date(a.getTime());return l.setDate(l.getDate()+1),l.setTime(l.getTime()-1),rn(e,t,a,l)}function en(e,t){return an(e,t,-1)}function tn(e,t){return an(e,t,0)}function nn(e,t){return an(e,t,1)}function an(e,t,n){const a=new Date;a.setMonth(a.getMonth()+n),a.setDate(1),a.setHours(0,0,0,0);const l=new Date(a.getTime());return l.setMonth(l.getMonth()+1),l.setDate(1),l.setHours(0,0,0,0),l.setTime(l.getTime()-1),rn(e,t,a,l)}function ln(e,t){const n=new Date;n.setMonth(0),n.setDate(1),n.setHours(0,0,0,0);return rn(e,t,n,new Date)}function rn(e,n,a,l){return e=un(e=Wt(e,n),n,t.Operator.GREATER_THAN_OR_EQUALS,a),e=un(e,n,t.Operator.LESS_THAN_OR_EQUALS,l)}function un(e,t,n,a){return Kt(e,t,n,a.toISOString())}function on(e,t){return e.offset===t?e:Object.assign(Object.assign({},e),{offset:t,name:void 0})}function cn(e,t){var n,a;const l=null!==(n=e.count)&&void 0!==n?n:20,r=(null!==(a=e.offset)&&void 0!==a?a:0)+t*l;return on(e,Math.max(r,0))}function sn(e,t,n){return t===dn(e)&&void 0!==n&&n===mn(e)?e:Object.assign(Object.assign({},e),{sortRules:[{code:t,descending:!!n}],name:void 0})}function dn(e){const t=e.sortRules;if(!t||0===t.length)return;const n=t[0].code;return n.startsWith("-")?n.substr(1):n}function mn(e){const t=e.sortRules;return!(!t||0===t.length)&&!!t[0].descending}function fn(e){return zt[e.type]}function pn(e){var t;return null!==(t=Ht[e])&&void 0!==t?t:""}function vn(e){let n=e;return n.includes(".")&&(n=n.split(".").pop()),"id"===n?"ID":"versionId"===n?"Version ID":(n=n.replace("[x]",""),n=n.replace(/([A-Z])/g," $1"),n=n.replace(/[-_]/g," "),n=n.replace(/\s+/g," "),n=n.trim(),n.split(/\s/).map(t.capitalize).join(" "))}function hn(e,n,a){var l,u;const o=a.name;return"id"===o?n.id:"meta.versionId"===o?null===(l=n.meta)||void 0===l?void 0:l.versionId:"_lastUpdated"===o?r.default.createElement(U,{value:null===(u=n.meta)||void 0===u?void 0:u.lastUpdated}):a.elementDefinition&&`${n.resourceType}.${a.name}`===a.elementDefinition.path?function(e,t,n){const[a,l]=Z(t,n);if(!a)return null;return r.default.createElement(X,{schema:e,property:n,propertyType:l,value:a,maxWidth:200,ignoreMissingValues:!0,link:!1})}(e,n,a.elementDefinition):a.searchParam&&a.name===a.searchParam.code?function(e,n,a,l){var u,o;const i=t.evalFhirPath(a.expression,n);if(!i||0===i.length)return null;if(l)return r.default.createElement(X,{schema:e,property:l,propertyType:null===(o=null===(u=l.type)||void 0===u?void 0:u[0])||void 0===o?void 0:o.code,value:i,maxWidth:200,ignoreMissingValues:!0});return r.default.createElement(r.default.Fragment,null,i.map(((e,t)=>r.default.createElement("span",{key:`${t}-${i.length}`},"object"==typeof e?JSON.stringify(e):e))))}(e,n,a.searchParam,a.elementDefinition):null}function gn(e){var a;const[l,u]=n.useState({search:JSON.parse(t.stringify(e.search))}),o=n.useRef(null),i=n.useRef(null);function c(){var e,t;const n=null!==(e=l.search.fields)&&void 0!==e?e:[],a=null===(t=o.current)||void 0===t?void 0:t.value;if(a){const e=[...n,a];u({search:Object.assign(Object.assign({},l.search),{fields:e})})}}function s(){var e,t;const n=null!==(e=l.search.fields)&&void 0!==e?e:[],a=null===(t=i.current)||void 0===t?void 0:t.value;if(a){const e=[...n];e.splice(e.indexOf(a),1),u({search:Object.assign(Object.assign({},l.search),{fields:e})})}}function d(e,t,n){const a=e[t];e[t]=e[n],e[n]=a}if(n.useEffect((()=>{u({search:e.search})}),[e.search]),!e.visible)return null;const m=e.search.resourceType,f=e.schema.types[m],p=null!==(a=l.search.fields)&&void 0!==a?a:[],v=function(e){let t=Object.keys(e.properties);e.searchParams&&(t=[...new Set([...t,...Object.keys(e.searchParams)])]);const n=[],a=[];for(const e of t){const t=vn(e);a.includes(t)||(n.push(e),a.push(t))}return n}(f).filter((e=>!(null==p?void 0:p.includes(e)))).sort();return r.default.createElement(qt,{title:"Fields",visible:e.visible,onOk:()=>e.onOk(l.search),onCancel:e.onCancel},r.default.createElement("div",null,r.default.createElement("table",{style:{margin:"auto"}},r.default.createElement("thead",null,r.default.createElement("tr",null,r.default.createElement("th",{colSpan:2,align:"center"},"Available"),r.default.createElement("th",{colSpan:2,align:"center"},"Selected"))),r.default.createElement("tbody",null,r.default.createElement("tr",null,r.default.createElement("td",{colSpan:2,align:"center"},r.default.createElement("select",{ref:o,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&c()}(e),onDoubleClick:()=>{c()},"data-testid":"available"},v.map((e=>r.default.createElement("option",{key:e,value:e},vn(e)))))),r.default.createElement("td",{colSpan:2,align:"center"},r.default.createElement("select",{ref:i,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&s()}(e),onDoubleClick:()=>{s()},"data-testid":"selected"},p.map((e=>r.default.createElement("option",{key:e,value:e},vn(e)))))))),r.default.createElement("tfoot",null,r.default.createElement("tr",null,r.default.createElement("td",{align:"center"},r.default.createElement(g,{size:"small",onClick:c},"Add")),r.default.createElement("td",{align:"center"},r.default.createElement(g,{size:"small",onClick:s},"Remove")),r.default.createElement("td",{align:"center"},r.default.createElement(g,{size:"small",onClick:function(){var e,t;const n=null!==(e=l.search.fields)&&void 0!==e?e:[],a=null===(t=i.current)||void 0===t?void 0:t.value;if(a){const e=[...n],t=e.indexOf(a);d(e,t,t-1),u({search:Object.assign(Object.assign({},l.search),{fields:e})})}}},"Up")),r.default.createElement("td",{align:"center"},r.default.createElement(g,{size:"small",onClick:function(){var e,t;const n=null!==(e=l.search.fields)&&void 0!==e?e:[],a=null===(t=i.current)||void 0===t?void 0:t.value;if(a){const e=[...n],t=e.indexOf(a);d(e,t,t+1),u({search:Object.assign(Object.assign({},l.search),{fields:e})})}}},"Down")))))))}function En(e){var t,n;const a=null===(n=null===(t=b().getSchema().types[e.resourceType])||void 0===t?void 0:t.searchParams)||void 0===n?void 0:n[e.filter.code],l=e.filter;return"reference"===(null==a?void 0:a.type)?r.default.createElement(Se,{value:{reference:l.value}}):"_lastUpdated"===e.filter.code||"datetime"===(null==a?void 0:a.type)?r.default.createElement(U,{value:l.value}):r.default.createElement(r.default.Fragment,null,l.value)}function yn(e){var n;const a="filter-value";switch(t.getSearchParameterDetails(e.schema,e.resourceType,e.searchParam).type){case t.SearchParameterType.REFERENCE:return r.default.createElement(Oe,{name:a,defaultValue:{reference:e.defaultValue},targetTypes:null===(n=e.searchParam)||void 0===n?void 0:n.target,onChange:t=>{t?e.onChange(t.reference):e.onChange("")}});case t.SearchParameterType.BOOLEAN:return r.default.createElement("input",{type:"checkbox",name:a,"data-testid":a,defaultChecked:"true"===e.defaultValue,value:"true",onChange:t=>e.onChange(t.target.checked?"true":"false")});case t.SearchParameterType.DATE:return r.default.createElement(i,{type:"date",testid:a,defaultValue:e.defaultValue,onChange:e.onChange});case t.SearchParameterType.DATETIME:return r.default.createElement(se,{testid:a,defaultValue:e.defaultValue,onChange:e.onChange});case t.SearchParameterType.NUMBER:return r.default.createElement(i,{type:"number",defaultValue:e.defaultValue,onChange:e.onChange});case t.SearchParameterType.QUANTITY:return r.default.createElement(ye,{name:a,defaultValue:{},onChange:t=>{t?e.onChange(`${t.value}`):e.onChange("")}});default:return r.default.createElement(i,{testid:a,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:e.onChange})}}function bn(e){const[a,l]=n.useState(JSON.parse(t.stringify(e.search))),[u,o]=n.useState(-1),i=n.useRef(a);if(i.current=a,n.useEffect((()=>{l(JSON.parse(t.stringify(e.search)))}),[e.search]),!e.visible)return null;const c=e.schema,s=e.search.resourceType,d=c.types[s].searchParams,m=a.filters||[];return r.default.createElement(qt,{title:"Filters",visible:e.visible,onOk:()=>e.onOk(i.current),onCancel:e.onCancel},r.default.createElement("div",{className:"medplum-filter-editor"},r.default.createElement("table",{className:"medplum-filter-editor-table"},r.default.createElement("thead",null,r.default.createElement("tr",null,r.default.createElement("th",{style:{width:"30%"}},"Field"),r.default.createElement("th",{style:{width:"30%"}},"Operation"),r.default.createElement("th",{style:{width:"30%"}},"Value"),r.default.createElement("th",{style:{width:"10%"}},"Actions"))),r.default.createElement("tbody",null,m.map(((e,t)=>t===u?r.default.createElement(Tn,{key:`filter-${t}-${m.length}-input`,schema:c,resourceType:s,searchParams:d,defaultValue:e,okText:"Save",onOk:e=>{const n=[...m];n[t]=e,l(Bt(i.current,n)),o(-1)},onCancel:()=>o(-1)}):r.default.createElement(Cn,{key:`filter-${t}-${m.length}-display`,resourceType:s,searchParams:d,filter:e,onEdit:()=>o(t),onDelete:()=>l(Gt(i.current,t))}))),r.default.createElement(Tn,{schema:c,resourceType:s,searchParams:d,okText:"Add",onOk:function(e){l(Kt(i.current,e.code,e.operator,e.value))}})))))}function Cn(e){const{filter:t}=e;return r.default.createElement("tr",null,r.default.createElement("td",null,vn(t.code)),r.default.createElement("td",null,pn(t.operator)),r.default.createElement("td",null,r.default.createElement(En,{resourceType:e.resourceType,filter:t})),r.default.createElement("td",null,r.default.createElement(g,{size:"small",onClick:e.onEdit},"Edit"),r.default.createElement(g,{size:"small",onClick:e.onDelete},"Delete")))}function Tn(e){var t;const[a,l]=n.useState(null!==(t=e.defaultValue)&&void 0!==t?t:{}),u=n.useRef(a);u.current=a;const o=e.searchParams[a.code],i=o&&fn(o);return r.default.createElement("tr",null,r.default.createElement("td",null,r.default.createElement(d,{testid:"filter-field",defaultValue:u.current.code,onChange:function(e){l(Object.assign(Object.assign({},u.current),{code:e}))}},r.default.createElement("option",{value:""}),Object.keys(e.searchParams).map((e=>r.default.createElement("option",{key:e,value:e},vn(e)))))),r.default.createElement("td",null,i&&r.default.createElement(d,{testid:"filter-operation",defaultValue:a.operator,onChange:function(e){l(Object.assign(Object.assign({},u.current),{operator:e}))}},r.default.createElement("option",{value:""}),i.map((e=>r.default.createElement("option",{key:e,value:e},pn(e)))))),r.default.createElement("td",null,o&&a.operator&&r.default.createElement(yn,{schema:e.schema,resourceType:e.resourceType,searchParam:o,defaultValue:a.value,onChange:function(e){l(Object.assign(Object.assign({},u.current),{value:e}))}})),r.default.createElement("td",null,a.code&&a.operator&&a.value&&r.default.createElement(g,{size:"small",onClick:()=>{e.onOk(u.current),l({})}},e.okText),e.onCancel&&r.default.createElement(g,{size:"small",onClick:e.onCancel},"Cancel")))}function Sn(e){var t;const[a,l]=n.useState(null!==(t=e.defaultValue)&&void 0!==t?t:"");if(!e.visible||!e.searchParam||!e.filter)return null;function u(){e.onOk(Object.assign(Object.assign({},e.filter),{value:a}))}return r.default.createElement(qt,{title:e.title,visible:e.visible,onOk:u,onCancel:e.onCancel},r.default.createElement("div",{style:{width:500}},r.default.createElement(Qe,{onSubmit:u},r.default.createElement(yn,{schema:e.schema,resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:a,autoFocus:!0,onChange:l}))))}function kn(){return r.default.createElement("div",{className:"medplum-menu-separator"})}function On(e){const[t,a]=n.useState(!1),[l,u]=n.useState(!1),[o,i]=n.useState(void 0),c=n.useRef(null),s=n.useRef(!1);s.current=t;const d=n.useRef(!1);function m(){const e=c.current;e&&(i(e.getBoundingClientRect()),u(!0))}return d.current=l,n.useEffect((()=>{const e=window.setInterval((()=>{!d.current&&s.current?m():d.current&&!s.current&&u(!1)}),150);return()=>window.clearInterval(e)}),[]),r.default.createElement("div",{ref:c,className:"medplum-menu-item medplum-submenu-item",onClick:()=>m(),onMouseOver:()=>a(!0),onMouseLeave:()=>a(!1)},e.title,r.default.createElement("span",{className:"medplum-submenu-arrow"},"►"),r.default.createElement(Ye,{visible:l,anchor:o,autoClose:!0,onClose:()=>u(!1)},e.children))}function xn(e){if(!e.searchParam)return null;const n=e.searchParam.code,a=e.searchParam.type;function l(t){o(sn(e.search,n,t))}function u(t){e.onPrompt({code:n,operator:t,value:""})}function o(t){e.onChange&&e.onChange(t)}return r.default.createElement(Ye,{visible:e.visible,anchor:{left:e.x,right:e.x,top:e.y,bottom:e.y},autoClose:!0,onClose:e.onClose},r.default.createElement(ze,{onClick:()=>l(!1)},function(){switch(a){case"date":return"Sort Oldest to Newest";case"number":case"quantity":return"Sort Smallest to Largest";default:return"Sort A to Z"}}()),r.default.createElement(ze,{onClick:()=>l(!0)},function(){switch(a){case"date":return"Sort Newest to Oldest";case"number":case"quantity":return"Sort Largest to Smallest";default:return"Sort Z to A"}}()),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>{o(Wt(e.search,n))}},"Clear filters"),"date"===a?r.default.createElement(On,{title:"Date filters"},r.default.createElement(ze,{onClick:()=>u(t.Operator.EQUALS)},"Equals..."),r.default.createElement(ze,{onClick:()=>u(t.Operator.NOT_EQUALS)},"Does not equal..."),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>u(t.Operator.ENDS_BEFORE)},"Before..."),r.default.createElement(ze,{onClick:()=>u(t.Operator.STARTS_AFTER)},"After..."),r.default.createElement(ze,{onClick:()=>u(t.Operator.EQUALS)},"Between..."),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>o(Xt(e.search,n))},"Tomorrow"),r.default.createElement(ze,{onClick:()=>o(Jt(e.search,n))},"Today"),r.default.createElement(ze,{onClick:()=>o(Yt(e.search,n))},"Yesterday"),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>o(nn(e.search,n))},"Next Month"),r.default.createElement(ze,{onClick:()=>o(tn(e.search,n))},"This Month"),r.default.createElement(ze,{onClick:()=>o(en(e.search,n))},"Last Month"),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>o(ln(e.search,n))},"Year to date"),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>u(t.Operator.EQUALS)},"Is set"),r.default.createElement(ze,{onClick:()=>u(t.Operator.EQUALS)},"Is not set")):r.default.createElement(On,{title:"Text filters"},r.default.createElement(ze,{onClick:()=>u(t.Operator.EQUALS)},"Equals..."),r.default.createElement(ze,{onClick:()=>u(t.Operator.NOT_EQUALS)},"Does not equal..."),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>u(t.Operator.CONTAINS)},"Contains..."),r.default.createElement(ze,{onClick:()=>u(t.Operator.EQUALS)},"Does not contain...")),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>{var n;return u("reference"===(null===(n=e.searchParam)||void 0===n?void 0:n.type)?t.Operator.EQUALS:t.Operator.CONTAINS)}},"Search"))}function jn(e){return r.default.createElement("div",{className:"medplum-title-bar"},e.children)}class Rn extends Event{constructor(e){super("change"),this.definition=e}}class wn extends Event{constructor(e){super("load"),this.response=e}}class Pn extends Event{constructor(e,t){super("click"),this.resource=e,this.browserEvent=t}}function Nn(e){var a,l,u,o;const i=b(),[c,s]=n.useState(),[m,f]=n.useState(),{search:p,onLoad:v}=e,[h,E]=n.useState({selected:{},popupVisible:!1,popupX:0,popupY:0,popupSearchParam:void 0,fieldEditorVisible:!1,filterEditorVisible:!1,filterDialogVisible:!1}),y=n.useRef(h);function C(t){e.onChange&&e.onChange(new Rn(t))}function k(t,n){S(t.target)||(T(t),1!==t.button&&e.onClick&&e.onClick(new Pn(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new Pn(n,t)))}y.current=h,n.useEffect((()=>{f(void 0),i.search(p.resourceType,t.formatSearchQuery(Object.assign(Object.assign({},p),{total:"accurate"}))).then((e=>{E(Object.assign(Object.assign({},y.current),{searchResponse:e})),v&&v(new wn(e))})).catch((e=>{E(Object.assign(Object.assign({},y.current),{searchResponse:void 0})),f(e)}))}),[i,p,v]),n.useEffect((()=>{i.requestSchema(e.search.resourceType).then((e=>{s(Object.assign({},e))}))}),[i,e.search.resourceType]);if(!(null===(a=null==c?void 0:c.types)||void 0===a?void 0:a[e.search.resourceType]))return r.default.createElement(qe,null);const O=e.checkboxesEnabled,x=function(e,t){const n=t.resourceType,a=[];for(const l of t.fields||["id","_lastUpdated"])a.push(Qt(e,n,l));return a}(c,p),j=p.resourceType,R=h.searchResponse,w=null==R?void 0:R.entry,P=null==w?void 0:w.map((e=>e.resource)),N=null===(u=null===(l=e.userConfig)||void 0===l?void 0:l.search)||void 0===u?void 0:u.filter((e=>{var t;return null===(t=e.criteria)||void 0===t?void 0:t.startsWith(j)}));return r.default.createElement("div",{className:"medplum-search-control",onContextMenu:e=>T(e),"data-testid":"search-control"},r.default.createElement(jn,null,r.default.createElement("div",null,r.default.createElement("h1",null,r.default.createElement("a",{href:`https://www.hl7.org/fhir/${j.toLowerCase()}.html`,target:"_blank",rel:"noopener"},j)),N&&r.default.createElement(d,{testid:"saved-search-select",style:{width:80},onChange:e=>{C(t.parseSearchDefinition(e))}},r.default.createElement("option",null),N.map(((e,t)=>r.default.createElement("option",{key:`${t}-${N.length}`,value:e.criteria},e.name)))),r.default.createElement(g,{testid:"fields-button",size:"small",onClick:()=>E(Object.assign(Object.assign({},y.current),{fieldEditorVisible:!0}))},"Fields"),r.default.createElement(g,{testid:"filters-button",size:"small",onClick:()=>E(Object.assign(Object.assign({},y.current),{filterEditorVisible:!0}))},"Filters"),e.onNew&&r.default.createElement(g,{size:"small",onClick:e.onNew},"New..."),e.onExport&&r.default.createElement(g,{size:"small",onClick:e.onExport},"Export..."),e.onDelete&&r.default.createElement(g,{size:"small",onClick:()=>e.onDelete(Object.keys(h.selected))},"Delete..."),e.onBulk&&r.default.createElement(g,{size:"small",onClick:()=>e.onBulk(Object.keys(h.selected))},"Bulk...")),R&&r.default.createElement("div",null,r.default.createElement("span",{className:"medplum-search-summary"},function(e,t){var n;return Math.min(t,(null!==(n=e.offset)&&void 0!==n?n:0)+1)}(p,R.total),"-",function(e,n){var a,l;return Math.min(n,((null!==(a=e.offset)&&void 0!==a?a:0)+1)*(null!==(l=e.count)&&void 0!==l?l:t.DEFAULT_SEARCH_COUNT))}(p,R.total)," of"," ",null===(o=R.total)||void 0===o?void 0:o.toLocaleString()),r.default.createElement(g,{testid:"prev-page-button",size:"small",onClick:()=>C(cn(p,-1))},"<<"),r.default.createElement(g,{testid:"next-page-button",size:"small",onClick:()=>C(cn(p,1))},">>"))),r.default.createElement("table",null,r.default.createElement("thead",null,r.default.createElement("tr",null,O&&r.default.createElement("th",{className:"medplum-search-icon-cell"},r.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:function(){var e,t;const n=y.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,a={},l=null===(t=y.current)||void 0===t?void 0:t.searchResponse;n&&(null==l?void 0:l.entry)&&l.entry.forEach((e=>{var t;(null===(t=e.resource)||void 0===t?void 0:t.id)&&(a[e.resource.id]=!0)})),E(Object.assign(Object.assign({},y.current),{selected:a}))}(e)})),x.map((e=>r.default.createElement("th",{key:e.name,onClick:t=>function(e,t){E(Object.assign(Object.assign({},y.current),{popupVisible:!0,popupX:e.clientX,popupY:e.clientY,popupSearchParam:t}))}(t,e.searchParam)},vn(e.name),e.searchParam&&r.default.createElement(In,null))))),r.default.createElement("tr",null,O&&r.default.createElement("th",{className:"filters medplum-search-icon-cell"}),x.map((t=>r.default.createElement("th",{key:t.name,className:"filters"},t.searchParam&&r.default.createElement(Dn,{resourceType:j,searchParam:t.searchParam,filters:e.search.filters})))))),r.default.createElement("tbody",null,null==P?void 0:P.map((e=>e&&r.default.createElement("tr",{key:e.id,"data-testid":"search-control-row",onClick:t=>k(t,e),onAuxClick:t=>k(t,e)},O&&r.default.createElement("td",{className:"medplum-search-icon-cell"},r.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!h.selected[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,a=Object.assign({},y.current.selected);n?a[t]=!0:delete a[t],E(Object.assign(Object.assign({},y.current),{selected:a}))}(t,e.id)})),x.map((t=>r.default.createElement("td",{key:t.name},hn(c,e,t))))))))),0===(null==P?void 0:P.length)&&r.default.createElement("div",{"data-testid":"empty-search",className:"medplum-empty-search"},"No results"),m&&r.default.createElement("div",{"data-testid":"search-error",className:"medplum-empty-search"},r.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(m,void 0,2))),r.default.createElement(xn,{schema:c,search:e.search,visible:h.popupVisible,x:h.popupX,y:h.popupY,searchParam:h.popupSearchParam,onPrompt:e=>{E(Object.assign(Object.assign({},y.current),{popupVisible:!1,filterDialogVisible:!0,filterDialogFilter:e}))},onChange:e=>{C(e),E(Object.assign(Object.assign({},y.current),{popupVisible:!1,popupSearchParam:void 0}))},onClose:()=>{E(Object.assign(Object.assign({},y.current),{popupVisible:!1,popupSearchParam:void 0}))}}),r.default.createElement(gn,{schema:c,search:e.search,visible:y.current.fieldEditorVisible,onOk:e=>{C(e),E(Object.assign(Object.assign({},y.current),{fieldEditorVisible:!1}))},onCancel:()=>{E(Object.assign(Object.assign({},y.current),{fieldEditorVisible:!1}))}}),r.default.createElement(bn,{schema:c,search:e.search,visible:y.current.filterEditorVisible,onOk:e=>{C(e),E(Object.assign(Object.assign({},y.current),{filterEditorVisible:!1}))},onCancel:()=>{E(Object.assign(Object.assign({},y.current),{filterEditorVisible:!1}))}}),r.default.createElement(Sn,{visible:y.current.filterDialogVisible,title:"Input",schema:c,resourceType:j,searchParam:h.popupSearchParam,filter:h.filterDialogFilter,defaultValue:"",onOk:t=>{C(Kt(e.search,t.code,t.operator,t.value)),E(Object.assign(Object.assign({},y.current),{filterDialogVisible:!1}))},onCancel:()=>{E(Object.assign(Object.assign({},y.current),{filterDialogVisible:!1}))}}))}const Vn=r.default.memo(Nn);function Dn(e){var t;const n=(null!==(t=e.filters)&&void 0!==t?t:[]).filter((t=>t.code===e.searchParam.code));return 0===n.length?r.default.createElement("span",null,"no filters"):r.default.createElement(r.default.Fragment,null,n.map(((t,a)=>r.default.createElement("div",{key:`filter-${a}-${n.length}`},pn(t.operator)," ",r.default.createElement(En,{resourceType:e.resourceType,filter:t})))))}function In(){return r.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"rgba(0, 0, 0, 0.3)",strokeWidth:2},r.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 6h16M4 12h16m-7 6h7"}))}function An(e,t){const n=document.getElementsByTagName("head")[0],a=document.createElement("script");a.async=!0,a.src=e,a.onload=t||null,n.appendChild(a)}function Fn(e){const t=b(),{handleAuthResponse:a}=e,l=function(e){var t,n;if(e)return e;const a=window.location.protocol+"//"+window.location.host;if((null!==(n=null===(t="http://localhost:3000,http://localhost:6006,https://app.medplum.com,https://docs.medplum.com")||void 0===t?void 0:t.split(","))&&void 0!==n?n:[]).includes(a))return"921088377005-3j1sa10vr6hj86jgmdfh2l53v3mp7lfi.apps.googleusercontent.com";return}(e.googleClientId),u=n.useRef(null),[o,i]=n.useState("undefined"!=typeof google),[c,s]=n.useState(!1),[d,m]=n.useState(!1);return n.useEffect((()=>{"undefined"!=typeof google?(c||(google.accounts.id.initialize({client_id:l,callback:e=>t.startGoogleLogin(e).then(a)}),s(!0)),u.current&&!d&&(google.accounts.id.renderButton(u.current,{}),m(!0))):An("https://accounts.google.com/gsi/client",(()=>i(!0)))}),[t,l,c,o,u,d,a]),l?r.default.createElement("div",{ref:u}):null}function Ln(e){const t=b(),[a,l]=n.useState(),u=o(a,void 0);return r.default.createElement(Qe,{style:{maxWidth:400},onSubmit:n=>{t.startLogin({email:n.email,password:n.password,remember:"true"===n.remember}).then(e.handleAuthResponse).catch(l)}},r.default.createElement("div",{className:"medplum-center"},e.children),u&&r.default.createElement("div",{className:"medplum-input-error"},u.map((e=>{var t,n;return r.default.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)}))),r.default.createElement(I,{title:"Email",htmlFor:"email",outcome:a},r.default.createElement(i,{name:"email",type:"email",testid:"email",required:!0,autoFocus:!0,outcome:a})),r.default.createElement(I,{title:"Password",htmlFor:"password",outcome:a},r.default.createElement(i,{name:"password",type:"password",testid:"password",autoComplete:"off",required:!0,outcome:a})),r.default.createElement("div",{className:"medplum-signin-buttons"},(e.onForgotPassword||e.onRegister)&&r.default.createElement("div",null,e.onForgotPassword&&r.default.createElement(w,{testid:"forgotpassword",onClick:e.onForgotPassword},"Forgot password"),e.onRegister&&r.default.createElement(w,{testid:"register",onClick:e.onRegister},"Register")),r.default.createElement("div",null,r.default.createElement("input",{type:"checkbox",id:"remember",name:"remember",value:"true"}),r.default.createElement("label",{htmlFor:"remember"},"Remember me")),r.default.createElement("div",null,r.default.createElement(g,{type:"submit",testid:"submit"},"Sign in"))),r.default.createElement("div",{className:"medplum-signin-google-container"},r.default.createElement(Fn,{googleClientId:e.googleClientId,handleAuthResponse:e.handleAuthResponse})))}function Mn(e){const t=b();return r.default.createElement("div",null,r.default.createElement("div",{className:"medplum-center"},r.default.createElement(vt,{size:32}),r.default.createElement("h1",null,"Choose profile")),e.memberships.map((n=>{var a,l,u;return r.default.createElement("div",{className:"medplum-nav-menu-profile",key:n.id,onClick:()=>{t.post("auth/profile",{login:e.login,profile:n.id}).then(e.handleAuthResponse)}},r.default.createElement("div",{className:"medplum-nav-menu-profile-icon"},r.default.createElement(V,{alt:null===(a=n.profile)||void 0===a?void 0:a.display})),r.default.createElement("div",{className:"medplum-nav-menu-profile-label"},null===(l=n.profile)||void 0===l?void 0:l.display,r.default.createElement("div",{className:"medplum-nav-menu-profile-help-text"},null===(u=n.project)||void 0===u?void 0:u.display)))})))}function $n(e){const n=t.evalFhirPath(e.path,e.resource);if(n.length>1)throw new Error(`Component "path" for "FhirPathDisplay" must resolve to a single element. Received ${n.length} elements [${JSON.stringify(n,null,2)}]`);return r.default.createElement(X,{value:n[0]||"",propertyType:e.propertyType})}function _n(e){var t,a,l,u,o;const i=b(),[c,s]=n.useState(),[d,m]=n.useState(),{query:f,fields:p}=e,[v,h]=n.useState(),[E,y]=n.useState({}),C=n.useRef();C.current=v;const k=n.useRef({});function O(t,n){S(t.target)||(T(t),1!==t.button&&e.onClick&&e.onClick(new Pn(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new Pn(n,t)))}k.current=E,n.useEffect((()=>{m(void 0),i.graphql(f).then(h).catch(m)}),[i,f]),n.useEffect((()=>{i.requestSchema(e.resourceType).then((e=>{s(Object.assign({},e))}))}),[i,e.resourceType]);if(!(null===(t=null==c?void 0:c.types)||void 0===t?void 0:t[e.resourceType]))return r.default.createElement(qe,null);const x=e.checkboxesEnabled;return r.default.createElement("div",{className:"medplum-search-control",onContextMenu:e=>T(e),"data-testid":"search-control"},r.default.createElement("table",null,r.default.createElement("thead",null,r.default.createElement("tr",null,x&&r.default.createElement("th",{className:"medplum-search-icon-cell"},r.default.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=C.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)&&!k.current[e.id])return!1;return!0}(),onChange:e=>function(e){var t,n;e.stopPropagation();const a=e.target.checked,l={},r=null===(n=null===(t=C.current)||void 0===t?void 0:t.data)||void 0===n?void 0:n.ResourceList;a&&r&&r.forEach((e=>{(null==e?void 0:e.id)&&(l[e.id]=!0)})),y(l)}(e)})),p.map((e=>r.default.createElement("th",{key:e.name},e.name))))),r.default.createElement("tbody",null,null===(l=null===(a=null==v?void 0:v.data)||void 0===a?void 0:a.ResourceList)||void 0===l?void 0:l.map((e=>e&&r.default.createElement("tr",{key:e.id,"data-testid":"search-control-row",onClick:t=>O(t,e),onAuxClick:t=>O(t,e)},x&&r.default.createElement("td",{className:"medplum-search-icon-cell"},r.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!E[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,a=Object.assign({},k.current);n?a[t]=!0:delete a[t],y(a)}(t,e.id)})),p.map((t=>r.default.createElement("td",{key:t.name},r.default.createElement($n,{propertyType:t.propertyType,path:t.fhirPath,resource:e}))))))))),0===(null===(o=null===(u=null==v?void 0:v.data)||void 0===u?void 0:u.ResourceList)||void 0===o?void 0:o.length)&&r.default.createElement("div",{"data-testid":"empty-search",className:"medplum-empty-search"},"No results"),d&&r.default.createElement("div",{"data-testid":"search-error",className:"medplum-empty-search"},r.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(d,void 0,2))),e.onBulk&&r.default.createElement(g,{size:"small",onClick:()=>e.onBulk(Object.keys(k.current))},"Bulk..."))}const Un=r.default.memo(_n);function Qn(e){let t="medplum-tab";function n(t){T(t),e.onClick(e.name,t.button)}return e.selected&&(t+=" selected"),r.default.createElement("a",{href:`#${e.name}`,role:"tab","aria-selected":e.selected,className:t,onClick:n,onAuxClick:n},e.label)}function qn(e){return r.default.createElement("div",{role:"tabpanel"},e.children)}e.AddressDisplay=u,e.AddressInput=p,e.AttachmentArrayDisplay=h,e.AttachmentArrayInput=x,e.AttachmentInput=j,e.Autocomplete=R,e.Avatar=V,e.BackboneElementInput=Ve,e.Button=g,e.CodeInput=oe,e.CodeableConceptDisplay=$,e.CodeableConceptInput=te,e.ContactPointDisplay=_,e.ContactPointInput=ce,e.DateTimeDisplay=U,e.DateTimeInput=se,e.DefaultResourceTimeline=function(e){return r.default.createElement(at,{value:e.resource,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:[{request:{method:"GET",url:`${t.getReferenceString(e)}/_history`}},{request:{method:"GET",url:`AuditEvent?entity=${t.getReferenceString(e)}&_sort=-_lastUpdated`}}]})})},e.DiagnosticReportDisplay=Ie,e.Document=st,e.ElementDefinitionInputSelector=Re,e.ElementDefinitionTypeInput=we,e.EncounterTimeline=function(e){return r.default.createElement(at,{value:e.encounter,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:[{request:{method:"GET",url:`${t.getReferenceString(e)}/_history`}},{request:{method:"GET",url:`Communication?encounter=${t.getReferenceString(e)}`}},{request:{method:"GET",url:`Media?encounter=${t.getReferenceString(e)}`}}]}),createCommunication:(e,n,a)=>({resourceType:"Communication",encounter:t.createReference(e),subject:e.subject,sender:t.createReference(n),sent:(new Date).toISOString(),payload:[{contentString:a}]}),createMedia:(e,n,a)=>({resourceType:"Media",encounter:t.createReference(e),subject:e.subject,operator:t.createReference(n),issued:(new Date).toISOString(),content:a})})},e.ErrorBoundary=Ge,e.FhirPathTable=_n,e.FooterLinks=function(e){return r.default.createElement("div",{className:"medplum-footer"},e.children)},e.Form=Qe,e.FormSection=I,e.Header=function(e){var l,u,o,i,c,s;const d=a.useNavigate(),m=a.useLocation(),f=y(),p=f.medplum,v=p.getLogins(),[h,E]=n.useState(!1),[b,C]=n.useState(!1);return r.default.createElement(r.default.Fragment,null,r.default.createElement("header",{role:"banner","data-testid":"header",style:{background:e.bgColor}},r.default.createElement("div",null,r.default.createElement(w,{label:"Toggle sidebar",testid:"header-menu-button",onClick:()=>C(!b)},r.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",style:{width:20,height:20,verticalAlign:"text-top"},viewBox:"0 0 20 20",fill:"currentColor"},r.default.createElement("path",{fillRule:"evenodd",d:"M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z",clipRule:"evenodd"}))),r.default.createElement(w,{id:"medplum-header-logo",testid:"header-logo",onClick:e.onLogo},e.title||"Medplum"),f.profile&&r.default.createElement(mt,{key:`header-input-${m.pathname}`,name:"search",className:"medplum-nav-search-container",placeholder:"Search",onChange:e=>d(`/${e.resourceType}/${e.id}`)})),f.profile&&r.default.createElement("div",{className:"medplum-nav-menu-container"},r.default.createElement(w,{testid:"header-profile-menu-button",onClick:()=>E(!0)},r.default.createElement(V,{size:"small",color:"#f68d42",value:f.profile})),r.default.createElement(Ye,{visible:h,autoClose:!0,activeClassName:"medplum-nav-menu-popover",onClose:()=>E(!1)},r.default.createElement("div",{className:"medplum-nav-menu"},r.default.createElement("div",{style:{margin:"auto",padding:"8px"}},r.default.createElement(V,{size:"large",value:f.profile})),r.default.createElement("div",{style:{margin:"auto",padding:"8px"}},r.default.createElement("div",{style:{margin:"4px auto 4px auto",fontWeight:"bold"}},r.default.createElement(Q,{value:null===(u=null===(l=f.profile)||void 0===l?void 0:l.name)||void 0===u?void 0:u[0]})),r.default.createElement("div",{style:{margin:"4px auto 4px auto"}},null===(i=null===(o=p.getActiveLogin())||void 0===o?void 0:o.project)||void 0===i?void 0:i.display),r.default.createElement(g,{testid:"header-profile-link",onClick:()=>{E(!1),e.onProfile&&e.onProfile()}},"Manage your account")),v.length>1&&r.default.createElement("div",null,r.default.createElement("hr",null),v.map((e=>{var n,a,l,u;return(null===(n=e.profile)||void 0===n?void 0:n.reference)!==t.getReferenceString(f.profile)&&r.default.createElement("div",{className:"medplum-nav-menu-profile",key:null===(a=e.profile)||void 0===a?void 0:a.reference,onClick:()=>{p.setActiveLogin(e),E(!1),window.location.reload()}},r.default.createElement("div",{className:"medplum-nav-menu-profile-icon"},r.default.createElement(V,null)),r.default.createElement("div",{className:"medplum-nav-menu-profile-label"},null===(l=e.profile)||void 0===l?void 0:l.display,r.default.createElement("div",{className:"medplum-nav-menu-profile-help-text"},null===(u=e.project)||void 0===u?void 0:u.display)))}))),r.default.createElement("hr",null),r.default.createElement("div",{style:{margin:"auto",padding:"8px"}},r.default.createElement(g,{testid:"header-add-account-button",onClick:()=>{d("/signin")}},"Add another account")),r.default.createElement("hr",null),r.default.createElement("div",{style:{margin:"auto",padding:"8px"}},r.default.createElement(g,{testid:"header-signout-button",onClick:()=>{E(!1),e.onSignOut&&e.onSignOut()}},"Sign out of all accounts")),r.default.createElement("hr",null),r.default.createElement("div",{style:{margin:"auto",padding:"8px",fontSize:"12px"}},r.default.createElement("a",{href:"https://www.medplum.com/terms"},"Terms"),r.default.createElement("a",{href:"https://www.medplum.com/privacy"},"Privacy")))))),r.default.createElement(Ye,{modal:!0,autoClose:!0,visible:b,activeClassName:"medplum-sidebar active",inactiveClassName:"medplum-sidebar",onClose:()=>C(!1)},null===(s=null===(c=e.config)||void 0===c?void 0:c.menu)||void 0===s?void 0:s.map(((t,n)=>{var a,l,u;return r.default.createElement(r.default.Fragment,{key:`menu-${n}-${null===(l=null===(a=e.config)||void 0===a?void 0:a.menu)||void 0===l?void 0:l.length}`},r.default.createElement("h5",null,t.title),r.default.createElement("ul",null,null===(u=t.link)||void 0===u?void 0:u.map((e=>r.default.createElement("li",{key:e.target},r.default.createElement(w,{to:e.target},e.name))))))})),r.default.createElement("h5",null,"Settings"),r.default.createElement("ul",null,r.default.createElement("li",null,r.default.createElement(w,{to:f.profile},"Profile")),r.default.createElement("li",null,r.default.createElement(w,{to:"/changepassword"},"Change password")))))},e.HumanNameDisplay=Q,e.HumanNameInput=he,e.IdentifierInput=ge,e.Input=i,e.Loading=qe,e.Logo=vt,e.MedplumLink=w,e.MedplumProvider=function(e){const t=e.medplum,[a,l]=n.useState({profile:t.getProfile(),loading:!1});n.useEffect((()=>{function e(){l(Object.assign(Object.assign({},a),{profile:t.getProfile()}))}return t.addEventListener("change",e),()=>t.removeEventListeneer("change",e)}),[t,a]);const u=Object.assign(Object.assign({},a),{medplum:t});return r.default.createElement(E.Provider,{value:u},e.children)},e.MemoizedFhirPathTable=Un,e.MemoizedSearchControl=Vn,e.MenuItem=ze,e.ObservationTable=Ae,e.PatientTimeline=function(e){return r.default.createElement(at,{value:e.patient,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:ht.map((n=>({request:{method:"GET",url:n.replaceAll("$",t.getReferenceString(e))}})))}),createCommunication:(e,n,a)=>({resourceType:"Communication",subject:t.createReference(e),sender:t.createReference(n),sent:(new Date).toISOString(),payload:[{contentString:a}]}),createMedia:(e,n,a)=>({resourceType:"Media",subject:t.createReference(e),operator:t.createReference(n),issued:(new Date).toISOString(),content:a})})},e.Popup=Ye,e.QuestionnaireBuilder=function(e){const t=b(),a=N(e.questionnaire),[l,u]=n.useState(),[o,i]=n.useState(),[c,s]=n.useState(),[d,m]=n.useState();function f(){m(void 0)}function p(){s(void 0)}return n.useEffect((()=>{t.requestSchema("Questionnaire").then(u)}),[t]),n.useEffect((()=>{var e;return i((e=null!=a?a:{resourceType:"Questionnaire"},Object.assign(Object.assign({},e),{id:e.id||Pt(),item:Nt(e.item)}))),document.addEventListener("mouseover",f),document.addEventListener("click",p),()=>{document.removeEventListener("mouseover",f),document.removeEventListener("click",p)}}),[a]),l&&o?r.default.createElement("div",{className:"medplum-questionnaire-builder"},r.default.createElement(Qe,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(o)},r.default.createElement(Ot,{schema:l,item:o,selectedKey:c,setSelectedKey:s,hoverKey:d,setHoverKey:m,onChange:i}),r.default.createElement(g,{type:"submit",size:"large"},"Save"))):null},e.QuestionnaireForm=function(e){const a=b(),l=a.getProfile(),[u,o]=n.useState(),i=N(e.questionnaire),[c,s]=n.useState();return n.useEffect((()=>{a.requestSchema("Questionnaire").then(o)}),[a]),n.useEffect((()=>{s(i?function(e){return{resourceType:"QuestionnaireResponse",questionnaire:t.getReferenceString(e),item:Tt(e.item)}}(i):void 0)}),[i]),u&&i?r.default.createElement(Qe,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&c&&e.onSubmit(Object.assign(Object.assign({},c),{questionnaire:t.getReferenceString(i),subject:e.subject,source:t.createReference(l),authored:(new Date).toISOString()}))}},i.title&&r.default.createElement("h1",null,i.title),i.item&&r.default.createElement(bt,{schema:u,items:i.item,onChange:function(e){s({resourceType:"QuestionnaireResponse",item:e})}}),r.default.createElement(g,{type:"submit",size:"large"},"OK")):null},e.QuestionnaireFormItem=Ct,e.RangeDisplay=W,e.RangeInput=Ce,e.ReferenceInput=Oe,e.ResourceArrayDisplay=J,e.ResourceArrayInput=xe,e.ResourceBadge=De,e.ResourceBlame=function(e){var t,a;const l=b(),[u,o]=n.useState(e.history);if(n.useEffect((()=>{!e.history&&e.resourceType&&e.id&&l.readHistory(e.resourceType,e.id).then((e=>o(e)))}),[l,e.history,e.resourceType,e.id]),!u)return r.default.createElement("div",null,"Loading...");const i=null===(a=null===(t=u.entry)||void 0===t?void 0:t[0])||void 0===a?void 0:a.resource,c=At(u);return r.default.createElement("div",{className:"medplum-blame-container"},r.default.createElement("table",{className:"medplum-blame"},r.default.createElement("tbody",null,c.map(((e,t)=>r.default.createElement("tr",{key:"row-"+t,className:e.span>0?"start-row":"normal-row"},e.span>0&&r.default.createElement("td",{className:"details",rowSpan:e.span},r.default.createElement(s,{justifyContent:"space-between"},r.default.createElement(De,{value:e.meta.author,size:"xsmall",link:!0}),r.default.createElement(w,{to:Ft(i,e.meta.versionId)},Lt(e.meta.lastUpdated)))),r.default.createElement("td",{className:"line-number"},t+1),r.default.createElement("td",{className:"line"},r.default.createElement("pre",{className:"line-pre"},e.value))))))))},e.ResourceDiff=function(e){let n=e.original,a=e.revised;e.ignoreMeta&&(n=Object.assign(Object.assign({},n),{meta:void 0}),a=Object.assign(Object.assign({},a),{meta:void 0}));const l=Dt(t.stringify(n,!0).match(/[^\r\n]+/g),t.stringify(a,!0).match(/[^\r\n]+/g));return r.default.createElement("pre",{style:{color:"gray"}},l.map(((e,t)=>r.default.createElement($t,{key:"delta"+t,delta:e}))))},e.ResourceForm=function(e){const a=b(),l=N(e.defaultValue),[u,o]=n.useState(),[c,s]=n.useState();if(n.useEffect((()=>{l&&(s(JSON.parse(JSON.stringify(l))),a.requestSchema(l.resourceType).then(o))}),[a,l]),!u||!c)return r.default.createElement("div",null,"Loading...");const d=u.types[c.resourceType];return r.default.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:t=>{t.preventDefault(),e.onSubmit&&e.onSubmit(c)}},r.default.createElement(I,{title:"Resource Type"},r.default.createElement(i,{name:"resourceType",defaultValue:c.resourceType,disabled:!0})),r.default.createElement(I,{title:"ID"},r.default.createElement(i,{name:"id",defaultValue:c.id,disabled:!0})),Object.entries(d.properties).map((n=>{const a=n[0];if("id"===a||D.indexOf(a)>=0)return null;const l=n[1],[o,i]=Z(c,l);return r.default.createElement(I,{key:a,title:t.getPropertyDisplayName(l),description:l.definition,htmlFor:a,outcome:e.outcome},r.default.createElement(je,{schema:u,property:l,name:a,defaultValue:o,defaultPropertyType:i,outcome:e.outcome,onChange:(e,t)=>{s(Ne(c,a,null!=t?t:a,n[1],e))}}))})),r.default.createElement(g,{type:"submit",size:"large"},"OK"),e.onDelete&&r.default.createElement(g,{type:"button",size:"large",onClick:()=>{e.onDelete(c)}},"Delete"))},e.ResourceHistoryTable=function(e){var t;const a=b(),[l,u]=n.useState(e.history);return n.useEffect((()=>{!e.history&&e.resourceType&&e.id&&a.readHistory(e.resourceType,e.id).then((e=>u(e)))}),[a,e.history,e.resourceType,e.id]),l?r.default.createElement("table",{className:"medplum-table"},r.default.createElement("thead",null,r.default.createElement("tr",null,r.default.createElement("th",null,"Author"),r.default.createElement("th",null,"Date"),r.default.createElement("th",null,"Version"))),r.default.createElement("tbody",null,null===(t=l.entry)||void 0===t?void 0:t.map((e=>{var t,n;return r.default.createElement(_t,{key:null===(n=null===(t=e.resource)||void 0===t?void 0:t.meta)||void 0===n?void 0:n.versionId,version:e.resource})})))):r.default.createElement("div",null,"Loading...")},e.ResourceInput=ke,e.ResourceName=Se,e.ResourcePropertyDisplay=X,e.ResourcePropertyInput=je,e.ResourceTable=We,e.ResourceTimeline=at,e.Scrollable=Ke,e.SearchChangeEvent=Rn,e.SearchClickEvent=Pn,e.SearchControl=Nn,e.SearchFieldEditor=gn,e.SearchFilterEditor=bn,e.SearchLoadEvent=wn,e.Select=d,e.ServiceRequestTimeline=function(e){return r.default.createElement(at,{value:e.serviceRequest,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:[{request:{method:"GET",url:`${t.getReferenceString(e)}/_history`}},{request:{method:"GET",url:`Communication?based-on=${t.getReferenceString(e)}`}},{request:{method:"GET",url:`Media?_count=100&based-on=${t.getReferenceString(e)}`}},{request:{method:"GET",url:`DiagnosticReport?based-on=${t.getReferenceString(e)}`}}]}),createCommunication:(e,n,a)=>({resourceType:"Communication",basedOn:[t.createReference(e)],subject:e.subject,sender:t.createReference(n),sent:(new Date).toISOString(),payload:[{contentString:a}]}),createMedia:(e,n,a)=>({resourceType:"Media",basedOn:[t.createReference(e)],subject:e.subject,operator:t.createReference(n),issued:(new Date).toISOString(),content:a})})},e.SignInForm=function(e){const t=b(),[a,l]=n.useState(void 0),[u,o]=n.useState(void 0);function i(n){n.login&&l(n.login),n.memberships&&o(n.memberships),n.code&&t.processCode(n.code).then((()=>{e.onSuccess&&e.onSuccess()})).catch(console.log)}return r.default.createElement(st,{width:450},a?u?r.default.createElement(Mn,{login:a,memberships:u,handleAuthResponse:i}):r.default.createElement("div",null,"Success"):r.default.createElement(Ln,{googleClientId:e.googleClientId,onForgotPassword:e.onForgotPassword,onRegister:e.onRegister,handleAuthResponse:i},e.children))},e.Tab=Qn,e.TabList=function(e){return r.default.createElement(Ke,{className:"medplum-surface",height:50},r.default.createElement("div",{role:"tablist",className:"medplum-tablist"},r.default.createElement("div",{className:"medplum-tablist-foreground"},r.default.Children.map(e.children,((t,n)=>r.default.isValidElement(t)&&t.type===Qn?r.default.cloneElement(t,{selected:t.props.name===e.value,onClick:e.onChange,tabIndex:n}):null)))))},e.TabPanel=qn,e.TabSwitch=function(e){return r.default.createElement(r.default.Fragment,null,r.default.Children.map(e.children,(t=>r.default.isValidElement(t)&&t.type===qn&&t.props.name===e.value?t:null)))},e.TextArea=pe,e.Timeline=Je,e.TimelineItem=Xe,e.TitleBar=jn,e.addDateEqualsFilter=function(e,t,n){return rn(e,t,n,n)},e.addDateFilter=function(e,t,n,a){return un(e=Wt(e,t),t,n,a)},e.addDateFilterBetween=rn,e.addField=function(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})},e.addFilter=Kt,e.addLastMonthFilter=en,e.addNextMonthFilter=nn,e.addQuestionnaireInitialValues=function(e,t){return Object.assign(Object.assign({},e),{item:Et(e.item,t)})},e.addThisMonthFilter=tn,e.addTodayFilter=Jt,e.addTomorrowFilter=Xt,e.addUserFilter=function(e,t,n,a){return Kt(e=Wt(e,t),t,n,a)},e.addYearToDateFilter=ln,e.addYesterdayFilter=Yt,e.buildFieldNameString=vn,e.clearFilters=function(e){return Bt(e,[])},e.clearFiltersOnField=Wt,e.convertIsoToLocal=de,e.convertLocalToIso=me,e.createScriptTag=An,e.deleteFilter=Gt,e.formatRangeString=K,e.getOpString=pn,e.getSearchOperators=fn,e.getSortField=dn,e.getTimeString=Lt,e.getValueAndType=Z,e.hasFilterOnField=function(e,t){return!!e.filters&&void 0!==e.filters.find((e=>e.code===t))},e.isChoiceQuestion=yt,e.isSortDescending=mn,e.movePage=cn,e.parseForm=$e,e.renderValue=hn,e.setFilters=Bt,e.setOffset=on,e.setPropertyValue=Ne,e.setSort=sn,e.sortByDateAndPriority=Ze,e.toggleSort=function(e,t){let n=!1;return dn(e)===t&&(n=!mn(e)),sn(e,t,n)},e.useMedplum=b,e.useMedplumContext=y,e.useMedplumProfile=C,e.useResource=N,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@medplum/core"),require("react"),require("react-router-dom")):"function"==typeof define&&define.amd?define(["exports","@medplum/core","react","react-router-dom"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).medplum=e.medplum||{},e.medplum.ui={}),e.medplum.core,e.React,e.ReactRouterDOM)}(this,(function(e,t,n,a){"use strict";function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=l(n);function u(e){const n=e.value;return n?r.default.createElement(r.default.Fragment,null,t.formatAddress(n)):null}function o(e,t){var n;return null===(n=null==e?void 0:e.issue)||void 0===n?void 0:n.filter((e=>{var n;return(null===(n=e.expression)||void 0===n?void 0:n[0])===t}))}function i(e){const t=o(e.outcome,e.name),n=t&&t.length>0;return r.default.createElement("input",{id:e.name,name:e.name,type:c(e.type),size:e.size,step:e.step,className:"medplum-input",defaultValue:e.defaultValue||"",required:e.required,autoCapitalize:e.autoCapitalize,autoComplete:e.autoComplete,autoFocus:e.autoFocus,ref:e.inputRef,"aria-invalid":n,"aria-describedby":n?e.name+"-errors":"",placeholder:e.placeholder,"data-testid":e.testid,disabled:e.disabled,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)}})}function c(e){return e||"text"}function s(e){return r.default.createElement("div",{className:"medplum-input-row",style:{justifyContent:e.justifyContent}},e.children)}function d(e){const t=o(e.outcome,e.name),n=t&&t.length>0;return r.default.createElement("select",{id:e.name,name:e.name,className:"medplum-select",defaultValue:e.defaultValue||"",required:e.required,autoFocus:e.autoFocus,ref:e.inputRef,style:e.style,"aria-invalid":n,"aria-describedby":n?e.name+"-errors":"","data-testid":e.testid,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)}},e.children)}function m(e,t){return e&&e.line&&e.line.length>t?e.line[t]:""}function f(e,t,n){const a=e.line||[];for(;a.length<=t;)a.push("");return a[t]=n,Object.assign(Object.assign({},e),{line:a})}function p(e){const[t,a]=n.useState(e.defaultValue||{}),l=n.useRef();function u(t){a(t),e.onChange&&e.onChange(t)}return l.current=t,r.default.createElement(s,null,r.default.createElement(d,{testid:"address-use",defaultValue:null==t?void 0:t.use,onChange:function(e){u(Object.assign(Object.assign({},l.current),{use:e}))}},r.default.createElement("option",null),r.default.createElement("option",null,"home"),r.default.createElement("option",null,"mobile"),r.default.createElement("option",null,"old"),r.default.createElement("option",null,"temp"),r.default.createElement("option",null,"work")),r.default.createElement(d,{testid:"address-type",defaultValue:null==t?void 0:t.type,onChange:function(e){u(Object.assign(Object.assign({},l.current),{type:e}))}},r.default.createElement("option",null),r.default.createElement("option",null,"postal"),r.default.createElement("option",null,"physical"),r.default.createElement("option",null,"both")),r.default.createElement(i,{placeholder:"Line 1",defaultValue:m(t,0),onChange:function(e){u(f(l.current||{},0,e))}}),r.default.createElement(i,{placeholder:"Line 2",defaultValue:m(t,1),onChange:function(e){u(f(l.current||{},1,e))}}),r.default.createElement(i,{placeholder:"City",defaultValue:t.city,onChange:function(e){u(Object.assign(Object.assign({},l.current),{city:e}))}}),r.default.createElement(i,{placeholder:"State",defaultValue:t.state,onChange:function(e){u(Object.assign(Object.assign({},l.current),{state:e}))}}),r.default.createElement(i,{placeholder:"Postal Code",defaultValue:t.postalCode,onChange:function(e){u(Object.assign(Object.assign({},l.current),{postalCode:e}))}}))}function v(e){const t=e.value,{contentType:n,url:a,title:l}=null!=t?t:{};return a?r.default.createElement("div",{"data-testid":"attachment-display"},(null==n?void 0:n.startsWith("image/"))&&r.default.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:a,alt:null==t?void 0:t.title}),(null==n?void 0:n.startsWith("video/"))&&r.default.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},r.default.createElement("source",{type:n,src:a})),"application/pdf"===n&&!(null==l?void 0:l.endsWith(".pdf"))&&r.default.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},r.default.createElement("iframe",{width:"100%",height:"400",src:a+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),r.default.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},r.default.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 h(e){return r.default.createElement("div",null,e.values&&e.values.map(((t,n)=>r.default.createElement("div",{key:"attatchment-"+n},r.default.createElement(v,{value:t,maxWidth:e.maxWidth})))))}function g(e){const t="medplum-button"+(e.primary||"submit"===e.type?" medplum-button-primary":"")+(e.danger?" medplum-button-danger":"")+(e.borderless?" medplum-button-borderless":"")+(e.size?" medplum-button-"+e.size:"");return r.default.createElement("button",{type:e.type||"button",className:t,style:e.style,onClick:e.onClick,"aria-label":e.label,"data-testid":e.testid},e.children)}const E=n.createContext(void 0);function y(){return n.useContext(E)}function b(){return y().medplum}function C(){return y().profile}function T(e){e.preventDefault(),e.stopPropagation()}function S(e){if(k(e))return!0;if(e instanceof HTMLTableCellElement){const t=e.children;if(1===t.length&&k(t[0]))return!0}return!1}function k(e){return e instanceof HTMLInputElement&&"checkbox"===e.type}function O(e){const t=b(),a=n.useRef(null);function l(n){if(!n)return;if(!n.name)return;const a=n.name,l=n.type||"application/octet-stream";t.createBinary(n,a,l).then((t=>{e.onUpload({contentType:t.contentType,url:t.url,title:a})})).catch((e=>{var t,n,a;alert(null===(a=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===a?void 0:a.text)}))}return r.default.createElement(r.default.Fragment,null,r.default.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:a,onChange:e=>function(e){T(e);const t=e.target.files;t&&Array.from(t).forEach(l)}(e)}),r.default.createElement(g,{testid:"upload-button",onClick:e=>{var t;T(e),null===(t=a.current)||void 0===t||t.click()}},"Upload..."))}function x(e){var t;const[a,l]=n.useState(null!==(t=e.defaultValue)&&void 0!==t?t:[]),u=n.useRef();function o(t){l(t),e.onChange&&e.onChange(t)}return u.current=a,r.default.createElement("table",null,r.default.createElement("colgroup",null,r.default.createElement("col",{width:"90%"}),r.default.createElement("col",{width:"10%"})),r.default.createElement("tbody",null,a.map(((e,t)=>r.default.createElement("tr",{key:`${t}-${a.length}`},r.default.createElement("td",null,r.default.createElement(v,{value:e,maxWidth:200})),r.default.createElement("td",{className:"medplum-right"},r.default.createElement(g,{onClick:e=>{T(e);const n=a.slice();n.splice(t,1),o(n)}},"Remove"))))),r.default.createElement("tr",null,r.default.createElement("td",null),r.default.createElement("td",{className:"medplum-right"},r.default.createElement(O,{onUpload:e=>{o([...u.current,e])}})))))}function j(e){const[t,a]=n.useState(e.defaultValue);function l(t){a(t),e.onChange&&e.onChange(t)}return t?r.default.createElement(r.default.Fragment,null,r.default.createElement(v,{value:t,maxWidth:200}),r.default.createElement(g,{onClick:e=>{T(e),l(void 0)}},"Remove")):r.default.createElement(O,{onUpload:l})}function R(e){var t,a;const l=n.useRef(null),[u,o]=n.useState(!1),[i,c]=n.useState(""),[s,d]=n.useState(),[m,f]=n.useState(!1),[p,v]=n.useState(null!==(t=e.defaultValue)&&void 0!==t?t:[]),[h,g]=n.useState([]),[E,y]=n.useState(-1),[b,C]=n.useState(),[S,k]=n.useState(),O=n.useRef();O.current=i;const x=n.useRef();x.current=s;const j=n.useRef();j.current=b;const R=n.useRef();function w(t){v(t),e.onChange&&e.onChange(t)}function P(t){l.current.value="";const n=e.multiple?[...p,t]:[t];o(!0),f(!1),c(""),g([]),y(-1),w(n)}function N(){var e;null===(e=l.current)||void 0===e||e.focus()}function V(){o(!1),window.setTimeout((()=>{f(!1)}),200)}function D(){j.current&&(j.current.abort(),C(void 0)),void 0!==x.current&&window.clearTimeout(x.current);const t=window.setTimeout((()=>function(){var t,n;d(void 0);const a=(null===(n=null===(t=l.current)||void 0===t?void 0:t.value)||void 0===n?void 0:n.trim())||"";if(a===O.current)return;if(!a)return f(!1),c(""),g([]),void y(-1);c(a);const r=new AbortController;C(r),e.loadOptions(a,r.signal).then((e=>{r.signal.aborted||(f(e.length>0),g(e),C(void 0),R.current&&(P(e[0]),k(!1)))})).catch(console.log)}()),100);d(t)}function I(e){switch(e.key){case"Enter":case"Tab":!function(e){var t;x.current||j.current||!A()?k(!0):(T(e),null===(t=l.current)||void 0===t||t.focus())}(e);break;case"ArrowUp":F(-1),T(e);break;case"ArrowDown":F(1),T(e);break;case"Backspace":!function(e){var t;if(null===(t=l.current)||void 0===t?void 0:t.value)return;p.length>0&&(T(e),w(p.slice(0,p.length-1)))}(e);break;case",":case";":!function(e){var t;A(),T(e),null===(t=l.current)||void 0===t||t.focus()}(e)}}function A(){var t;let n;return E>=0&&E<h.length?n=h[E]:-1===E&&h.length>0?n=h[0]:e.buildUnstructured&&(null===(t=l.current)||void 0===t?void 0:t.value)&&(n=e.buildUnstructured(l.current.value)),!!n&&(P(n),!0)}function F(e){let t=E+e;t<0?t=0:t>=h.length&&(t=h.length-1),y(t)}R.current=S,n.useEffect((()=>()=>{j.current&&j.current.abort()}),[]),n.useEffect((()=>{var t;v(null!==(t=e.defaultValue)&&void 0!==t?t:[])}),[e.defaultValue]);const L=null!==(a=e.className)&&void 0!==a?a:"medplum-autocomplete-container";return r.default.createElement("div",{"data-testid":"autocomplete",className:L+(u?" focused":""),onClick:()=>N()},r.default.createElement("ul",{onClick:()=>N()},p.map((t=>r.default.createElement("li",{key:e.getId(t),"data-testid":"selected",className:"medplum-autocomplete-item choice"},e.getDisplay(t)))),r.default.createElement("li",{className:"medplum-autocomplete-item"},r.default.createElement("input",{type:"text",autoFocus:e.autofocus,placeholder:0===p.length?e.placeholder:void 0,autoComplete:"off",autoCapitalize:"off",spellCheck:"true",onFocus:()=>{o(!0)},onBlur:()=>V(),onChange:()=>D(),onInput:()=>D(),onKeyDown:e=>I(e),ref:l,"data-testid":"input-element"}))),m&&r.default.createElement("div",{className:"medplum-autocomplete","data-testid":"dropdown"},h.map(((t,n)=>r.default.createElement("div",{key:e.getId(t),className:n===E?"medplum-autocomplete-row medplum-autocomplete-active":"medplum-autocomplete-row",onMouseOver:e=>function(e,t){y(t)}(0,n),onClick:e=>function(e,t){T(e),P(t)}(e,t)},e.getIcon&&r.default.createElement("div",{className:"medplum-autocomplete-icon"},e.getIcon(t)),r.default.createElement("div",{className:"medplum-autocomplete-label"},e.getDisplay(t),e.getHelpText&&r.default.createElement("div",{className:"medplum-autocomplete-help-text"},e.getHelpText(t)))))),e.onCreateNew&&r.default.createElement("div",{className:"medplum-autocomplete-row",onClick:e.onCreateNew},r.default.createElement("div",{className:"medplum-autocomplete-label"},"Create new..."))))}function w(e){const t=a.useNavigate();let n="#";return e.to&&("string"==typeof e.to?n=e.to:"resourceType"in e.to?n=`/${e.to.resourceType}/${e.to.id}`:"reference"in e.to&&(n=`/${e.to.reference}`)),r.default.createElement("a",{href:n,id:e.id,"aria-label":e.label,"data-testid":e.testid||"link",className:e.className,onClick:a=>{T(a),e.onClick?e.onClick():e.to&&t(n)}},e.children)}const P={resourceType:"Device",id:"system",deviceName:[{name:"System"}]};function N(e){const t=b(),[a,l]=n.useState(function(e,t){if(!t)return;if("resourceType"in t)return t;if("reference"in t)return"system"===t.reference?P:e.getCachedReference(t);return}(t,e));return n.useEffect((()=>{let n=!0;return!a&&e&&"reference"in e&&e.reference&&t.readReference(e).then((e=>{n&&l(e)})).catch((()=>l(void 0))),()=>n=!1}),[t,a,e]),a}function V(e){var n,a;const l=N(e.value),u=e.size?"medplum-avatar "+e.size:"medplum-avatar",o=l?t.getDisplayString(l):null!==(n=e.alt)&&void 0!==n?n:"",i=o&&function(e){return e.split(" ").map((e=>e[0])).join("")}(o),c=null!==(a=l&&t.getImageSrc(l))&&void 0!==a?a:e.src,s=c?r.default.createElement("img",{src:c,alt:o}):i;return r.default.createElement("div",{className:u,style:{backgroundColor:e.color},"data-testid":"avatar"},e.link&&l?r.default.createElement(w,{to:l},s):s)}const D=["meta","implicitRules","language","text","contained","extension","modifierExtension"];function I(e){const t=o(e.outcome,e.htmlFor),n=t&&t.length>0;return r.default.createElement("fieldset",null,e.title&&r.default.createElement("label",{htmlFor:e.htmlFor},e.title),e.description&&r.default.createElement("small",null,e.description),e.children,n&&r.default.createElement("div",{id:e.htmlFor+"-errors",className:"medplum-input-error"},null==t?void 0:t.map((e=>{var t,n;return r.default.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)}))))}function A(e){return r.default.createElement("dl",{className:"medplum-description-list"+(e.compact?" compact":"")},e.children)}function F(e){return r.default.createElement(r.default.Fragment,null,r.default.createElement("dt",null,e.term),r.default.createElement("dd",null,e.children))}function L(e){const n=e.value;if(!n)return null;const a=e.typeName,l=e.schema.types[a];return l?"object"==typeof n&&"name"in n&&1===Object.keys(n).length?r.default.createElement("div",null,n.name):r.default.createElement(A,{compact:e.compact},Object.entries(l.properties).map((a=>{const l=a[0];if(D.indexOf(l)>=0)return null;const u=a[1],[o,i]=Z(n,u);return e.ignoreMissingValues&&(!o||Array.isArray(o)&&0===o.length)?null:r.default.createElement(F,{key:l,term:t.getPropertyDisplayName(u)},r.default.createElement(X,{schema:e.schema,property:u,propertyType:i,value:o,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))}))):r.default.createElement("div",null,a," not implemented")}function M(e){var t,n;return r.default.createElement(r.default.Fragment,null,(null===(t=e.value)||void 0===t?void 0:t.display)||(null===(n=e.value)||void 0===n?void 0:n.code))}function $(e){const t=e.value;return t?t.text?r.default.createElement(r.default.Fragment,null,t.text):t.coding&&t.coding.length>0?r.default.createElement(M,{value:t.coding[0]}):null:null}function _(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("]")),r.default.createElement(r.default.Fragment,null,n.join("").trim())}function U(e){return e.value?r.default.createElement(r.default.Fragment,null,new Date(e.value).toLocaleString()):null}function Q(e){const n=e.value;return n?r.default.createElement(r.default.Fragment,null,t.formatHumanName(n,e.options)):null}function q(e){var t,n;return r.default.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 z(e){const t=e.value;return t&&(t.start||t.end)?r.default.createElement("span",null,r.default.createElement(U,{value:t.start}),"-",r.default.createElement(U,{value:t.end})):null}function H(e){return r.default.createElement(r.default.Fragment,null,B(e.value))}function B(e){if(!e)return"";const t=[];return e.comparator&&(t.push(e.comparator),t.push(" ")),void 0!==e.value&&t.push(e.value),e.unit&&("%"!==e.unit&&t.push(" "),t.push(e.unit)),t.join("")}function W(e){return r.default.createElement(r.default.Fragment,null,K(e.value))}function K(e){return e&&(e.low||e.high)?e.low&&!e.high?`>= ${B(e.low)}`:!e.low&&e.high?`<= ${B(e.high)}`:`${B(e.low)} - ${B(e.high)}`:""}function G(e){const t=e.value;return t?r.default.createElement(r.default.Fragment,null,r.default.createElement(H,{value:t.numerator})," / ",r.default.createElement(H,{value:t.denominator})):null}function Y(e){if(!e.value)return null;const n=e.value.display||e.value.reference||t.stringify(e.value);return!1!==e.link&&e.value.reference?r.default.createElement(w,{to:e.value},n):r.default.createElement(r.default.Fragment,null,n)}function J(e){var t,n,a;const l=e.property,u=null!==(t=e.values)&&void 0!==t?t:[],o=null===(a=null===(n=l.type)||void 0===n?void 0:n[0])||void 0===a?void 0:a.code;return r.default.createElement(r.default.Fragment,null,u.map(((t,n)=>r.default.createElement("div",{key:`${n}-${u.length}`},r.default.createElement(X,{arrayElement:!0,schema:e.schema,property:l,propertyType:o,value:t,ignoreMissingValues:e.ignoreMissingValues,link:e.link})))))}function X(e){var n;const{property:a,propertyType:l,value:o}=e;if("*"===(null==a?void 0:a.max)&&!e.arrayElement){if("Attachment"===l)return r.default.createElement(h,{values:o,maxWidth:e.maxWidth});if(!e.schema)throw Error(`Displaying property of type ${e.propertyType} requires schema to be passed`);return r.default.createElement(J,{schema:e.schema,property:a,values:o,ignoreMissingValues:e.ignoreMissingValues,link:e.link})}switch(l){case t.PropertyType.boolean:return r.default.createElement("div",null,void 0===o?"":Boolean(o).toString());case t.PropertyType.SystemString:case t.PropertyType.canonical:case t.PropertyType.code:case t.PropertyType.date:case t.PropertyType.integer:case t.PropertyType.positiveInt:case t.PropertyType.string:case t.PropertyType.unsignedInt:case t.PropertyType.uri:case t.PropertyType.url:return r.default.createElement("div",null,o);case t.PropertyType.dateTime:case t.PropertyType.instant:return r.default.createElement(U,{value:o});case t.PropertyType.markdown:return r.default.createElement("pre",null,o);case t.PropertyType.Address:return r.default.createElement(u,{value:o});case t.PropertyType.Annotation:return r.default.createElement("div",null,null==o?void 0:o.text);case t.PropertyType.Attachment:return r.default.createElement(v,{value:o,maxWidth:e.maxWidth});case t.PropertyType.CodeableConcept:return r.default.createElement($,{value:o});case t.PropertyType.Coding:return r.default.createElement(M,{value:o});case t.PropertyType.ContactPoint:return r.default.createElement(_,{value:o});case t.PropertyType.HumanName:return r.default.createElement(Q,{value:o});case t.PropertyType.Identifier:return r.default.createElement(q,{value:o});case t.PropertyType.Period:return r.default.createElement(z,{value:o});case t.PropertyType.Quantity:return r.default.createElement(H,{value:o});case t.PropertyType.Range:return r.default.createElement(W,{value:o});case t.PropertyType.Ratio:return r.default.createElement(G,{value:o});case t.PropertyType.Reference:return r.default.createElement(Y,{value:o,link:e.link});default:if(!e.schema)throw Error(`Displaying property of type ${e.propertyType} requires schema to be passed`);return r.default.createElement(L,{schema:e.schema,typeName:t.buildTypeName(null===(n=null==a?void 0:a.path)||void 0===n?void 0:n.split(".")),value:o,compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}function Z(e,n){var a,l;if(!e)return[void 0,t.PropertyType.string];const r=null===(l=null===(a=n.path)||void 0===a?void 0:a.split("."))||void 0===l?void 0:l.pop();if(!r)return[void 0,t.PropertyType.string];const u=n.type;if(!u||0===u.length)return[void 0,t.PropertyType.string];if(1===u.length)return[e[r],u[0].code];for(const n of u){const a=r.replace("[x]",t.capitalize(n.code));if(a in e)return[e[a],n.code]}return[void 0,u[0].code]}function ee(e){const a=C(),[l,u]=n.useState(e.defaultValue||{});return n.useRef().current=l,r.default.createElement(i,{name:e.name,type:"text",placeholder:"Annotation text",defaultValue:l.text,onChange:function(n){const l=n?{text:n,authorReference:a&&t.createReference(a),time:(new Date).toISOString()}:{};u(l),e.onChange&&e.onChange(l)}})}function te(e){const t=b();let n;return e.defaultValue&&(n=[e.defaultValue]),r.default.createElement(R,{loadOptions:n=>{var a;const l=null===(a=e.property.binding)||void 0===a?void 0:a.valueSet;return t.searchValueSet(l,n).then((e=>e.expansion.contains.map(ne)))},buildUnstructured:ae,getId:le,getDisplay:re,name:e.name,defaultValue:n,onChange:t=>{e.onChange&&e.onChange(t[0])}})}function ne(e){return{text:e.display,coding:[{system:e.system,code:e.code,display:e.display}]}}function ae(e){return{text:e}}function le(e){return e.coding&&e.coding.length>0?e.coding[0].code:t.stringify(e)}function re(e){var t,n,a,l,u,o;const i=null!==(o=null!==(a=null===(n=null===(t=e.coding)||void 0===t?void 0:t[0])||void 0===n?void 0:n.display)&&void 0!==a?a:null===(u=null===(l=e.coding)||void 0===l?void 0:l[0])||void 0===u?void 0:u.code)&&void 0!==o?o:e.text;return r.default.createElement(r.default.Fragment,null,i)}const ue={};function oe(e){const t=b();let n;return e.defaultValue&&(n=[e.defaultValue]),r.default.createElement(R,{loadOptions:n=>{var a;const l=null===(a=e.property.binding)||void 0===a?void 0:a.valueSet;return t.searchValueSet(l,n).then((e=>{const t=e.expansion.contains;return t.forEach((e=>ue[e.code]=e.display)),t.map((e=>e.code))}))},buildUnstructured:e=>e,getId:e=>e,getDisplay:e=>r.default.createElement(r.default.Fragment,null,ue[e]||e),name:e.name,defaultValue:n,onChange:t=>{e.onChange&&e.onChange(t[0])}})}function ie(e){const t=b();let n;return e.defaultValue&&(n=[e.defaultValue]),r.default.createElement(R,{loadOptions:n=>{var a;const l=null===(a=e.property.binding)||void 0===a?void 0:a.valueSet;return t.searchValueSet(l,n).then((e=>e.expansion.contains.map((e=>({system:e.system,code:e.code,display:e.display})))))},buildUnstructured:e=>({code:e}),getId:e=>e.code,getDisplay:e=>r.default.createElement(M,{value:e}),name:e.name,defaultValue:n,onChange:t=>{e.onChange&&e.onChange(t[0])}})}function ce(e){const[t,a]=n.useState(e.defaultValue),l=n.useRef();function u(t){a(t),e.onChange&&e.onChange(t)}return l.current=t,r.default.createElement(s,null,r.default.createElement(d,{defaultValue:null==t?void 0:t.system,onChange:function(e){u(Object.assign(Object.assign({},l.current),{system:e||void 0}))},testid:"system"},r.default.createElement("option",null),r.default.createElement("option",null,"email"),r.default.createElement("option",null,"fax"),r.default.createElement("option",null,"pager"),r.default.createElement("option",null,"phone"),r.default.createElement("option",null,"other"),r.default.createElement("option",null,"sms")),r.default.createElement(d,{defaultValue:null==t?void 0:t.use,onChange:function(e){u(Object.assign(Object.assign({},l.current),{use:e||void 0}))},testid:"use"},r.default.createElement("option",null),r.default.createElement("option",null,"home"),r.default.createElement("option",null,"mobile"),r.default.createElement("option",null,"old"),r.default.createElement("option",null,"temp"),r.default.createElement("option",null,"work")),r.default.createElement(i,{placeholder:"Value",defaultValue:null==t?void 0:t.value,onChange:function(e){u(Object.assign(Object.assign({},l.current),{value:e||void 0}))}}))}function se(e){return r.default.createElement(i,Object.assign({},e,{type:"datetime-local",defaultValue:de(e.defaultValue),onChange:t=>{e.onChange&&e.onChange(me(t))}}))}function de(e){if(!e)return"";const t=new Date(e);return fe(t)?t.toLocaleDateString("sv")+"T"+t.toLocaleTimeString("sv"):""}function me(e){if(!e)return"";const t=new Date(e);return fe(t)?t.toISOString():""}function fe(e){return e instanceof Date&&!isNaN(e.getTime())}function pe(e){const t=o(e.outcome,e.name),n=t&&t.length>0;return r.default.createElement("textarea",{id:e.name,name:e.name,className:"medplum-textarea",defaultValue:e.defaultValue||"",required:e.required,autoComplete:e.autoComplete,autoFocus:e.autoFocus,ref:e.inputRef,"aria-invalid":n,"aria-describedby":n?e.name+"-errors":"",placeholder:e.placeholder,"data-testid":e.testid,style:e.style,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)}})}function ve(e){return r.default.createElement(pe,{testid:"extension-input",name:e.name,defaultValue:t.stringify(e.defaultValue),onChange:t=>{e.onChange&&e.onChange(JSON.parse(t))}})}function he(e){var t,a,l;const[u,o]=n.useState(e.defaultValue),c=n.useRef();function m(t){o(t),e.onChange&&e.onChange(t)}return c.current=u,r.default.createElement(s,null,r.default.createElement(d,{defaultValue:null==u?void 0:u.use,onChange:function(e){m(Object.assign(Object.assign({},c.current),{use:e||void 0}))},testid:"use"},r.default.createElement("option",null),r.default.createElement("option",null,"usual"),r.default.createElement("option",null,"official"),r.default.createElement("option",null,"temp"),r.default.createElement("option",null,"nickname"),r.default.createElement("option",null,"anonymous"),r.default.createElement("option",null,"old"),r.default.createElement("option",null,"maiden")),r.default.createElement(i,{placeholder:"Prefix",defaultValue:null===(t=null==u?void 0:u.prefix)||void 0===t?void 0:t.join(" "),onChange:function(e){m(Object.assign(Object.assign({},c.current),{prefix:e?e.split(" "):void 0}))}}),r.default.createElement(i,{placeholder:"Given",defaultValue:null===(a=null==u?void 0:u.given)||void 0===a?void 0:a.join(" "),onChange:function(e){m(Object.assign(Object.assign({},c.current),{given:e?e.split(" "):void 0}))}}),r.default.createElement(i,{placeholder:"Family",defaultValue:null==u?void 0:u.family,onChange:function(e){m(Object.assign(Object.assign({},c.current),{family:e||void 0}))}}),r.default.createElement(i,{placeholder:"Suffix",defaultValue:null===(l=null==u?void 0:u.suffix)||void 0===l?void 0:l.join(" "),onChange:function(e){m(Object.assign(Object.assign({},c.current),{suffix:e?e.split(" "):void 0}))}}))}function ge(e){const[t,a]=n.useState(e.defaultValue);function l(t){a(t),e.onChange&&e.onChange(t)}return r.default.createElement(s,null,r.default.createElement(i,{placeholder:"System",defaultValue:null==t?void 0:t.system,onChange:e=>l(Object.assign(Object.assign({},t),{system:e}))}),r.default.createElement(i,{placeholder:"Value",defaultValue:null==t?void 0:t.value,onChange:e=>l(Object.assign(Object.assign({},t),{value:e}))}))}function Ee(e){const[t,a]=n.useState(e.defaultValue);function l(t){a(t),e.onChange&&e.onChange(t)}return r.default.createElement(s,null,r.default.createElement(i,{type:"datetime-local",placeholder:"Start",defaultValue:null==t?void 0:t.start,onChange:e=>l(Object.assign(Object.assign({},t),{start:e}))}),r.default.createElement(i,{type:"datetime-local",placeholder:"End",defaultValue:null==t?void 0:t.end,onChange:e=>l(Object.assign(Object.assign({},t),{end:e}))}))}function ye(e){var t;const[a,l]=n.useState(e.defaultValue);function u(t){l(t),e.onChange&&e.onChange(t)}return r.default.createElement(s,null,r.default.createElement(d,{style:{width:80},testid:e.name+"-comparator",defaultValue:null==a?void 0:a.comparator,onChange:e=>u(Object.assign(Object.assign({},a),{comparator:e}))},r.default.createElement("option",null),r.default.createElement("option",null,"<"),r.default.createElement("option",null,"<="),r.default.createElement("option",null,">="),r.default.createElement("option",null,">")),r.default.createElement(i,{name:e.name,type:"number",step:"any",placeholder:"Value",defaultValue:null===(t=null==a?void 0:a.value)||void 0===t?void 0:t.toString(),onChange:e=>u(Object.assign(Object.assign({},a),{value:be(e)}))}),r.default.createElement(i,{placeholder:"Unit",defaultValue:null==a?void 0:a.unit,onChange:e=>u(Object.assign(Object.assign({},a),{unit:e}))}))}function be(e){if(e)return parseFloat(e)}function Ce(e){const[t,a]=n.useState(e.defaultValue);function l(t){a(t),e.onChange&&e.onChange(t)}return r.default.createElement(s,null,r.default.createElement(ye,{name:e.name+"-low",defaultValue:null==t?void 0:t.low,onChange:e=>l(Object.assign(Object.assign({},t),{low:e}))}),r.default.createElement(ye,{name:e.name+"-high",defaultValue:null==t?void 0:t.high,onChange:e=>l(Object.assign(Object.assign({},t),{high:e}))}))}function Te(e){const[t,a]=n.useState(e.defaultValue);function l(t){a(t),e.onChange&&e.onChange(t)}return r.default.createElement(s,null,r.default.createElement(ye,{name:e.name+"-numerator",defaultValue:null==t?void 0:t.numerator,onChange:e=>l(Object.assign(Object.assign({},t),{numerator:e}))}),r.default.createElement(ye,{name:e.name+"-denominator",defaultValue:null==t?void 0:t.denominator,onChange:e=>l(Object.assign(Object.assign({},t),{denominator:e}))}))}function Se(e){const n=N(e.value);if(!n)return null;const a=t.getDisplayString(n);return e.link?r.default.createElement(w,{to:n},a):r.default.createElement("span",null,a)}function ke(e){const t=b(),a=N(e.defaultValue),[l,u]=n.useState(),o=n.useRef(e.resourceType);return o.current=e.resourceType,n.useEffect((()=>{u(a)}),[a]),r.default.createElement(R,{loadOptions:e=>t.search(o.current,"name="+encodeURIComponent(e)).then((e=>e.entry.map((e=>e.resource)))),getId:e=>e.id,getIcon:e=>r.default.createElement(V,{value:e}),getDisplay:e=>r.default.createElement(Se,{value:e}),getHelpText:e=>{if("Patient"===e.resourceType&&e.birthDate)return"DoB: "+e.birthDate},name:e.name,defaultValue:l?[l]:void 0,className:e.className,placeholder:e.placeholder,onChange:t=>{var n;n=t.length>0?t[0]:void 0,u(n),e.onChange&&e.onChange(n)}})}function Oe(e){const a=e.targetTypes,l=function(e,t){var n;const a=null===(n=null==e?void 0:e.reference)||void 0===n?void 0:n.split("/")[0];if(a)return a;if(t&&t.length>0)return t[0];return}(e.defaultValue,a),[u,o]=n.useState(e.defaultValue),[c,m]=n.useState(l);n.useRef().current=u;return n.useRef().current=c,r.default.createElement(s,null,a?r.default.createElement(d,{testid:"reference-input-resource-type-select",defaultValue:c,onChange:m},a.map((e=>r.default.createElement("option",{key:e,value:e},e)))):r.default.createElement(i,{testid:"reference-input-resource-type-input",defaultValue:c,onChange:m}),r.default.createElement(ke,{resourceType:c,name:e.name+"-id",defaultValue:u,onChange:n=>{var a;a=n?t.createReference(n):void 0,o(a),e.onChange&&e.onChange(a)}}))}function xe(e){var t;const[a,l]=n.useState(null!==(t=e.defaultValue)&&void 0!==t?t:[]),u=n.useRef();function o(t){l(t),e.onChange&&e.onChange(t)}return u.current=a,r.default.createElement("div",null,r.default.createElement("table",{style:{width:"100%"}},r.default.createElement("colgroup",null,r.default.createElement("col",{width:"90%"}),r.default.createElement("col",{width:"10%"})),r.default.createElement("tbody",null,a.map(((t,n)=>r.default.createElement("tr",{key:`${n}-${a.length}`},r.default.createElement("td",null,r.default.createElement(je,{arrayElement:!0,schema:e.schema,property:e.property,name:e.name+"."+n,defaultValue:t,onChange:e=>{const t=[...u.current];t[n]=e,o(t)}})),r.default.createElement("td",{style:{textAlign:"right"}},r.default.createElement(g,{onClick:e=>{T(e);const t=[...u.current];t.splice(n,1),o(t)}},"Remove"))))),r.default.createElement("tr",null,r.default.createElement("td",null),r.default.createElement("td",{style:{textAlign:"right"}},r.default.createElement(g,{onClick:e=>{T(e);const t=[...u.current];t.push(void 0),o(t)}},"Add"))))))}function je(e){var t,n,a;const l=e.property,u=null!==(t=e.defaultPropertyType)&&void 0!==t?t:null===(a=null===(n=l.type)||void 0===n?void 0:n[0])||void 0===a?void 0:a.code,o=e.name,i=e.defaultValue;if("*"===l.max&&!e.arrayElement)return"Attachment"===u?r.default.createElement(x,{name:o,defaultValue:i,onChange:e.onChange}):r.default.createElement(xe,{schema:e.schema,property:l,name:o,defaultValue:i,onChange:e.onChange});const c=l.type;return c.length>1?r.default.createElement(Re,Object.assign({elementDefinitionTypes:c},e)):r.default.createElement(we,Object.assign({elementDefinitionType:c[0]},e))}function Re(e){const a=e.elementDefinitionTypes;let l;l=e.defaultPropertyType?a.find((t=>t.code===e.defaultPropertyType)):a[0];const[u,o]=n.useState(l);return r.default.createElement(s,null,r.default.createElement(d,{style:{width:"200px"},defaultValue:u.code,onChange:e=>{o(a.find((t=>t.code===e)))}},a.map((e=>r.default.createElement("option",{key:e.code,value:e.code},e.code)))),r.default.createElement(we,Object.assign({},e,{elementDefinitionType:u,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",t.capitalize(u.code)))}})))}function we(e){const n=e.property,a=e.elementDefinitionType.code,l=e.name,u=e.defaultValue;switch(a){case t.PropertyType.SystemString:case t.PropertyType.canonical:case t.PropertyType.string:case t.PropertyType.time:case t.PropertyType.uri:case t.PropertyType.url:return r.default.createElement(i,{type:"text",name:l,testid:l,defaultValue:u,onChange:e.onChange,outcome:e.outcome});case t.PropertyType.date:return r.default.createElement(i,{type:"date",name:l,testid:l,defaultValue:u,onChange:e.onChange,outcome:e.outcome});case t.PropertyType.dateTime:case t.PropertyType.instant:return r.default.createElement(se,{type:"datetime-local",name:l,testid:l,defaultValue:u,onChange:e.onChange,outcome:e.outcome});case t.PropertyType.decimal:case t.PropertyType.integer:case t.PropertyType.positiveInt:case t.PropertyType.unsignedInt:return r.default.createElement(i,{type:"number",step:a===t.PropertyType.decimal?"any":1,name:l,testid:l,defaultValue:u,onChange:t=>{e.onChange&&e.onChange(parseFloat(t))},outcome:e.outcome});case t.PropertyType.code:return r.default.createElement(oe,{property:n,name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.boolean:return r.default.createElement("input",{type:"checkbox",name:l,"data-testid":l,defaultChecked:!!u,value:"true",onChange:t=>e.onChange&&e.onChange("true"===t.target.value)});case t.PropertyType.markdown:return r.default.createElement(pe,{name:l,testid:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Address:return r.default.createElement(p,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Annotation:return r.default.createElement(ee,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Attachment:return r.default.createElement(j,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.CodeableConcept:return r.default.createElement(te,{property:n,name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Coding:return r.default.createElement(ie,{property:n,name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.ContactPoint:return r.default.createElement(ce,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Extension:return r.default.createElement(ve,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.HumanName:return r.default.createElement(he,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Identifier:return r.default.createElement(ge,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Period:return r.default.createElement(Ee,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Quantity:return r.default.createElement(ye,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Range:return r.default.createElement(Ce,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Ratio:return r.default.createElement(Te,{name:l,defaultValue:u,onChange:e.onChange});case t.PropertyType.Reference:return r.default.createElement(Oe,{name:l,defaultValue:u,targetTypes:Pe(n),onChange:e.onChange});default:return r.default.createElement(Ve,{schema:e.schema,property:n,name:l,defaultValue:u,onChange:e.onChange,outcome:e.outcome})}}function Pe(e){var t,n,a;return null===(a=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===a?void 0:a.map((e=>e.split("/").pop()))}function Ne(e,n,a,l,r){const u=l.type;if(u.length>1)for(const a of u){const l=n.replace("[x]",t.capitalize(a.code));l in e&&delete e[l]}return e[a]=r,e}function Ve(e){var a,l;const[u,o]=n.useState(null!==(a=e.defaultValue)&&void 0!==a?a:{});const i=t.buildTypeName(null===(l=e.property.path)||void 0===l?void 0:l.split(".")),c=e.schema.types[i];return c?r.default.createElement(r.default.Fragment,null,Object.entries(c.properties).map((n=>{const a=n[0];if("id"===a||D.indexOf(a)>=0)return null;const l=n[1];if(!l.type)return null;const[i,c]=Z(u,l);return r.default.createElement(I,{key:a,title:t.getPropertyDisplayName(l),description:l.definition,htmlFor:a,outcome:e.outcome},r.default.createElement(je,{schema:e.schema,property:l,name:a,defaultValue:i,defaultPropertyType:c,outcome:e.outcome,onChange:(t,l)=>{!function(t){o(t),e.onChange&&e.onChange(t)}(Ne(u,a,null!=l?l:a,n[1],t))}}))}))):r.default.createElement("div",null,i," not implemented")}function De(e){var t;return r.default.createElement("div",{className:"medplum-resource-badge"},r.default.createElement(V,{size:null!==(t=e.size)&&void 0!==t?t:"small",value:e.value,link:e.link}),r.default.createElement(Se,{value:e.value,link:e.link}))}function Ie(e){var n;const a=N(e.value);if(!a)return null;let l;if(a.presentedForm&&a.presentedForm.length>0){const e=a.presentedForm[0];(null===(n=e.contentType)||void 0===n?void 0:n.startsWith("text/plain"))&&e.data&&(l=window.atob(e.data))}return r.default.createElement("div",{className:"medplum-diagnostic-report"},r.default.createElement("h1",null,"Diagnostic Report"),r.default.createElement("div",{className:"medplum-diagnostic-report-header"},a.subject&&r.default.createElement("dl",null,r.default.createElement("dt",null,"Subject"),r.default.createElement("dd",null,r.default.createElement(De,{value:a.subject,link:!0}))),a.resultsInterpreter&&a.resultsInterpreter.map((e=>r.default.createElement("dl",{key:e.reference},r.default.createElement("dt",null,"Interpreter"),r.default.createElement("dd",null,r.default.createElement(De,{value:e,link:!0}))))),a.issued&&r.default.createElement("dl",null,r.default.createElement("dt",null,"Issued"),r.default.createElement("dd",null,r.default.createElement(U,{value:a.issued}))),a.status&&r.default.createElement("dl",null,r.default.createElement("dt",null,"Status"),r.default.createElement("dd",null,t.capitalize(a.status)))),l&&r.default.createElement("pre",null,l),a.result&&r.default.createElement(Ae,{value:a.result}))}function Ae(e){var t;return r.default.createElement("table",{className:"medplum-table"},r.default.createElement("thead",null,r.default.createElement("tr",null,r.default.createElement("th",null,"Test"),r.default.createElement("th",null,"Value"),r.default.createElement("th",null,"Reference Range"),r.default.createElement("th",null,"Interpretation"))),r.default.createElement("tbody",null,null===(t=e.value)||void 0===t?void 0:t.map(((e,t)=>r.default.createElement(Fe,{key:"obs-"+t,value:e})))))}function Fe(e){const t=N(e.value);return t?r.default.createElement("tr",null,r.default.createElement("td",null,r.default.createElement(w,{to:t},r.default.createElement($,{value:t.code}))),r.default.createElement("td",null,r.default.createElement(Le,{value:t})),r.default.createElement("td",null,r.default.createElement(Me,{value:t.referenceRange})),r.default.createElement("td",null,t.interpretation&&t.interpretation.length>0&&r.default.createElement($,{value:t.interpretation[0]}))):null}function Le(e){var t;const n=e.value;return(null==n?void 0:n.valueQuantity)?r.default.createElement(H,{value:null===(t=e.value)||void 0===t?void 0:t.valueQuantity}):(null==n?void 0:n.valueString)?r.default.createElement(r.default.Fragment,null,n.valueString):n&&"component"in n&&(null==n?void 0:n.component)?r.default.createElement(r.default.Fragment,null,n.component.map(((e,t)=>r.default.createElement(Le,{key:`obs-${t}`,value:e}))).reduce(((e,t)=>[e," / ",t]))):null}function Me(e){const t=e.value&&e.value.length>0&&e.value[0];return t?r.default.createElement(W,{value:t}):null}function $e(e){const t={};for(const n of Array.from(e.elements))n instanceof HTMLInputElement?_e(t,n):n instanceof HTMLTextAreaElement?t[n.name]=n.value:n instanceof HTMLSelectElement&&Ue(t,n);return t}function _e(e,t){t.disabled||("checkbox"!==t.type&&"radio"!==t.type||t.checked)&&(e[t.name]=t.value)}function Ue(e,t){e[t.name]=t.value}function Qe(e){return r.default.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:t=>{t.preventDefault();const n=$e(t.target);e.onSubmit&&e.onSubmit(n)}},e.children)}function qe(){return r.default.createElement("div",{role:"progressbar","aria-busy":"true",className:"medplum-loading"},r.default.createElement("div",{className:"medplum-loading-container"},r.default.createElement("svg",{className:"medplum-loading-spinner",viewBox:"0 0 100 100"},r.default.createElement("circle",{cx:"50",cy:"50",r:"40"}))))}function ze(e){return r.default.createElement("div",{className:"medplum-menu-item",onClick:()=>e.onClick(),"aria-label":e.label},e.children)}function He(e){const a=b(),[l,u]=n.useState();if(n.useEffect((()=>{a.requestSchema(e.original.resourceType).then(u)}),[a,e.original.resourceType]),!l)return null;const o=l.types[e.original.resourceType];return o?r.default.createElement("table",{className:"medplum-diff-table"},r.default.createElement("colgroup",null,r.default.createElement("col",{style:{width:"30%"}}),r.default.createElement("col",{style:{width:"35%"}}),r.default.createElement("col",{style:{width:"35%"}})),r.default.createElement("thead",null,r.default.createElement("tr",null,r.default.createElement("th",null,"Property"),r.default.createElement("th",null,"Before"),r.default.createElement("th",null,"After"))),r.default.createElement("tbody",null,Object.entries(o.properties).map((n=>{const a=n[0];if("id"===a||"meta"===a)return null;const u=n[1],[o,i]=Z(e.original,u),[c,s]=Z(e.revised,u);return Be(o)&&Be(c)||t.stringify(o)===t.stringify(c)?null:r.default.createElement("tr",{key:a},r.default.createElement("td",null,t.getPropertyDisplayName(u)),r.default.createElement("td",{className:"medplum-diff-removed"},r.default.createElement(X,{schema:l,property:u,propertyType:i,value:o,ignoreMissingValues:!0})),r.default.createElement("td",{className:"medplum-diff-added"},r.default.createElement(X,{schema:l,property:u,propertyType:s,value:c,ignoreMissingValues:!0})))})))):null}function Be(e){return!e||Array.isArray(e)&&0===e.length||"object"==typeof e&&0===Object.keys(e).length}function We(e){const t=b(),a=N(e.value),[l,u]=n.useState();return n.useEffect((()=>{a&&t.requestSchema(a.resourceType).then(u)}),[t,a]),l&&a?r.default.createElement(L,{schema:l,typeName:a.resourceType,value:a,ignoreMissingValues:e.ignoreMissingValues}):null}function Ke(e){const t=e.height||"100%",n=e.height?e.height+25:"100%",a="medplum-scrollable-content"+(e.className?` ${e.className}`:"");return r.default.createElement("div",{className:"medplum-scrollable-container",style:{height:t}},r.default.createElement("div",{className:a,role:e.role,style:{height:n}},e.children))}class Ge extends r.default.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?r.default.createElement("h1",null,"Something went wrong."):this.props.children}}function Ye(e){const t=n.useRef(null),l=a.useLocation(),u=n.useRef();e.visible?void 0===u.current&&(u.current=l):u.current=void 0;const o=n.useRef();o.current=e,n.useEffect((()=>{function n(n){var a,l;(null===(a=o.current)||void 0===a?void 0:a.visible)&&(null===(l=o.current)||void 0===l?void 0:l.autoClose)&&(null==t?void 0:t.current)&&!t.current.contains(n.target)&&e.onClose()}return document.addEventListener("click",n,!0),()=>document.removeEventListener("click",n,!0)}),[e]),n.useEffect((()=>{e.visible&&l!==u.current&&e.onClose()}),[l,e]);const i={display:e.visible?"block":"none"};return e.anchor&&(e.anchor.right+250<document.body.clientWidth?i.left=e.anchor.right+"px":i.right=document.body.clientWidth-e.anchor.left+"px",e.anchor.top+300<document.body.clientHeight?i.top=e.anchor.top+"px":i.bottom=document.body.clientHeight-e.anchor.top+"px"),r.default.createElement(r.default.Fragment,null,e.modal&&r.default.createElement("div",{className:e.visible?"medplum-backdrop active":"medplum-backdrop",onClick:e.onClose}),r.default.createElement("div",{ref:t,className:"medplum-popup "+(e.visible?e.activeClassName:e.inactiveClassName),style:i,"data-testid":"popup"},e.children))}function Je(e){return r.default.createElement("main",{className:"medplum-document medplum-timeline"},e.children)}function Xe(e){var a,l,u;const[o,i]=n.useState(),c=null!==(a=e.profile)&&void 0!==a?a:null===(l=e.resource.meta)||void 0===l?void 0:l.author;return r.default.createElement("article",{className:e.className||"medplum-timeline-item","data-testid":"timeline-item"},r.default.createElement("div",{className:"medplum-timeline-item-header"},r.default.createElement("div",{className:"medplum-timeline-item-avatar"},r.default.createElement(V,{value:c,link:!0,size:"medium"})),r.default.createElement("div",{className:"medplum-timeline-item-title"},r.default.createElement(Se,{value:c,link:!0}),r.default.createElement("div",{className:"medplum-timeline-item-subtitle"},r.default.createElement(w,{to:e.resource},r.default.createElement(U,{value:null===(u=e.resource.meta)||void 0===u?void 0:u.lastUpdated})),r.default.createElement("span",null,"·"),r.default.createElement(w,{to:e.resource},e.resource.resourceType))),e.popupMenuItems&&r.default.createElement("div",{className:"medplum-timeline-item-actions"},r.default.createElement("a",{href:"#","aria-label":`Actions for ${t.getReferenceString(e.resource)}`,onClick:e=>{T(e);const t=e.currentTarget.getBoundingClientRect();i(t)}},r.default.createElement("svg",{fill:"currentColor",viewBox:"0 0 20 20"},r.default.createElement("g",{transform:"translate(-446 -350)"},r.default.createElement("path",{d:"M458 360a2 2 0 1 1-4 0 2 2 0 0 1 4 0m6 0a2 2 0 1 1-4 0 2 2 0 0 1 4 0m-12 0a2 2 0 1 1-4 0 2 2 0 0 1 4 0"})))))),r.default.createElement(Ge,null,e.padding&&r.default.createElement("div",{style:{padding:"2px 16px 16px 16px"}},e.children),!e.padding&&r.default.createElement(r.default.Fragment,null,e.children)),e.socialEnabled&&r.default.createElement("div",{className:"medplum-timeline-item-footer"},r.default.createElement(g,{borderless:!0},"Like"),r.default.createElement(g,{borderless:!0},"Comment")),e.popupMenuItems&&r.default.createElement(Ye,{visible:!!o,anchor:o,autoClose:!0,onClose:()=>i(void 0)},e.popupMenuItems))}function Ze(e){e.sort(et)}function et(e,t){const n=tt(e),a=tt(t);return n>a?1:n<a?-1:nt(e)-nt(t)}function tt(e){const t=e.priority;return"string"==typeof t&&{stat:4,asap:3,urgent:2}[t]||0}function nt(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}function at(e){const t=a.useNavigate(),l=b(),u=l.getProfile(),o=n.useRef(null),c=N(e.value),[s,d]=n.useState(),[m,f]=n.useState([]),p=e.buildSearchRequests,v=n.useRef(m);v.current=m;const h=n.useCallback((()=>{if(!c)return f([]),void d({});const e=p(c);l.post("fhir/R4",e).then(E)}),[l,c,p]);function E(e){const t=[];if(e.entry){for(const n of e.entry){const e=n.resource;if(e&&("history"===e.type&&d(e),e.entry))for(const n of e.entry)t.push(n.resource)}Ze(t),t.reverse()}f(t)}function y(e){const t=[...v.current,...e];Ze(t),t.reverse(),f(t)}function C(e,t){return l.updateResource(Object.assign(Object.assign({},e),{priority:t}))}function T(e){C(e,"stat").then(h)}function S(e){C(e,"routine").then(h)}function k(e){t(`/${e.resourceType}/${e.id}`)}function x(e){t(`/${e.resourceType}/${e.id}/edit`)}function j(e){t(`/${e.resourceType}/${e.id}/delete`)}function R(e){var n;t(`/${e.resourceType}/${e.id}/_history/${null===(n=e.meta)||void 0===n?void 0:n.versionId}`)}return n.useEffect((()=>{h()}),[h]),c&&s?r.default.createElement(Je,null,e.createCommunication&&r.default.createElement("article",{className:"medplum-timeline-item"},r.default.createElement("div",{className:"medplum-timeline-item-header"},r.default.createElement(Qe,{testid:"timeline-form",onSubmit:t=>{var n;n=t.text,c&&e.createCommunication&&l.createResource(e.createCommunication(c,u,n)).then((e=>{y([e])}));const a=o.current;a&&(a.value="",a.focus())}},r.default.createElement(i,{name:"text",testid:"timeline-input",inputRef:o}),r.default.createElement(g,{type:"submit"},"Comment"),r.default.createElement(O,{onUpload:function(t){c&&e.createMedia&&l.createResource(e.createMedia(c,u,t)).then((e=>{y([e])}))}})))),m.map((e=>{var t;if(e.resourceType===c.resourceType&&e.id===c.id)return r.default.createElement(rt,{key:null===(t=e.meta)||void 0===t?void 0:t.versionId,history:s,resource:e,onDetails:R});const n=`${e.resourceType}/${e.id}`;switch(e.resourceType){case"AuditEvent":return r.default.createElement(it,{key:n,resource:e,onDetails:k});case"Communication":return r.default.createElement(ut,{key:n,resource:e,onPin:"stat"!==e.priority?T:void 0,onUnpin:"stat"===e.priority?S:void 0,onDetails:k,onEdit:x,onDelete:j});case"DiagnosticReport":return r.default.createElement(ct,{key:n,resource:e,onDetails:k,onEdit:x,onDelete:j});case"Media":return r.default.createElement(ot,{key:n,resource:e,onDetails:k,onEdit:x,onDelete:j});default:return r.default.createElement(Xe,{key:n,resource:e,padding:!0},r.default.createElement(We,{value:e,ignoreMissingValues:!0}))}}))):r.default.createElement(qe,null)}function lt(e){return r.default.createElement(r.default.Fragment,null,e.onPin&&r.default.createElement(ze,{onClick:()=>e.onPin(e.resource),label:`Pin ${t.getReferenceString(e.resource)}`},"Pin"),e.onUnpin&&r.default.createElement(ze,{onClick:()=>e.onUnpin(e.resource),label:`Unpin ${t.getReferenceString(e.resource)}`},"Unpin"),e.onDetails&&r.default.createElement(ze,{onClick:()=>e.onDetails(e.resource),label:`Details ${t.getReferenceString(e.resource)}`},"Details"),e.onEdit&&r.default.createElement(ze,{onClick:()=>e.onEdit(e.resource),label:`Edit ${t.getReferenceString(e.resource)}`},"Edit"),e.onDelete&&r.default.createElement(ze,{onClick:()=>e.onDelete(e.resource),label:`Delete ${t.getReferenceString(e.resource)}`},"Delete"))}function rt(e){const t=function(e,t){const n=e.entry,a=n.findIndex((e=>{var n,a,l;return(null===(a=null===(n=e.resource)||void 0===n?void 0:n.meta)||void 0===a?void 0:a.versionId)===(null===(l=t.meta)||void 0===l?void 0:l.versionId)}));if(a>=n.length-1)return;return n[a+1].resource}(e.history,e.resource);return t?r.default.createElement(Xe,{resource:e.resource,padding:!0,popupMenuItems:r.default.createElement(lt,Object.assign({},e))},r.default.createElement(He,{original:t,revised:e.resource})):r.default.createElement(Xe,{resource:e.resource,padding:!0,popupMenuItems:r.default.createElement(lt,Object.assign({},e))},r.default.createElement("h3",null,"Created"),r.default.createElement(We,{value:e.resource,ignoreMissingValues:!0}))}function ut(e){var t,n;const a=!e.resource.priority||"routine"===e.resource.priority?"medplum-timeline-item":"medplum-timeline-item medplum-timeline-item-pinned";return r.default.createElement(Xe,{resource:e.resource,profile:e.resource.sender,padding:!0,className:a,popupMenuItems:r.default.createElement(lt,Object.assign({},e))},r.default.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 ot(e){var t;const n=null===(t=e.resource.content)||void 0===t?void 0:t.contentType,a=n&&!n.startsWith("image/")&&!n.startsWith("video/")&&"application/pdf"!==n;return r.default.createElement(Xe,{resource:e.resource,padding:!!a,popupMenuItems:r.default.createElement(lt,Object.assign({},e))},r.default.createElement(v,{value:e.resource.content}))}function it(e){return r.default.createElement(Xe,{resource:e.resource,padding:!0,popupMenuItems:r.default.createElement(lt,Object.assign({},e))},r.default.createElement(Ke,null,r.default.createElement("pre",null,e.resource.outcomeDesc)))}function ct(e){return r.default.createElement(Xe,{resource:e.resource,padding:!0,popupMenuItems:r.default.createElement(lt,Object.assign({},e))},r.default.createElement(Ie,{value:e.resource}))}function st(e){return r.default.createElement("main",{className:"medplum-document"},r.default.createElement("article",{style:{maxWidth:e.width}},e.children))}function dt(e,t,n,a){return new(n||(n=Promise))((function(l,r){function u(e){try{i(a.next(e))}catch(e){r(e)}}function o(e){try{i(a.throw(e))}catch(e){r(e)}}function i(e){var t;e.done?l(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(u,o)}i((a=a.apply(e,t||[])).next())}))}function mt(e){const n=b();return r.default.createElement(R,{loadOptions:(e,a)=>dt(this,void 0,void 0,(function*(){return function(e,t){const n=[];e.data.Patients1&&n.push(...e.data.Patients1);e.data.Patients2&&n.push(...e.data.Patients2);e.data.ServiceRequestList&&n.push(...e.data.ServiceRequestList);return function(e,t){return e.sort(((e,n)=>ft(n,t)-ft(e,t)))}(function(e){const t=new Set,n=[];for(const a of e)t.has(a.id)||(t.add(a.id),n.push(a));return n}(n),t).slice(0,5)}(yield n.graphql(function(e){const n=JSON.stringify(e);if(t.isUUID(e))return`{\n Patients1: PatientList(_id: ${n}, _count: 1) {\n resourceType\n id\n identifier {\n system\n value\n }\n name {\n given\n family\n }\n birthDate\n }\n ServiceRequestList(_id: ${n}, _count: 1) {\n resourceType\n id\n identifier {\n system\n value\n }\n subject {\n display\n }\n }\n }`.replace(/\s+/g," ");return`{\n Patients1: PatientList(name: ${n}, _count: 5) {\n resourceType\n id\n identifier {\n system\n value\n }\n name {\n given\n family\n }\n birthDate\n }\n Patients2: PatientList(identifier: ${n}, _count: 5) {\n resourceType\n id\n identifier {\n system\n value\n }\n name {\n given\n family\n }\n birthDate\n }\n ServiceRequestList(identifier: ${n}, _count: 5) {\n resourceType\n id\n identifier {\n system\n value\n }\n subject {\n display\n }\n }\n }`.replace(/\s+/g," ")}(e),{signal:a}),e)})),getId:e=>e.id,getIcon:e=>r.default.createElement(V,{value:e}),getDisplay:e=>r.default.createElement(Se,{value:e}),getHelpText:e=>{var t;return"Patient"===e.resourceType&&e.birthDate?"DoB: "+e.birthDate:null===(t=e.subject)||void 0===t?void 0:t.display},name:e.name,className:e.className,placeholder:e.placeholder,onChange:t=>e.onChange(t[0])})}function ft(e,n){let a=0;if(e.identifier)for(const t of e.identifier)a=Math.max(a,pt(t.value,n));if("Patient"===e.resourceType&&e.name)for(const l of e.name)a=Math.max(a,pt(t.formatHumanName(l),n));return a}function pt(e,t){if(!e)return 0;const n=e.toLowerCase().indexOf(t.toLowerCase());return n<0?0:100-n}function vt(e){return r.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},r.default.createElement("title",null,"Medplum Logo"),r.default.createElement("path",{fill:e.fill||"#ad7136",d:"M282 67c6-16 16-29 29-40L289 0c-22 17-37 41-43 68l17 23 19-24z"}),r.default.createElement("path",{fill:e.fill||"#654b87",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"}),r.default.createElement("path",{fill:e.fill||"#463068",d:"M231 489l-17 2c-87 0-158-96-158-214S127 63 214 63l17 1c-39 12-70 102-70 213s31 201 70 212z"}),r.default.createElement("path",{fill:e.fill||"#70d65b",d:"M207 220a176 176 0 01-177 43A176 176 0 01251 43l1 5c17 59 2 125-45 172z"}),r.default.createElement("path",{fill:e.fill||"#58b741",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}const ht=["$/_history","Communication?subject=$","Device?patient=$","DeviceRequest?patient=$","DiagnosticReport?subject=$","Media?subject=$","ServiceRequest?subject=$"];var gt;function Et(e,n){if(e)return e.map((e=>function(e,n){const{linkId:a,type:l}=e;if(!a||!l)return e;if("group"===l)return Object.assign(Object.assign({},e),{item:Et(e.item,n)});const r=n[a];if(!r)return e;let u;switch(l){case t.PropertyType.boolean:u={valueBoolean:"true"===r};break;case t.PropertyType.code:case t.PropertyType.Coding:u={valueCoding:{code:r}};break;case t.PropertyType.date:u={valueDate:r};break;case t.PropertyType.dateTime:case t.PropertyType.instant:u={valueDateTime:r};break;case t.PropertyType.decimal:u={valueDecimal:parseFloat(r)};break;case t.PropertyType.integer:case t.PropertyType.positiveInt:case t.PropertyType.unsignedInt:u={valueInteger:parseInt(r)};break;case t.PropertyType.SystemString:case t.PropertyType.string:case t.PropertyType.markdown:u={valueString:r};break;case t.PropertyType.time:u={valueTime:r};break;case t.PropertyType.uri:case t.PropertyType.url:u={valueUri:r};break;case t.PropertyType.canonical:case t.PropertyType.Reference:u={valueReference:{reference:r}}}if(!u)return e;return Object.assign(Object.assign({},e),{initial:[u]})}(e,n)))}function yt(e){return"choice"===e.type||"open-choice"===e.type}function bt(t){const[a,l]=n.useState(Tt(t.items));function u(e,n){const r=a.slice();r[e]=n,l(r),t.onChange(r)}return r.default.createElement(r.default.Fragment,null,t.items.map(((n,a)=>n.type===e.QuestionnaireItemType.group?r.default.createElement(Ct,{key:n.linkId,schema:t.schema,item:n,onChange:e=>u(a,e)}):r.default.createElement(I,{key:n.linkId,htmlFor:n.linkId,title:n.text||""},r.default.createElement(Ct,{schema:t.schema,item:n,onChange:e=>u(a,e)})))))}function Ct(n){const a=n.item,l=a.type;if(!l)return null;const u=a.linkId;if(!u)return null;const o=a.initial&&a.initial.length>0?a.initial[0]:void 0;function c(e){n.onChange({linkId:a.linkId,answer:[e]})}switch(l){case e.QuestionnaireItemType.group:return r.default.createElement("div",null,r.default.createElement("h3",null,a.text),a.item&&r.default.createElement(bt,{schema:n.schema,items:a.item,onChange:function(e){n.onChange({linkId:a.linkId,item:e})}}));case e.QuestionnaireItemType.boolean:return r.default.createElement("input",{type:"checkbox",id:u,name:u,value:"true",defaultChecked:null==o?void 0:o.valueBoolean,onChange:e=>c({valueBoolean:e.currentTarget.checked})});case e.QuestionnaireItemType.decimal:return r.default.createElement(i,{type:"number",step:"any",name:u,defaultValue:null==o?void 0:o.valueDecimal,onChange:e=>c({valueDecimal:parseFloat(e)})});case e.QuestionnaireItemType.integer:return r.default.createElement(i,{type:"number",step:1,name:u,defaultValue:null==o?void 0:o.valueInteger,onChange:e=>c({valueInteger:parseInt(e)})});case e.QuestionnaireItemType.date:return r.default.createElement(i,{type:"date",name:u,defaultValue:null==o?void 0:o.valueDate,onChange:e=>c({valueDate:e})});case e.QuestionnaireItemType.dateTime:return r.default.createElement(se,{type:"datetime-local",name:u,defaultValue:null==o?void 0:o.valueDateTime,onChange:e=>c({valueDateTime:e})});case e.QuestionnaireItemType.time:return r.default.createElement(i,{type:"time",name:u,defaultValue:null==o?void 0:o.valueTime,onChange:e=>c({valueTime:e})});case e.QuestionnaireItemType.string:return r.default.createElement(i,{type:"text",name:u,defaultValue:null==o?void 0:o.valueString,onChange:e=>c({valueString:e})});case e.QuestionnaireItemType.text:return r.default.createElement(pe,{name:u,defaultValue:null==o?void 0:o.valueString,onChange:e=>c({valueString:e})});case e.QuestionnaireItemType.url:return r.default.createElement(i,{type:"url",name:u,defaultValue:null==o?void 0:o.valueUri,onChange:e=>c({valueUri:e})});case e.QuestionnaireItemType.choice:case e.QuestionnaireItemType.openChoice:return r.default.createElement("div",null,a.answerOption&&a.answerOption.map(((e,a)=>{const l=n.schema.types.QuestionnaireItemAnswerOption.properties["value[x]"],i=n.schema.types.QuestionnaireItemAnswerOption.properties["value[x]"],[s,d]=Z(e,l),[m,f]=Z(o,i),p="value"+t.capitalize(d),v=`${u}-option-${a}`;return r.default.createElement("div",{key:v,className:"medplum-questionnaire-option-row"},r.default.createElement("div",{className:"medplum-questionnaire-option-checkbox"},r.default.createElement("input",{type:"radio",id:v,name:u,value:s,defaultChecked:d===f&&t.stringify(s)===t.stringify(m),onChange:()=>c({[p]:s})})),r.default.createElement("div",null,r.default.createElement("label",{htmlFor:v},r.default.createElement(X,{schema:n.schema,property:l,propertyType:d,value:s}))))})));case e.QuestionnaireItemType.attachment:return r.default.createElement(j,{name:u,defaultValue:null==o?void 0:o.valueAttachment,onChange:e=>c({valueAttachment:e})});case e.QuestionnaireItemType.reference:return r.default.createElement(Oe,{name:u,defaultValue:null==o?void 0:o.valueReference,onChange:e=>c({valueReference:e})});case e.QuestionnaireItemType.quantity:return r.default.createElement(ye,{name:u,defaultValue:null==o?void 0:o.valueQuantity,onChange:e=>c({valueQuantity:e})})}return null}function Tt(e){var t;return null!==(t=null==e?void 0:e.map(St))&&void 0!==t?t:[]}function St(e){var t,n;return{linkId:e.linkId,item:Tt(e.item),answer:null!==(n=null===(t=e.initial)||void 0===t?void 0:t.map(kt))&&void 0!==n?n:[]}}function kt(e){return Object.assign({},e)}function Ot(t){var a;const l=t.item,u=t.item,o="resourceType"in t.item,c=o||u.type===e.QuestionnaireItemType.group,s=null!==(a=u.linkId)&&void 0!==a?a:"[untitled]",m=t.selectedKey===t.item.id,f=t.hoverKey===t.item.id,p=n.useRef();function v(e){var n;const a=p.current;t.onChange(Object.assign(Object.assign({},a),{item:null===(n=a.item)||void 0===n?void 0:n.map((t=>t.id===e.id?e:t))}))}function h(e){var n,a;t.onChange(Object.assign(Object.assign({},t.item),{item:[...null!==(a=null===(n=t.item)||void 0===n?void 0:n.item)&&void 0!==a?a:[],e]}))}function g(e,n){t.onChange(Object.assign(Object.assign({},p.current),{[e]:n}))}p.current=t.item;const E=m?"section editing":f?"section hovering":"section";return r.default.createElement("div",{"data-testid":u.linkId,className:E,onClick:function(e){T(e),t.setSelectedKey(t.item.id)},onMouseOver:function(e){T(e),t.setHoverKey(t.item.id)}},m?r.default.createElement(r.default.Fragment,null,o&&r.default.createElement("div",null,r.default.createElement(i,{defaultValue:l.title,onChange:e=>g("title",e)})),!c&&r.default.createElement("div",null,r.default.createElement(d,{defaultValue:u.type,onChange:e=>g("type",e)},r.default.createElement("option",{value:"display"},"Display"),r.default.createElement("optgroup",{label:"Question"},r.default.createElement("option",{value:"boolean"},"Boolean"),r.default.createElement("option",{value:"decimal"},"Decimal"),r.default.createElement("option",{value:"integer"},"Integer"),r.default.createElement("option",{value:"date"},"Date"),r.default.createElement("option",{value:"dateTime"},"Date/Time"),r.default.createElement("option",{value:"time"},"Time"),r.default.createElement("option",{value:"string"},"String"),r.default.createElement("option",{value:"text"},"Text"),r.default.createElement("option",{value:"url"},"URL"),r.default.createElement("option",{value:"choice"},"Choice"),r.default.createElement("option",{value:"open-choice"},"Open Choice"),r.default.createElement("option",{value:"attachment"},"Attachment"),r.default.createElement("option",{value:"reference"},"Reference"),r.default.createElement("option",{value:"quantity"},"Quantity")))),!o&&r.default.createElement(pe,{style:{width:"95%",height:"100px",minHeight:"100px",margin:"8px 4px 4px 4px"},defaultValue:u.text,onChange:e=>g("text",e)}),yt(u)&&r.default.createElement(xt,{schema:t.schema,options:u.answerOption,onChange:e=>g("answerOption",e)})):r.default.createElement(r.default.Fragment,null,l.title&&r.default.createElement("h1",null,l.title),u.text&&r.default.createElement("p",null,u.text),!c&&r.default.createElement(Ct,{schema:t.schema,item:u,onChange:()=>{}})),u.item&&u.item.map((e=>r.default.createElement("div",{key:e.id},r.default.createElement(Ot,{schema:t.schema,item:e,selectedKey:t.selectedKey,setSelectedKey:t.setSelectedKey,hoverKey:t.hoverKey,setHoverKey:t.setHoverKey,onChange:v,onRemove:()=>function(e){var n,a;t.onChange(Object.assign(Object.assign({},t.item),{item:null===(a=null===(n=t.item)||void 0===n?void 0:n.item)||void 0===a?void 0:a.filter((t=>t!==e))}))}(e)})))),!c&&r.default.createElement("div",{className:"top-actions"},m?r.default.createElement(i,{defaultValue:u.linkId,onChange:e=>g("linkId",e),size:4}):r.default.createElement("div",null,s)),r.default.createElement("div",{className:"bottom-actions"},c&&r.default.createElement(r.default.Fragment,null,r.default.createElement("a",{href:"#",onClick:e=>{e.preventDefault(),h({id:Pt(),linkId:wt("q"),type:"string",text:"Question"})}},"Add item"),r.default.createElement("a",{href:"#",onClick:e=>{e.preventDefault(),h({id:Pt(),linkId:wt("g"),type:"group",text:"Group"})}},"Add group")),!o&&r.default.createElement("a",{href:"#",onClick:e=>{e.preventDefault(),t.onRemove&&t.onRemove()}},"Remove")))}function xt(e){var t;const n=e.schema.types.QuestionnaireItemAnswerOption.properties["value[x]"],a=null!==(t=e.options)&&void 0!==t?t:[];return r.default.createElement("div",null,a.map((t=>{const[l,u]=Z(t,n);return r.default.createElement("div",{key:t.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},r.default.createElement("div",null,r.default.createElement(je,{key:t.id,schema:e.schema,name:"value[x]",property:n,defaultPropertyType:u,defaultValue:l,onChange:(n,l)=>{const r=[...a],u=r.findIndex((e=>e.id===t.id));r[u]={id:t.id,[l]:n},e.onChange(r)}})),r.default.createElement("div",null,r.default.createElement("a",{href:"#",onClick:n=>{T(n),e.onChange(a.filter((e=>e.id!==t.id)))}},"Remove")))})),r.default.createElement("a",{href:"#",onClick:t=>{T(t),e.onChange([...a,{id:Pt()}])}},"Add choice"))}e.QuestionnaireItemType=void 0,(gt=e.QuestionnaireItemType||(e.QuestionnaireItemType={})).group="group",gt.display="display",gt.question="question",gt.boolean="boolean",gt.decimal="decimal",gt.integer="integer",gt.date="date",gt.dateTime="dateTime",gt.time="time",gt.string="string",gt.text="text",gt.url="url",gt.choice="choice",gt.openChoice="open-choice",gt.attachment="attachment",gt.reference="reference",gt.quantity="quantity";let jt=1,Rt=1;function wt(e){return e+jt++}function Pt(){return"id-"+Rt++}function Nt(e){if(e)return e.map((e=>Object.assign(Object.assign({},e),{id:e.id||Pt(),item:Nt(e.item),answerOption:Vt(e.answerOption)})))}function Vt(e){if(e)return e.map((e=>Object.assign(Object.assign({},e),{id:e.id||Pt()})))}function Dt(e,t){return function(e,t,n){const a=[];let l=e;l.snake&&(l=l.prev);for(;l&&l.prev&&l.prev.j>=0;){const e=l.i,r=l.j;l=l.prev;const u=l.i,o=l.j,i={position:u,lines:t.slice(u,e)},c={position:o,lines:n.slice(o,r)};let s;s=0===i.lines.length&&c.lines.length>0?"insert":i.lines.length>0&&0===c.lines.length?"delete":"change",a.push({original:i,revised:c,type:s}),l.snake&&(l=l.prev)}return a}(function(e,t){const n=e.length,a=t.length,l=n+a+1,r=1+2*l,u=r/2|0,o=new Array(r);o[u+1]={i:0,j:-1,prev:void 0,snake:!0};for(let r=0;r<l;r++){for(let l=-r;l<=r;l+=2){const i=u+l,c=i-1,s=o[i+1],d=o[c];let m,f=0;l===-r||l!==r&&d.i<s.i?(f=s.i,m=s):(f=d.i+1,m=d),o[c]=void 0;let p=f-l,v={i:f,j:p,prev:It(m),snake:!1};for(;f<n&&p<a&&e[f]===t[p];)f++,p++;if(f>v.i&&(v={i:f,j:p,prev:v,snake:!0}),o[i]=v,f>=n&&p>=a)return o[i]}o[u+r-1]=void 0}return}(e,t),e,t)}function It(e){return e&&!e.snake&&e.prev?e.prev:e}function At(e){const n=e.entry.map((e=>{var n;return{meta:null===(n=e.resource)||void 0===n?void 0:n.meta,lines:t.stringify(e.resource,!0).match(/[^\r\n]+/g)}})).sort(((e,t)=>e.meta.lastUpdated.localeCompare(t.meta.lastUpdated))),a=n[0].lines.map((e=>({id:n[0].meta.versionId,meta:n[0].meta,value:e,span:1})));return function(e,t){for(let n=1;n<t.length;n++){const a=Dt(t[n-1].lines,t[n].lines);for(const l of a){const a=l.original.position,r=l.original.lines,u=l.revised.lines;if("delete"!==l.type&&"change"!==l.type||e.splice(a,r.length),"insert"===l.type||"change"===l.type)for(let r=0;r<l.revised.lines.length;r++)e.splice(a+r,0,{id:t[n].meta.versionId,meta:t[n].meta,value:u[r],span:1})}}}(a,n),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}}(a),a}function Ft(e,t){return`/${e.resourceType}/${e.id}/_history/${t}`}function Lt(e){const t=Math.floor((Date.now()-Date.parse(e))/1e3),n=Math.floor(t/31536e3);if(n>0)return Mt(n,"year");const a=Math.floor(t/2592e3);if(a>0)return Mt(a,"month");const l=Math.floor(t/86400);if(l>0)return Mt(l,"day");const r=Math.floor(t/3600);if(r>0)return Mt(r,"hour");const u=Math.floor(t/60);return u>0?Mt(u,"minute"):Mt(t,"second")}function Mt(e,t){return`${e} ${1===e?t:t+"s"} ago`}function $t(e){return r.default.createElement(r.default.Fragment,null,"...",r.default.createElement("br",null),e.delta.original.lines.length>0&&r.default.createElement("div",{className:"medplum-diff-removed"},e.delta.original.lines.join("\n")),e.delta.revised.lines.length>0&&r.default.createElement("div",{className:"medplum-diff-added"},e.delta.revised.lines.join("\n")),"...",r.default.createElement("br",null))}function _t(e){var t,n,a;return r.default.createElement("tr",null,r.default.createElement("td",null,r.default.createElement(De,{value:null===(t=e.version.meta)||void 0===t?void 0:t.author,link:!0})),r.default.createElement("td",null,r.default.createElement(U,{value:null===(n=e.version.meta)||void 0===n?void 0:n.lastUpdated})),r.default.createElement("td",null,r.default.createElement(w,{to:Ut(e.version)},null===(a=e.version.meta)||void 0===a?void 0:a.versionId)))}function Ut(e){var t;return`/${e.resourceType}/${e.id}/_history/${null===(t=e.meta)||void 0===t?void 0:t.versionId}`}function Qt(e,n,a){var l;if("_lastUpdated"===a)return{name:"_lastUpdated",searchParam:{resourceType:"SearchParameter",base:["Resource"],code:"_lastUpdated",name:"_lastUpdated",type:"date",expression:"Resource.meta.lastUpdated"}};if("meta.versionId"===a)return{name:"meta.versionId",searchParam:{resourceType:"SearchParameter",base:["Resource"],code:"_versionId",name:"_versionId",type:"token",expression:"Resource.meta.versionId"}};const r=e.types[n];let u=r.properties[a],o=null===(l=r.searchParams)||void 0===l?void 0:l[a];if(u&&!o&&r.searchParams){const e=`${n}.${a}`;o=Object.values(r.searchParams).find((t=>{var n;return null===(n=t.expression)||void 0===n?void 0:n.includes(e)}))}if(!u&&(null==o?void 0:o.expression)){u=t.getSearchParameterDetails(e,n,o).elementDefinition}return{name:a,elementDefinition:u,searchParam:o}}function qt(e){const[t,a]=n.useState(100),[l,u]=n.useState(100);if(!e.visible)return null;return r.default.createElement(r.default.Fragment,null,r.default.createElement("div",{className:"modal-dialog-bg"}),r.default.createElement("div",{className:"modal-dialog","data-testid":"dialog",tabIndex:0,style:{left:t+"px",top:l+"px"}},r.default.createElement("div",{className:"modal-dialog-title",onMouseDown:e=>function(e){T(e);const n=e.clientX-t,r=e.clientY-l;function o(e){T(e),a(e.clientX-n),u(e.clientY-r)}document.addEventListener("mouseup",(function e(t){T(t),document.removeEventListener("mouseup",e,!0),document.removeEventListener("mousemove",o,!0)}),!0),document.addEventListener("mousemove",o,!0)}(e)},r.default.createElement("span",{className:"modal-dialog-title-text"},e.title),r.default.createElement("span",{className:"modal-dialog-title-close",tabIndex:0,onClick:e.onCancel},r.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},r.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))),r.default.createElement("div",{className:"modal-dialog-content"},e.children),r.default.createElement("div",{className:"modal-dialog-buttons"},r.default.createElement(g,{testid:"dialog-ok",onClick:e.onOk},"OK"),r.default.createElement(g,{testid:"dialog-cancel",onClick:e.onCancel},"Cancel"))))}const zt={string:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.CONTAINS,t.Operator.EXACT],fulltext:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.CONTAINS,t.Operator.EXACT],token:[t.Operator.EQUALS,t.Operator.NOT_EQUALS],reference:[t.Operator.EQUALS,t.Operator.NOT_EQUALS],numeric:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.GREATER_THAN,t.Operator.LESS_THAN,t.Operator.GREATER_THAN_OR_EQUALS,t.Operator.LESS_THAN_OR_EQUALS],date:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.GREATER_THAN,t.Operator.LESS_THAN,t.Operator.GREATER_THAN_OR_EQUALS,t.Operator.LESS_THAN_OR_EQUALS,t.Operator.STARTS_AFTER,t.Operator.ENDS_BEFORE,t.Operator.APPROXIMATELY],datetime:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.GREATER_THAN,t.Operator.LESS_THAN,t.Operator.GREATER_THAN_OR_EQUALS,t.Operator.LESS_THAN_OR_EQUALS,t.Operator.STARTS_AFTER,t.Operator.ENDS_BEFORE,t.Operator.APPROXIMATELY]},Ht={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",above:"above",below:"below",in:"in","not-in":"not in","of-type":"of type"};function Bt(e,t){return Object.assign(Object.assign({},e),{filters:t,offset:0,name:void 0})}function Wt(e,t){return Bt(e,(e.filters||[]).filter((e=>e.code!==t)))}function Kt(e,t,n,a,l){l&&(e=Wt(e,t));const r=[];return e.filters&&r.push(...e.filters),r.push({code:t,operator:n,value:a||""}),Bt(e,r)}function Gt(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 Yt(e,t){return Zt(e,t,-1)}function Jt(e,t){return Zt(e,t,0)}function Xt(e,t){return Zt(e,t,1)}function Zt(e,t,n){const a=new Date;a.setDate(a.getDate()+n),a.setHours(0,0,0,0);const l=new Date(a.getTime());return l.setDate(l.getDate()+1),l.setTime(l.getTime()-1),rn(e,t,a,l)}function en(e,t){return an(e,t,-1)}function tn(e,t){return an(e,t,0)}function nn(e,t){return an(e,t,1)}function an(e,t,n){const a=new Date;a.setMonth(a.getMonth()+n),a.setDate(1),a.setHours(0,0,0,0);const l=new Date(a.getTime());return l.setMonth(l.getMonth()+1),l.setDate(1),l.setHours(0,0,0,0),l.setTime(l.getTime()-1),rn(e,t,a,l)}function ln(e,t){const n=new Date;n.setMonth(0),n.setDate(1),n.setHours(0,0,0,0);return rn(e,t,n,new Date)}function rn(e,n,a,l){return e=un(e=Wt(e,n),n,t.Operator.GREATER_THAN_OR_EQUALS,a),e=un(e,n,t.Operator.LESS_THAN_OR_EQUALS,l)}function un(e,t,n,a){return Kt(e,t,n,a.toISOString())}function on(e,t){return e.offset===t?e:Object.assign(Object.assign({},e),{offset:t,name:void 0})}function cn(e,t){var n,a;const l=null!==(n=e.count)&&void 0!==n?n:20,r=(null!==(a=e.offset)&&void 0!==a?a:0)+t*l;return on(e,Math.max(r,0))}function sn(e,t,n){return t===dn(e)&&void 0!==n&&n===mn(e)?e:Object.assign(Object.assign({},e),{sortRules:[{code:t,descending:!!n}],name:void 0})}function dn(e){const t=e.sortRules;if(!t||0===t.length)return;const n=t[0].code;return n.startsWith("-")?n.substr(1):n}function mn(e){const t=e.sortRules;return!(!t||0===t.length)&&!!t[0].descending}function fn(e){return zt[e.type]}function pn(e){var t;return null!==(t=Ht[e])&&void 0!==t?t:""}function vn(e){let n=e;return n.includes(".")&&(n=n.split(".").pop()),"id"===n?"ID":"versionId"===n?"Version ID":(n=n.replace("[x]",""),n=n.replace(/([A-Z])/g," $1"),n=n.replace(/[-_]/g," "),n=n.replace(/\s+/g," "),n=n.trim(),n.split(/\s/).map(t.capitalize).join(" "))}function hn(e,n,a){var l,u;const o=a.name;return"id"===o?n.id:"meta.versionId"===o?null===(l=n.meta)||void 0===l?void 0:l.versionId:"_lastUpdated"===o?r.default.createElement(U,{value:null===(u=n.meta)||void 0===u?void 0:u.lastUpdated}):a.elementDefinition&&`${n.resourceType}.${a.name}`===a.elementDefinition.path?function(e,t,n){const[a,l]=Z(t,n);if(!a)return null;return r.default.createElement(X,{schema:e,property:n,propertyType:l,value:a,maxWidth:200,ignoreMissingValues:!0,link:!1})}(e,n,a.elementDefinition):a.searchParam&&a.name===a.searchParam.code?function(e,n,a,l){var u,o;const i=t.evalFhirPath(a.expression,n);if(!i||0===i.length)return null;if(l)return r.default.createElement(X,{schema:e,property:l,propertyType:null===(o=null===(u=l.type)||void 0===u?void 0:u[0])||void 0===o?void 0:o.code,value:i,maxWidth:200,ignoreMissingValues:!0});return r.default.createElement(r.default.Fragment,null,i.map(((e,t)=>r.default.createElement("span",{key:`${t}-${i.length}`},"object"==typeof e?JSON.stringify(e):e))))}(e,n,a.searchParam,a.elementDefinition):null}function gn(e){var a;const[l,u]=n.useState({search:JSON.parse(t.stringify(e.search))}),o=n.useRef(null),i=n.useRef(null);function c(){var e,t;const n=null!==(e=l.search.fields)&&void 0!==e?e:[],a=null===(t=o.current)||void 0===t?void 0:t.value;if(a){const e=[...n,a];u({search:Object.assign(Object.assign({},l.search),{fields:e})})}}function s(){var e,t;const n=null!==(e=l.search.fields)&&void 0!==e?e:[],a=null===(t=i.current)||void 0===t?void 0:t.value;if(a){const e=[...n];e.splice(e.indexOf(a),1),u({search:Object.assign(Object.assign({},l.search),{fields:e})})}}function d(e,t,n){const a=e[t];e[t]=e[n],e[n]=a}if(n.useEffect((()=>{u({search:e.search})}),[e.search]),!e.visible)return null;const m=e.search.resourceType,f=e.schema.types[m],p=null!==(a=l.search.fields)&&void 0!==a?a:[],v=function(e){let t=Object.keys(e.properties);e.searchParams&&(t=[...new Set([...t,...Object.keys(e.searchParams)])]);const n=[],a=[];for(const e of t){const t=vn(e);a.includes(t)||(n.push(e),a.push(t))}return n}(f).filter((e=>!(null==p?void 0:p.includes(e)))).sort();return r.default.createElement(qt,{title:"Fields",visible:e.visible,onOk:()=>e.onOk(l.search),onCancel:e.onCancel},r.default.createElement("div",null,r.default.createElement("table",{style:{margin:"auto"}},r.default.createElement("thead",null,r.default.createElement("tr",null,r.default.createElement("th",{colSpan:2,align:"center"},"Available"),r.default.createElement("th",{colSpan:2,align:"center"},"Selected"))),r.default.createElement("tbody",null,r.default.createElement("tr",null,r.default.createElement("td",{colSpan:2,align:"center"},r.default.createElement("select",{ref:o,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&c()}(e),onDoubleClick:()=>{c()},"data-testid":"available"},v.map((e=>r.default.createElement("option",{key:e,value:e},vn(e)))))),r.default.createElement("td",{colSpan:2,align:"center"},r.default.createElement("select",{ref:i,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&s()}(e),onDoubleClick:()=>{s()},"data-testid":"selected"},p.map((e=>r.default.createElement("option",{key:e,value:e},vn(e)))))))),r.default.createElement("tfoot",null,r.default.createElement("tr",null,r.default.createElement("td",{align:"center"},r.default.createElement(g,{size:"small",onClick:c},"Add")),r.default.createElement("td",{align:"center"},r.default.createElement(g,{size:"small",onClick:s},"Remove")),r.default.createElement("td",{align:"center"},r.default.createElement(g,{size:"small",onClick:function(){var e,t;const n=null!==(e=l.search.fields)&&void 0!==e?e:[],a=null===(t=i.current)||void 0===t?void 0:t.value;if(a){const e=[...n],t=e.indexOf(a);d(e,t,t-1),u({search:Object.assign(Object.assign({},l.search),{fields:e})})}}},"Up")),r.default.createElement("td",{align:"center"},r.default.createElement(g,{size:"small",onClick:function(){var e,t;const n=null!==(e=l.search.fields)&&void 0!==e?e:[],a=null===(t=i.current)||void 0===t?void 0:t.value;if(a){const e=[...n],t=e.indexOf(a);d(e,t,t+1),u({search:Object.assign(Object.assign({},l.search),{fields:e})})}}},"Down")))))))}function En(e){var t,n;const a=null===(n=null===(t=b().getSchema().types[e.resourceType])||void 0===t?void 0:t.searchParams)||void 0===n?void 0:n[e.filter.code],l=e.filter;return"reference"===(null==a?void 0:a.type)?r.default.createElement(Se,{value:{reference:l.value}}):"_lastUpdated"===e.filter.code||"datetime"===(null==a?void 0:a.type)?r.default.createElement(U,{value:l.value}):r.default.createElement(r.default.Fragment,null,l.value)}function yn(e){var n;const a="filter-value";switch(t.getSearchParameterDetails(e.schema,e.resourceType,e.searchParam).type){case t.SearchParameterType.REFERENCE:return r.default.createElement(Oe,{name:a,defaultValue:{reference:e.defaultValue},targetTypes:null===(n=e.searchParam)||void 0===n?void 0:n.target,onChange:t=>{t?e.onChange(t.reference):e.onChange("")}});case t.SearchParameterType.BOOLEAN:return r.default.createElement("input",{type:"checkbox",name:a,"data-testid":a,defaultChecked:"true"===e.defaultValue,value:"true",onChange:t=>e.onChange(t.target.checked?"true":"false")});case t.SearchParameterType.DATE:return r.default.createElement(i,{type:"date",testid:a,defaultValue:e.defaultValue,onChange:e.onChange});case t.SearchParameterType.DATETIME:return r.default.createElement(se,{testid:a,defaultValue:e.defaultValue,onChange:e.onChange});case t.SearchParameterType.NUMBER:return r.default.createElement(i,{type:"number",defaultValue:e.defaultValue,onChange:e.onChange});case t.SearchParameterType.QUANTITY:return r.default.createElement(ye,{name:a,defaultValue:{},onChange:t=>{t?e.onChange(`${t.value}`):e.onChange("")}});default:return r.default.createElement(i,{testid:a,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:e.onChange})}}function bn(e){const[a,l]=n.useState(JSON.parse(t.stringify(e.search))),[u,o]=n.useState(-1),i=n.useRef(a);if(i.current=a,n.useEffect((()=>{l(JSON.parse(t.stringify(e.search)))}),[e.search]),!e.visible)return null;const c=e.schema,s=e.search.resourceType,d=c.types[s].searchParams,m=a.filters||[];return r.default.createElement(qt,{title:"Filters",visible:e.visible,onOk:()=>e.onOk(i.current),onCancel:e.onCancel},r.default.createElement("div",{className:"medplum-filter-editor"},r.default.createElement("table",{className:"medplum-filter-editor-table"},r.default.createElement("thead",null,r.default.createElement("tr",null,r.default.createElement("th",{style:{width:"30%"}},"Field"),r.default.createElement("th",{style:{width:"30%"}},"Operation"),r.default.createElement("th",{style:{width:"30%"}},"Value"),r.default.createElement("th",{style:{width:"10%"}},"Actions"))),r.default.createElement("tbody",null,m.map(((e,t)=>t===u?r.default.createElement(Tn,{key:`filter-${t}-${m.length}-input`,schema:c,resourceType:s,searchParams:d,defaultValue:e,okText:"Save",onOk:e=>{const n=[...m];n[t]=e,l(Bt(i.current,n)),o(-1)},onCancel:()=>o(-1)}):r.default.createElement(Cn,{key:`filter-${t}-${m.length}-display`,resourceType:s,searchParams:d,filter:e,onEdit:()=>o(t),onDelete:()=>l(Gt(i.current,t))}))),r.default.createElement(Tn,{schema:c,resourceType:s,searchParams:d,okText:"Add",onOk:function(e){l(Kt(i.current,e.code,e.operator,e.value))}})))))}function Cn(e){const{filter:t}=e;return r.default.createElement("tr",null,r.default.createElement("td",null,vn(t.code)),r.default.createElement("td",null,pn(t.operator)),r.default.createElement("td",null,r.default.createElement(En,{resourceType:e.resourceType,filter:t})),r.default.createElement("td",null,r.default.createElement(g,{size:"small",onClick:e.onEdit},"Edit"),r.default.createElement(g,{size:"small",onClick:e.onDelete},"Delete")))}function Tn(e){var t;const[a,l]=n.useState(null!==(t=e.defaultValue)&&void 0!==t?t:{}),u=n.useRef(a);u.current=a;const o=e.searchParams[a.code],i=o&&fn(o);return r.default.createElement("tr",null,r.default.createElement("td",null,r.default.createElement(d,{testid:"filter-field",defaultValue:u.current.code,onChange:function(e){l(Object.assign(Object.assign({},u.current),{code:e}))}},r.default.createElement("option",{value:""}),Object.keys(e.searchParams).map((e=>r.default.createElement("option",{key:e,value:e},vn(e)))))),r.default.createElement("td",null,i&&r.default.createElement(d,{testid:"filter-operation",defaultValue:a.operator,onChange:function(e){l(Object.assign(Object.assign({},u.current),{operator:e}))}},r.default.createElement("option",{value:""}),i.map((e=>r.default.createElement("option",{key:e,value:e},pn(e)))))),r.default.createElement("td",null,o&&a.operator&&r.default.createElement(yn,{schema:e.schema,resourceType:e.resourceType,searchParam:o,defaultValue:a.value,onChange:function(e){l(Object.assign(Object.assign({},u.current),{value:e}))}})),r.default.createElement("td",null,a.code&&a.operator&&a.value&&r.default.createElement(g,{size:"small",onClick:()=>{e.onOk(u.current),l({})}},e.okText),e.onCancel&&r.default.createElement(g,{size:"small",onClick:e.onCancel},"Cancel")))}function Sn(e){var t;const[a,l]=n.useState(null!==(t=e.defaultValue)&&void 0!==t?t:"");if(!e.visible||!e.searchParam||!e.filter)return null;function u(){e.onOk(Object.assign(Object.assign({},e.filter),{value:a}))}return r.default.createElement(qt,{title:e.title,visible:e.visible,onOk:u,onCancel:e.onCancel},r.default.createElement("div",{style:{width:500}},r.default.createElement(Qe,{onSubmit:u},r.default.createElement(yn,{schema:e.schema,resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:a,autoFocus:!0,onChange:l}))))}function kn(){return r.default.createElement("div",{className:"medplum-menu-separator"})}function On(e){const[t,a]=n.useState(!1),[l,u]=n.useState(!1),[o,i]=n.useState(void 0),c=n.useRef(null),s=n.useRef(!1);s.current=t;const d=n.useRef(!1);function m(){const e=c.current;e&&(i(e.getBoundingClientRect()),u(!0))}return d.current=l,n.useEffect((()=>{const e=window.setInterval((()=>{!d.current&&s.current?m():d.current&&!s.current&&u(!1)}),150);return()=>window.clearInterval(e)}),[]),r.default.createElement("div",{ref:c,className:"medplum-menu-item medplum-submenu-item",onClick:()=>m(),onMouseOver:()=>a(!0),onMouseLeave:()=>a(!1)},e.title,r.default.createElement("span",{className:"medplum-submenu-arrow"},"►"),r.default.createElement(Ye,{visible:l,anchor:o,autoClose:!0,onClose:()=>u(!1)},e.children))}function xn(e){if(!e.searchParam)return null;const n=e.searchParam.code,a=e.searchParam.type;function l(t){o(sn(e.search,n,t))}function u(t){e.onPrompt({code:n,operator:t,value:""})}function o(t){e.onChange&&e.onChange(t)}return r.default.createElement(Ye,{visible:e.visible,anchor:{left:e.x,right:e.x,top:e.y,bottom:e.y},autoClose:!0,onClose:e.onClose},r.default.createElement(ze,{onClick:()=>l(!1)},function(){switch(a){case"date":return"Sort Oldest to Newest";case"number":case"quantity":return"Sort Smallest to Largest";default:return"Sort A to Z"}}()),r.default.createElement(ze,{onClick:()=>l(!0)},function(){switch(a){case"date":return"Sort Newest to Oldest";case"number":case"quantity":return"Sort Largest to Smallest";default:return"Sort Z to A"}}()),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>{o(Wt(e.search,n))}},"Clear filters"),"date"===a?r.default.createElement(On,{title:"Date filters"},r.default.createElement(ze,{onClick:()=>u(t.Operator.EQUALS)},"Equals..."),r.default.createElement(ze,{onClick:()=>u(t.Operator.NOT_EQUALS)},"Does not equal..."),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>u(t.Operator.ENDS_BEFORE)},"Before..."),r.default.createElement(ze,{onClick:()=>u(t.Operator.STARTS_AFTER)},"After..."),r.default.createElement(ze,{onClick:()=>u(t.Operator.EQUALS)},"Between..."),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>o(Xt(e.search,n))},"Tomorrow"),r.default.createElement(ze,{onClick:()=>o(Jt(e.search,n))},"Today"),r.default.createElement(ze,{onClick:()=>o(Yt(e.search,n))},"Yesterday"),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>o(nn(e.search,n))},"Next Month"),r.default.createElement(ze,{onClick:()=>o(tn(e.search,n))},"This Month"),r.default.createElement(ze,{onClick:()=>o(en(e.search,n))},"Last Month"),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>o(ln(e.search,n))},"Year to date"),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>u(t.Operator.EQUALS)},"Is set"),r.default.createElement(ze,{onClick:()=>u(t.Operator.EQUALS)},"Is not set")):r.default.createElement(On,{title:"Text filters"},r.default.createElement(ze,{onClick:()=>u(t.Operator.EQUALS)},"Equals..."),r.default.createElement(ze,{onClick:()=>u(t.Operator.NOT_EQUALS)},"Does not equal..."),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>u(t.Operator.CONTAINS)},"Contains..."),r.default.createElement(ze,{onClick:()=>u(t.Operator.EQUALS)},"Does not contain...")),r.default.createElement(kn,null),r.default.createElement(ze,{onClick:()=>{var n;return u("reference"===(null===(n=e.searchParam)||void 0===n?void 0:n.type)?t.Operator.EQUALS:t.Operator.CONTAINS)}},"Search"))}function jn(e){return r.default.createElement("div",{className:"medplum-title-bar"},e.children)}class Rn extends Event{constructor(e){super("change"),this.definition=e}}class wn extends Event{constructor(e){super("load"),this.response=e}}class Pn extends Event{constructor(e,t){super("click"),this.resource=e,this.browserEvent=t}}function Nn(e){var a,l,u,o;const i=b(),[c,s]=n.useState(),[m,f]=n.useState(),{search:p,onLoad:v}=e,[h,E]=n.useState({selected:{},popupVisible:!1,popupX:0,popupY:0,popupSearchParam:void 0,fieldEditorVisible:!1,filterEditorVisible:!1,filterDialogVisible:!1}),y=n.useRef(h);function C(t){e.onChange&&e.onChange(new Rn(t))}function k(t,n){S(t.target)||(T(t),1!==t.button&&e.onClick&&e.onClick(new Pn(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new Pn(n,t)))}y.current=h,n.useEffect((()=>{f(void 0),i.search(p.resourceType,t.formatSearchQuery(Object.assign(Object.assign({},p),{total:"accurate"}))).then((e=>{E(Object.assign(Object.assign({},y.current),{searchResponse:e})),v&&v(new wn(e))})).catch((e=>{E(Object.assign(Object.assign({},y.current),{searchResponse:void 0})),f(e)}))}),[i,p,v]),n.useEffect((()=>{i.requestSchema(e.search.resourceType).then((e=>{s(Object.assign({},e))}))}),[i,e.search.resourceType]);if(!(null===(a=null==c?void 0:c.types)||void 0===a?void 0:a[e.search.resourceType]))return r.default.createElement(qe,null);const O=e.checkboxesEnabled,x=function(e,t){const n=t.resourceType,a=[];for(const l of t.fields||["id","_lastUpdated"])a.push(Qt(e,n,l));return a}(c,p),j=p.resourceType,R=h.searchResponse,w=null==R?void 0:R.entry,P=null==w?void 0:w.map((e=>e.resource)),N=null===(u=null===(l=e.userConfig)||void 0===l?void 0:l.search)||void 0===u?void 0:u.filter((e=>{var t;return null===(t=e.criteria)||void 0===t?void 0:t.startsWith(j)}));return r.default.createElement("div",{className:"medplum-search-control",onContextMenu:e=>T(e),"data-testid":"search-control"},r.default.createElement(jn,null,r.default.createElement("div",null,r.default.createElement("h1",null,r.default.createElement("a",{href:`https://www.hl7.org/fhir/${j.toLowerCase()}.html`,target:"_blank",rel:"noopener"},j)),N&&r.default.createElement(d,{testid:"saved-search-select",style:{width:80},onChange:e=>{C(t.parseSearchDefinition(e))}},r.default.createElement("option",null),N.map(((e,t)=>r.default.createElement("option",{key:`${t}-${N.length}`,value:e.criteria},e.name)))),r.default.createElement(g,{testid:"fields-button",size:"small",onClick:()=>E(Object.assign(Object.assign({},y.current),{fieldEditorVisible:!0}))},"Fields"),r.default.createElement(g,{testid:"filters-button",size:"small",onClick:()=>E(Object.assign(Object.assign({},y.current),{filterEditorVisible:!0}))},"Filters"),e.onNew&&r.default.createElement(g,{size:"small",onClick:e.onNew},"New..."),e.onExport&&r.default.createElement(g,{size:"small",onClick:e.onExport},"Export..."),e.onDelete&&r.default.createElement(g,{size:"small",onClick:()=>e.onDelete(Object.keys(h.selected))},"Delete..."),e.onBulk&&r.default.createElement(g,{size:"small",onClick:()=>e.onBulk(Object.keys(h.selected))},"Bulk...")),R&&r.default.createElement("div",null,r.default.createElement("span",{className:"medplum-search-summary"},function(e,t){var n;return Math.min(t,(null!==(n=e.offset)&&void 0!==n?n:0)+1)}(p,R.total),"-",function(e,n){var a,l;return Math.min(n,((null!==(a=e.offset)&&void 0!==a?a:0)+1)*(null!==(l=e.count)&&void 0!==l?l:t.DEFAULT_SEARCH_COUNT))}(p,R.total)," of"," ",null===(o=R.total)||void 0===o?void 0:o.toLocaleString()),r.default.createElement(g,{testid:"prev-page-button",size:"small",onClick:()=>C(cn(p,-1))},"<<"),r.default.createElement(g,{testid:"next-page-button",size:"small",onClick:()=>C(cn(p,1))},">>"))),r.default.createElement("table",null,r.default.createElement("thead",null,r.default.createElement("tr",null,O&&r.default.createElement("th",{className:"medplum-search-icon-cell"},r.default.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:function(){var e,t;const n=y.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,a={},l=null===(t=y.current)||void 0===t?void 0:t.searchResponse;n&&(null==l?void 0:l.entry)&&l.entry.forEach((e=>{var t;(null===(t=e.resource)||void 0===t?void 0:t.id)&&(a[e.resource.id]=!0)})),E(Object.assign(Object.assign({},y.current),{selected:a}))}(e)})),x.map((e=>r.default.createElement("th",{key:e.name,onClick:t=>function(e,t){E(Object.assign(Object.assign({},y.current),{popupVisible:!0,popupX:e.clientX,popupY:e.clientY,popupSearchParam:t}))}(t,e.searchParam)},vn(e.name),e.searchParam&&r.default.createElement(In,null))))),r.default.createElement("tr",null,O&&r.default.createElement("th",{className:"filters medplum-search-icon-cell"}),x.map((t=>r.default.createElement("th",{key:t.name,className:"filters"},t.searchParam&&r.default.createElement(Dn,{resourceType:j,searchParam:t.searchParam,filters:e.search.filters})))))),r.default.createElement("tbody",null,null==P?void 0:P.map((e=>e&&r.default.createElement("tr",{key:e.id,"data-testid":"search-control-row",onClick:t=>k(t,e),onAuxClick:t=>k(t,e)},O&&r.default.createElement("td",{className:"medplum-search-icon-cell"},r.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!h.selected[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,a=Object.assign({},y.current.selected);n?a[t]=!0:delete a[t],E(Object.assign(Object.assign({},y.current),{selected:a}))}(t,e.id)})),x.map((t=>r.default.createElement("td",{key:t.name},hn(c,e,t))))))))),0===(null==P?void 0:P.length)&&r.default.createElement("div",{"data-testid":"empty-search",className:"medplum-empty-search"},"No results"),m&&r.default.createElement("div",{"data-testid":"search-error",className:"medplum-empty-search"},r.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(m,void 0,2))),r.default.createElement(xn,{schema:c,search:e.search,visible:h.popupVisible,x:h.popupX,y:h.popupY,searchParam:h.popupSearchParam,onPrompt:e=>{E(Object.assign(Object.assign({},y.current),{popupVisible:!1,filterDialogVisible:!0,filterDialogFilter:e}))},onChange:e=>{C(e),E(Object.assign(Object.assign({},y.current),{popupVisible:!1,popupSearchParam:void 0}))},onClose:()=>{E(Object.assign(Object.assign({},y.current),{popupVisible:!1,popupSearchParam:void 0}))}}),r.default.createElement(gn,{schema:c,search:e.search,visible:y.current.fieldEditorVisible,onOk:e=>{C(e),E(Object.assign(Object.assign({},y.current),{fieldEditorVisible:!1}))},onCancel:()=>{E(Object.assign(Object.assign({},y.current),{fieldEditorVisible:!1}))}}),r.default.createElement(bn,{schema:c,search:e.search,visible:y.current.filterEditorVisible,onOk:e=>{C(e),E(Object.assign(Object.assign({},y.current),{filterEditorVisible:!1}))},onCancel:()=>{E(Object.assign(Object.assign({},y.current),{filterEditorVisible:!1}))}}),r.default.createElement(Sn,{visible:y.current.filterDialogVisible,title:"Input",schema:c,resourceType:j,searchParam:h.popupSearchParam,filter:h.filterDialogFilter,defaultValue:"",onOk:t=>{C(Kt(e.search,t.code,t.operator,t.value)),E(Object.assign(Object.assign({},y.current),{filterDialogVisible:!1}))},onCancel:()=>{E(Object.assign(Object.assign({},y.current),{filterDialogVisible:!1}))}}))}const Vn=r.default.memo(Nn);function Dn(e){var t;const n=(null!==(t=e.filters)&&void 0!==t?t:[]).filter((t=>t.code===e.searchParam.code));return 0===n.length?r.default.createElement("span",null,"no filters"):r.default.createElement(r.default.Fragment,null,n.map(((t,a)=>r.default.createElement("div",{key:`filter-${a}-${n.length}`},pn(t.operator)," ",r.default.createElement(En,{resourceType:e.resourceType,filter:t})))))}function In(){return r.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"rgba(0, 0, 0, 0.3)",strokeWidth:2},r.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 6h16M4 12h16m-7 6h7"}))}function An(e,t){const n=document.getElementsByTagName("head")[0],a=document.createElement("script");a.async=!0,a.src=e,a.onload=t||null,n.appendChild(a)}function Fn(e){const t=b(),{handleAuthResponse:a}=e,l=function(e){var t,n;if(e)return e;const a=window.location.protocol+"//"+window.location.host;if((null!==(n=null===(t="undefined")||void 0===t?void 0:t.split(","))&&void 0!==n?n:[]).includes(a))return"undefined";return}(e.googleClientId),u=n.useRef(null),[o,i]=n.useState("undefined"!=typeof google),[c,s]=n.useState(!1),[d,m]=n.useState(!1);return n.useEffect((()=>{"undefined"!=typeof google?(c||(google.accounts.id.initialize({client_id:l,callback:e=>t.startGoogleLogin(e).then(a)}),s(!0)),u.current&&!d&&(google.accounts.id.renderButton(u.current,{}),m(!0))):An("https://accounts.google.com/gsi/client",(()=>i(!0)))}),[t,l,c,o,u,d,a]),l?r.default.createElement("div",{ref:u}):null}function Ln(e){const t=b(),[a,l]=n.useState(),u=o(a,void 0);return r.default.createElement(Qe,{style:{maxWidth:400},onSubmit:n=>{t.startLogin({email:n.email,password:n.password,remember:"true"===n.remember}).then(e.handleAuthResponse).catch(l)}},r.default.createElement("div",{className:"medplum-center"},e.children),u&&r.default.createElement("div",{className:"medplum-input-error"},u.map((e=>{var t,n;return r.default.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)}))),r.default.createElement(I,{title:"Email",htmlFor:"email",outcome:a},r.default.createElement(i,{name:"email",type:"email",testid:"email",required:!0,autoFocus:!0,outcome:a})),r.default.createElement(I,{title:"Password",htmlFor:"password",outcome:a},r.default.createElement(i,{name:"password",type:"password",testid:"password",autoComplete:"off",required:!0,outcome:a})),r.default.createElement("div",{className:"medplum-signin-buttons"},(e.onForgotPassword||e.onRegister)&&r.default.createElement("div",null,e.onForgotPassword&&r.default.createElement(w,{testid:"forgotpassword",onClick:e.onForgotPassword},"Forgot password"),e.onRegister&&r.default.createElement(w,{testid:"register",onClick:e.onRegister},"Register")),r.default.createElement("div",null,r.default.createElement("input",{type:"checkbox",id:"remember",name:"remember",value:"true"}),r.default.createElement("label",{htmlFor:"remember"},"Remember me")),r.default.createElement("div",null,r.default.createElement(g,{type:"submit",testid:"submit"},"Sign in"))),r.default.createElement("div",{className:"medplum-signin-google-container"},r.default.createElement(Fn,{googleClientId:e.googleClientId,handleAuthResponse:e.handleAuthResponse})))}function Mn(e){const t=b();return r.default.createElement("div",null,r.default.createElement("div",{className:"medplum-center"},r.default.createElement(vt,{size:32}),r.default.createElement("h1",null,"Choose profile")),e.memberships.map((n=>{var a,l,u;return r.default.createElement("div",{className:"medplum-nav-menu-profile",key:n.id,onClick:()=>{t.post("auth/profile",{login:e.login,profile:n.id}).then(e.handleAuthResponse)}},r.default.createElement("div",{className:"medplum-nav-menu-profile-icon"},r.default.createElement(V,{alt:null===(a=n.profile)||void 0===a?void 0:a.display})),r.default.createElement("div",{className:"medplum-nav-menu-profile-label"},null===(l=n.profile)||void 0===l?void 0:l.display,r.default.createElement("div",{className:"medplum-nav-menu-profile-help-text"},null===(u=n.project)||void 0===u?void 0:u.display)))})))}function $n(e){const n=t.evalFhirPath(e.path,e.resource);if(n.length>1)throw new Error(`Component "path" for "FhirPathDisplay" must resolve to a single element. Received ${n.length} elements [${JSON.stringify(n,null,2)}]`);return r.default.createElement(X,{value:n[0]||"",propertyType:e.propertyType})}function _n(e){var t,a,l,u,o;const i=b(),[c,s]=n.useState(),[d,m]=n.useState(),{query:f,fields:p}=e,[v,h]=n.useState(),[E,y]=n.useState({}),C=n.useRef();C.current=v;const k=n.useRef({});function O(t,n){S(t.target)||(T(t),1!==t.button&&e.onClick&&e.onClick(new Pn(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new Pn(n,t)))}k.current=E,n.useEffect((()=>{m(void 0),i.graphql(f).then(h).catch(m)}),[i,f]),n.useEffect((()=>{i.requestSchema(e.resourceType).then((e=>{s(Object.assign({},e))}))}),[i,e.resourceType]);if(!(null===(t=null==c?void 0:c.types)||void 0===t?void 0:t[e.resourceType]))return r.default.createElement(qe,null);const x=e.checkboxesEnabled;return r.default.createElement("div",{className:"medplum-search-control",onContextMenu:e=>T(e),"data-testid":"search-control"},r.default.createElement("table",null,r.default.createElement("thead",null,r.default.createElement("tr",null,x&&r.default.createElement("th",{className:"medplum-search-icon-cell"},r.default.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=C.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)&&!k.current[e.id])return!1;return!0}(),onChange:e=>function(e){var t,n;e.stopPropagation();const a=e.target.checked,l={},r=null===(n=null===(t=C.current)||void 0===t?void 0:t.data)||void 0===n?void 0:n.ResourceList;a&&r&&r.forEach((e=>{(null==e?void 0:e.id)&&(l[e.id]=!0)})),y(l)}(e)})),p.map((e=>r.default.createElement("th",{key:e.name},e.name))))),r.default.createElement("tbody",null,null===(l=null===(a=null==v?void 0:v.data)||void 0===a?void 0:a.ResourceList)||void 0===l?void 0:l.map((e=>e&&r.default.createElement("tr",{key:e.id,"data-testid":"search-control-row",onClick:t=>O(t,e),onAuxClick:t=>O(t,e)},x&&r.default.createElement("td",{className:"medplum-search-icon-cell"},r.default.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!E[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,a=Object.assign({},k.current);n?a[t]=!0:delete a[t],y(a)}(t,e.id)})),p.map((t=>r.default.createElement("td",{key:t.name},r.default.createElement($n,{propertyType:t.propertyType,path:t.fhirPath,resource:e}))))))))),0===(null===(o=null===(u=null==v?void 0:v.data)||void 0===u?void 0:u.ResourceList)||void 0===o?void 0:o.length)&&r.default.createElement("div",{"data-testid":"empty-search",className:"medplum-empty-search"},"No results"),d&&r.default.createElement("div",{"data-testid":"search-error",className:"medplum-empty-search"},r.default.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(d,void 0,2))),e.onBulk&&r.default.createElement(g,{size:"small",onClick:()=>e.onBulk(Object.keys(k.current))},"Bulk..."))}const Un=r.default.memo(_n);function Qn(e){let t="medplum-tab";function n(t){T(t),e.onClick(e.name,t.button)}return e.selected&&(t+=" selected"),r.default.createElement("a",{href:`#${e.name}`,role:"tab","aria-selected":e.selected,className:t,onClick:n,onAuxClick:n},e.label)}function qn(e){return r.default.createElement("div",{role:"tabpanel"},e.children)}e.AddressDisplay=u,e.AddressInput=p,e.AttachmentArrayDisplay=h,e.AttachmentArrayInput=x,e.AttachmentInput=j,e.Autocomplete=R,e.Avatar=V,e.BackboneElementInput=Ve,e.Button=g,e.CodeInput=oe,e.CodeableConceptDisplay=$,e.CodeableConceptInput=te,e.ContactPointDisplay=_,e.ContactPointInput=ce,e.DateTimeDisplay=U,e.DateTimeInput=se,e.DefaultResourceTimeline=function(e){return r.default.createElement(at,{value:e.resource,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:[{request:{method:"GET",url:`${t.getReferenceString(e)}/_history`}},{request:{method:"GET",url:`AuditEvent?entity=${t.getReferenceString(e)}&_sort=-_lastUpdated`}}]})})},e.DiagnosticReportDisplay=Ie,e.Document=st,e.ElementDefinitionInputSelector=Re,e.ElementDefinitionTypeInput=we,e.EncounterTimeline=function(e){return r.default.createElement(at,{value:e.encounter,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:[{request:{method:"GET",url:`${t.getReferenceString(e)}/_history`}},{request:{method:"GET",url:`Communication?encounter=${t.getReferenceString(e)}`}},{request:{method:"GET",url:`Media?encounter=${t.getReferenceString(e)}`}}]}),createCommunication:(e,n,a)=>({resourceType:"Communication",encounter:t.createReference(e),subject:e.subject,sender:t.createReference(n),sent:(new Date).toISOString(),payload:[{contentString:a}]}),createMedia:(e,n,a)=>({resourceType:"Media",encounter:t.createReference(e),subject:e.subject,operator:t.createReference(n),issued:(new Date).toISOString(),content:a})})},e.ErrorBoundary=Ge,e.FhirPathTable=_n,e.FooterLinks=function(e){return r.default.createElement("div",{className:"medplum-footer"},e.children)},e.Form=Qe,e.FormSection=I,e.Header=function(e){var l,u,o,i,c,s;const d=a.useNavigate(),m=a.useLocation(),f=y(),p=f.medplum,v=p.getLogins(),[h,E]=n.useState(!1),[b,C]=n.useState(!1);return r.default.createElement(r.default.Fragment,null,r.default.createElement("header",{role:"banner","data-testid":"header",style:{background:e.bgColor}},r.default.createElement("div",null,r.default.createElement(w,{label:"Toggle sidebar",testid:"header-menu-button",onClick:()=>C(!b)},r.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",style:{width:20,height:20,verticalAlign:"text-top"},viewBox:"0 0 20 20",fill:"currentColor"},r.default.createElement("path",{fillRule:"evenodd",d:"M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z",clipRule:"evenodd"}))),r.default.createElement(w,{id:"medplum-header-logo",testid:"header-logo",onClick:e.onLogo},e.title||"Medplum"),f.profile&&r.default.createElement(mt,{key:`header-input-${m.pathname}`,name:"search",className:"medplum-nav-search-container",placeholder:"Search",onChange:e=>d(`/${e.resourceType}/${e.id}`)})),f.profile&&r.default.createElement("div",{className:"medplum-nav-menu-container"},r.default.createElement(w,{testid:"header-profile-menu-button",onClick:()=>E(!0)},r.default.createElement(V,{size:"small",color:"#f68d42",value:f.profile})),r.default.createElement(Ye,{visible:h,autoClose:!0,activeClassName:"medplum-nav-menu-popover",onClose:()=>E(!1)},r.default.createElement("div",{className:"medplum-nav-menu"},r.default.createElement("div",{style:{margin:"auto",padding:"8px"}},r.default.createElement(V,{size:"large",value:f.profile})),r.default.createElement("div",{style:{margin:"auto",padding:"8px"}},r.default.createElement("div",{style:{margin:"4px auto 4px auto",fontWeight:"bold"}},r.default.createElement(Q,{value:null===(u=null===(l=f.profile)||void 0===l?void 0:l.name)||void 0===u?void 0:u[0]})),r.default.createElement("div",{style:{margin:"4px auto 4px auto"}},null===(i=null===(o=p.getActiveLogin())||void 0===o?void 0:o.project)||void 0===i?void 0:i.display),r.default.createElement(g,{testid:"header-profile-link",onClick:()=>{E(!1),e.onProfile&&e.onProfile()}},"Manage your account")),v.length>1&&r.default.createElement("div",null,r.default.createElement("hr",null),v.map((e=>{var n,a,l,u;return(null===(n=e.profile)||void 0===n?void 0:n.reference)!==t.getReferenceString(f.profile)&&r.default.createElement("div",{className:"medplum-nav-menu-profile",key:null===(a=e.profile)||void 0===a?void 0:a.reference,onClick:()=>{p.setActiveLogin(e),E(!1),window.location.reload()}},r.default.createElement("div",{className:"medplum-nav-menu-profile-icon"},r.default.createElement(V,null)),r.default.createElement("div",{className:"medplum-nav-menu-profile-label"},null===(l=e.profile)||void 0===l?void 0:l.display,r.default.createElement("div",{className:"medplum-nav-menu-profile-help-text"},null===(u=e.project)||void 0===u?void 0:u.display)))}))),r.default.createElement("hr",null),r.default.createElement("div",{style:{margin:"auto",padding:"8px"}},r.default.createElement(g,{testid:"header-add-account-button",onClick:()=>{d("/signin")}},"Add another account")),r.default.createElement("hr",null),r.default.createElement("div",{style:{margin:"auto",padding:"8px"}},r.default.createElement(g,{testid:"header-signout-button",onClick:()=>{E(!1),e.onSignOut&&e.onSignOut()}},"Sign out of all accounts")),r.default.createElement("hr",null),r.default.createElement("div",{style:{margin:"auto",padding:"8px",fontSize:"12px"}},r.default.createElement("a",{href:"https://www.medplum.com/terms"},"Terms"),r.default.createElement("a",{href:"https://www.medplum.com/privacy"},"Privacy")))))),r.default.createElement(Ye,{modal:!0,autoClose:!0,visible:b,activeClassName:"medplum-sidebar active",inactiveClassName:"medplum-sidebar",onClose:()=>C(!1)},null===(s=null===(c=e.config)||void 0===c?void 0:c.menu)||void 0===s?void 0:s.map(((t,n)=>{var a,l,u;return r.default.createElement(r.default.Fragment,{key:`menu-${n}-${null===(l=null===(a=e.config)||void 0===a?void 0:a.menu)||void 0===l?void 0:l.length}`},r.default.createElement("h5",null,t.title),r.default.createElement("ul",null,null===(u=t.link)||void 0===u?void 0:u.map((e=>r.default.createElement("li",{key:e.target},r.default.createElement(w,{to:e.target},e.name))))))})),r.default.createElement("h5",null,"Settings"),r.default.createElement("ul",null,r.default.createElement("li",null,r.default.createElement(w,{to:f.profile},"Profile")),r.default.createElement("li",null,r.default.createElement(w,{to:"/changepassword"},"Change password")))))},e.HumanNameDisplay=Q,e.HumanNameInput=he,e.IdentifierInput=ge,e.Input=i,e.Loading=qe,e.Logo=vt,e.MedplumLink=w,e.MedplumProvider=function(e){const t=e.medplum,[a,l]=n.useState({profile:t.getProfile(),loading:!1});n.useEffect((()=>{function e(){l(Object.assign(Object.assign({},a),{profile:t.getProfile()}))}return t.addEventListener("change",e),()=>t.removeEventListeneer("change",e)}),[t,a]);const u=Object.assign(Object.assign({},a),{medplum:t});return r.default.createElement(E.Provider,{value:u},e.children)},e.MemoizedFhirPathTable=Un,e.MemoizedSearchControl=Vn,e.MenuItem=ze,e.ObservationTable=Ae,e.PatientTimeline=function(e){return r.default.createElement(at,{value:e.patient,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:ht.map((n=>({request:{method:"GET",url:n.replaceAll("$",t.getReferenceString(e))}})))}),createCommunication:(e,n,a)=>({resourceType:"Communication",subject:t.createReference(e),sender:t.createReference(n),sent:(new Date).toISOString(),payload:[{contentString:a}]}),createMedia:(e,n,a)=>({resourceType:"Media",subject:t.createReference(e),operator:t.createReference(n),issued:(new Date).toISOString(),content:a})})},e.Popup=Ye,e.QuestionnaireBuilder=function(e){const t=b(),a=N(e.questionnaire),[l,u]=n.useState(),[o,i]=n.useState(),[c,s]=n.useState(),[d,m]=n.useState();function f(){m(void 0)}function p(){s(void 0)}return n.useEffect((()=>{t.requestSchema("Questionnaire").then(u)}),[t]),n.useEffect((()=>{var e;return i((e=null!=a?a:{resourceType:"Questionnaire"},Object.assign(Object.assign({},e),{id:e.id||Pt(),item:Nt(e.item)}))),document.addEventListener("mouseover",f),document.addEventListener("click",p),()=>{document.removeEventListener("mouseover",f),document.removeEventListener("click",p)}}),[a]),l&&o?r.default.createElement("div",{className:"medplum-questionnaire-builder"},r.default.createElement(Qe,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(o)},r.default.createElement(Ot,{schema:l,item:o,selectedKey:c,setSelectedKey:s,hoverKey:d,setHoverKey:m,onChange:i}),r.default.createElement(g,{type:"submit",size:"large"},"Save"))):null},e.QuestionnaireForm=function(e){const a=b(),l=a.getProfile(),[u,o]=n.useState(),i=N(e.questionnaire),[c,s]=n.useState();return n.useEffect((()=>{a.requestSchema("Questionnaire").then(o)}),[a]),n.useEffect((()=>{s(i?function(e){return{resourceType:"QuestionnaireResponse",questionnaire:t.getReferenceString(e),item:Tt(e.item)}}(i):void 0)}),[i]),u&&i?r.default.createElement(Qe,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&c&&e.onSubmit(Object.assign(Object.assign({},c),{questionnaire:t.getReferenceString(i),subject:e.subject,source:t.createReference(l),authored:(new Date).toISOString()}))}},i.title&&r.default.createElement("h1",null,i.title),i.item&&r.default.createElement(bt,{schema:u,items:i.item,onChange:function(e){s({resourceType:"QuestionnaireResponse",item:e})}}),r.default.createElement(g,{type:"submit",size:"large"},"OK")):null},e.QuestionnaireFormItem=Ct,e.RangeDisplay=W,e.RangeInput=Ce,e.ReferenceInput=Oe,e.ResourceArrayDisplay=J,e.ResourceArrayInput=xe,e.ResourceBadge=De,e.ResourceBlame=function(e){var t,a;const l=b(),[u,o]=n.useState(e.history);if(n.useEffect((()=>{!e.history&&e.resourceType&&e.id&&l.readHistory(e.resourceType,e.id).then((e=>o(e)))}),[l,e.history,e.resourceType,e.id]),!u)return r.default.createElement("div",null,"Loading...");const i=null===(a=null===(t=u.entry)||void 0===t?void 0:t[0])||void 0===a?void 0:a.resource,c=At(u);return r.default.createElement("div",{className:"medplum-blame-container"},r.default.createElement("table",{className:"medplum-blame"},r.default.createElement("tbody",null,c.map(((e,t)=>r.default.createElement("tr",{key:"row-"+t,className:e.span>0?"start-row":"normal-row"},e.span>0&&r.default.createElement("td",{className:"details",rowSpan:e.span},r.default.createElement(s,{justifyContent:"space-between"},r.default.createElement(De,{value:e.meta.author,size:"xsmall",link:!0}),r.default.createElement(w,{to:Ft(i,e.meta.versionId)},Lt(e.meta.lastUpdated)))),r.default.createElement("td",{className:"line-number"},t+1),r.default.createElement("td",{className:"line"},r.default.createElement("pre",{className:"line-pre"},e.value))))))))},e.ResourceDiff=function(e){let n=e.original,a=e.revised;e.ignoreMeta&&(n=Object.assign(Object.assign({},n),{meta:void 0}),a=Object.assign(Object.assign({},a),{meta:void 0}));const l=Dt(t.stringify(n,!0).match(/[^\r\n]+/g),t.stringify(a,!0).match(/[^\r\n]+/g));return r.default.createElement("pre",{style:{color:"gray"}},l.map(((e,t)=>r.default.createElement($t,{key:"delta"+t,delta:e}))))},e.ResourceForm=function(e){const a=b(),l=N(e.defaultValue),[u,o]=n.useState(),[c,s]=n.useState();if(n.useEffect((()=>{l&&(s(JSON.parse(JSON.stringify(l))),a.requestSchema(l.resourceType).then(o))}),[a,l]),!u||!c)return r.default.createElement("div",null,"Loading...");const d=u.types[c.resourceType];return r.default.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:t=>{t.preventDefault(),e.onSubmit&&e.onSubmit(c)}},r.default.createElement(I,{title:"Resource Type"},r.default.createElement(i,{name:"resourceType",defaultValue:c.resourceType,disabled:!0})),r.default.createElement(I,{title:"ID"},r.default.createElement(i,{name:"id",defaultValue:c.id,disabled:!0})),Object.entries(d.properties).map((n=>{const a=n[0];if("id"===a||D.indexOf(a)>=0)return null;const l=n[1],[o,i]=Z(c,l);return r.default.createElement(I,{key:a,title:t.getPropertyDisplayName(l),description:l.definition,htmlFor:a,outcome:e.outcome},r.default.createElement(je,{schema:u,property:l,name:a,defaultValue:o,defaultPropertyType:i,outcome:e.outcome,onChange:(e,t)=>{s(Ne(c,a,null!=t?t:a,n[1],e))}}))})),r.default.createElement(g,{type:"submit",size:"large"},"OK"),e.onDelete&&r.default.createElement(g,{type:"button",size:"large",onClick:()=>{e.onDelete(c)}},"Delete"))},e.ResourceHistoryTable=function(e){var t;const a=b(),[l,u]=n.useState(e.history);return n.useEffect((()=>{!e.history&&e.resourceType&&e.id&&a.readHistory(e.resourceType,e.id).then((e=>u(e)))}),[a,e.history,e.resourceType,e.id]),l?r.default.createElement("table",{className:"medplum-table"},r.default.createElement("thead",null,r.default.createElement("tr",null,r.default.createElement("th",null,"Author"),r.default.createElement("th",null,"Date"),r.default.createElement("th",null,"Version"))),r.default.createElement("tbody",null,null===(t=l.entry)||void 0===t?void 0:t.map((e=>{var t,n;return r.default.createElement(_t,{key:null===(n=null===(t=e.resource)||void 0===t?void 0:t.meta)||void 0===n?void 0:n.versionId,version:e.resource})})))):r.default.createElement("div",null,"Loading...")},e.ResourceInput=ke,e.ResourceName=Se,e.ResourcePropertyDisplay=X,e.ResourcePropertyInput=je,e.ResourceTable=We,e.ResourceTimeline=at,e.Scrollable=Ke,e.SearchChangeEvent=Rn,e.SearchClickEvent=Pn,e.SearchControl=Nn,e.SearchFieldEditor=gn,e.SearchFilterEditor=bn,e.SearchLoadEvent=wn,e.Select=d,e.ServiceRequestTimeline=function(e){return r.default.createElement(at,{value:e.serviceRequest,buildSearchRequests:e=>({resourceType:"Bundle",type:"batch",entry:[{request:{method:"GET",url:`${t.getReferenceString(e)}/_history`}},{request:{method:"GET",url:`Communication?based-on=${t.getReferenceString(e)}`}},{request:{method:"GET",url:`Media?_count=100&based-on=${t.getReferenceString(e)}`}},{request:{method:"GET",url:`DiagnosticReport?based-on=${t.getReferenceString(e)}`}}]}),createCommunication:(e,n,a)=>({resourceType:"Communication",basedOn:[t.createReference(e)],subject:e.subject,sender:t.createReference(n),sent:(new Date).toISOString(),payload:[{contentString:a}]}),createMedia:(e,n,a)=>({resourceType:"Media",basedOn:[t.createReference(e)],subject:e.subject,operator:t.createReference(n),issued:(new Date).toISOString(),content:a})})},e.SignInForm=function(e){const t=b(),[a,l]=n.useState(void 0),[u,o]=n.useState(void 0);function i(n){n.login&&l(n.login),n.memberships&&o(n.memberships),n.code&&t.processCode(n.code).then((()=>{e.onSuccess&&e.onSuccess()})).catch(console.log)}return r.default.createElement(st,{width:450},a?u?r.default.createElement(Mn,{login:a,memberships:u,handleAuthResponse:i}):r.default.createElement("div",null,"Success"):r.default.createElement(Ln,{googleClientId:e.googleClientId,onForgotPassword:e.onForgotPassword,onRegister:e.onRegister,handleAuthResponse:i},e.children))},e.Tab=Qn,e.TabList=function(e){return r.default.createElement(Ke,{className:"medplum-surface",height:50},r.default.createElement("div",{role:"tablist",className:"medplum-tablist"},r.default.createElement("div",{className:"medplum-tablist-foreground"},r.default.Children.map(e.children,((t,n)=>r.default.isValidElement(t)&&t.type===Qn?r.default.cloneElement(t,{selected:t.props.name===e.value,onClick:e.onChange,tabIndex:n}):null)))))},e.TabPanel=qn,e.TabSwitch=function(e){return r.default.createElement(r.default.Fragment,null,r.default.Children.map(e.children,(t=>r.default.isValidElement(t)&&t.type===qn&&t.props.name===e.value?t:null)))},e.TextArea=pe,e.Timeline=Je,e.TimelineItem=Xe,e.TitleBar=jn,e.addDateEqualsFilter=function(e,t,n){return rn(e,t,n,n)},e.addDateFilter=function(e,t,n,a){return un(e=Wt(e,t),t,n,a)},e.addDateFilterBetween=rn,e.addField=function(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})},e.addFilter=Kt,e.addLastMonthFilter=en,e.addNextMonthFilter=nn,e.addQuestionnaireInitialValues=function(e,t){return Object.assign(Object.assign({},e),{item:Et(e.item,t)})},e.addThisMonthFilter=tn,e.addTodayFilter=Jt,e.addTomorrowFilter=Xt,e.addUserFilter=function(e,t,n,a){return Kt(e=Wt(e,t),t,n,a)},e.addYearToDateFilter=ln,e.addYesterdayFilter=Yt,e.buildFieldNameString=vn,e.clearFilters=function(e){return Bt(e,[])},e.clearFiltersOnField=Wt,e.convertIsoToLocal=de,e.convertLocalToIso=me,e.createScriptTag=An,e.deleteFilter=Gt,e.formatRangeString=K,e.getOpString=pn,e.getSearchOperators=fn,e.getSortField=dn,e.getTimeString=Lt,e.getValueAndType=Z,e.hasFilterOnField=function(e,t){return!!e.filters&&void 0!==e.filters.find((e=>e.code===t))},e.isChoiceQuestion=yt,e.isSortDescending=mn,e.movePage=cn,e.parseForm=$e,e.renderValue=hn,e.setFilters=Bt,e.setOffset=on,e.setPropertyValue=Ne,e.setSort=sn,e.sortByDateAndPriority=Ze,e.toggleSort=function(e,t){let n=!1;return dn(e)===t&&(n=!mn(e)),sn(e,t,n)},e.useMedplum=b,e.useMedplumContext=y,e.useMedplumProfile=C,e.useResource=N,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=index.min.js.map
|