@f1studio/form-spec 5.0.0-alpha.157 → 5.0.0-alpha.159

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. package/FormSpec.FS/BitmaskHelpers.js.map +1 -0
  2. package/FormSpec.FS/BlueprintValidation.js.map +1 -0
  3. package/FormSpec.FS/Components/HelloComponent.js.map +1 -0
  4. package/FormSpec.FS/Designer.js.map +1 -0
  5. package/FormSpec.FS/FormSpec.d.ts +56 -24
  6. package/FormSpec.FS/FormSpec.d.ts.map +1 -1
  7. package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/FormSpec.js +172 -12
  8. package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/FormSpec.js.map +1 -1
  9. package/FormSpec.FS/FormSpecHelpers.js.map +1 -0
  10. package/FormSpec.FS/FormSpecValues.js.map +1 -0
  11. package/FormSpec.FS/Helpers.js.map +1 -0
  12. package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRAdapter.js.map +1 -0
  13. package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRElementTypeMap.js.map +1 -0
  14. package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFieldTypeMapper.js.map +1 -0
  15. package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFormSpecValidator.js.map +1 -0
  16. package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSectioning.js.map +1 -0
  17. package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSemanticReportBuilder.js.map +1 -0
  18. package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRStepsBuilder.js.map +1 -0
  19. package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateMapper.js.map +1 -0
  20. package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateToFormSpec.js.map +1 -0
  21. package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.d.ts.map +1 -1
  22. package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.js +5 -2
  23. package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.js.map +1 -0
  24. package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.d.ts +46 -5
  25. package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.d.ts.map +1 -1
  26. package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/CorEMR/CoreMREncoder.js +333 -13
  27. package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.js.map +1 -0
  28. package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRSourceMap.js.map +1 -0
  29. package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRTriggerEnrichment.d.ts +19 -0
  30. package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRTriggerEnrichment.d.ts.map +1 -0
  31. package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRTriggerEnrichment.js +99 -0
  32. package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRTriggerEnrichment.js.map +1 -0
  33. package/FormSpec.FS/Integrations/Adapters/CorEMR/FormSpecToCoreMRInsert.js.map +1 -0
  34. package/FormSpec.FS/Integrations/Adapters/FormSystemAdapter.js.map +1 -0
  35. package/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormAdapter.js.map +1 -0
  36. package/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormTypes.js.map +1 -0
  37. package/FormSpec.FS/Integrations/CorEMR/CoreMRTypes.js.map +1 -0
  38. package/FormSpec.FS/Integrations/CorEMR/ItemTriggerConverter.d.ts +1 -1
  39. package/FormSpec.FS/Integrations/CorEMR/ItemTriggerConverter.d.ts.map +1 -1
  40. package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/CorEMR/ItemTriggerConverter.js +18 -10
  41. package/FormSpec.FS/Integrations/CorEMR/ItemTriggerConverter.js.map +1 -0
  42. package/FormSpec.FS/Integrations/CorEMR/TemplateDecodeTypes.js.map +1 -0
  43. package/FormSpec.FS/Integrations/CorEMR/TemplateManifestDecoder.d.ts.map +1 -1
  44. package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/CorEMR/TemplateManifestDecoder.js +3 -63
  45. package/FormSpec.FS/Integrations/CorEMR/TemplateManifestDecoder.js.map +1 -0
  46. package/FormSpec.FS/Integrations/OpenFda/OpenFdaTypes.js.map +1 -0
  47. package/FormSpec.FS/Interfaces.js.map +1 -0
  48. package/FormSpec.FS/Interop/Facade/BlueprintFilledForm.js.map +1 -0
  49. package/FormSpec.FS/Interop/Facade/FormAnswersGate.js.map +1 -0
  50. package/FormSpec.FS/Interop/FormSpec.Api.Helpers.d.ts.map +1 -1
  51. package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Interop/FormSpec.Api.Helpers.js +31 -10
  52. package/FormSpec.FS/Interop/FormSpec.Api.Helpers.js.map +1 -0
  53. package/FormSpec.FS/Interop/FormSpec.Api.Option.js.map +1 -0
  54. package/FormSpec.FS/Interop/FormSpec.Values.Api.Option.js.map +1 -0
  55. package/FormSpec.FS/Logging/LogTypes.js.map +1 -0
  56. package/FormSpec.FS/Migrator.js.map +1 -0
  57. package/FormSpec.FS/PathwayDataExtractor.d.ts.map +1 -1
  58. package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/PathwayDataExtractor.js +67 -42
  59. package/FormSpec.FS/PathwayDataExtractor.js.map +1 -0
  60. package/FormSpec.FS/PathwayExecutor.d.ts.map +1 -1
  61. package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/PathwayExecutor.js +20 -6
  62. package/FormSpec.FS/PathwayExecutor.js.map +1 -0
  63. package/FormSpec.FS/PathwayValidator.js.map +1 -0
  64. package/FormSpec.FS/PluginInterface.js.map +1 -0
  65. package/FormSpec.FS/Prelude.js.map +1 -0
  66. package/FormSpec.FS/Provenance.js.map +1 -0
  67. package/FormSpec.FS/Renderers/FormSpecMarkdownRenderer.js.map +1 -0
  68. package/FormSpec.FS/Renderers/MermaidRenderer.js.map +1 -0
  69. package/FormSpec.FS/Renderers/PathwayRenderers.js.map +1 -0
  70. package/FormSpec.FS/TriggerActionDto.d.ts +26 -10
  71. package/FormSpec.FS/TriggerActionDto.d.ts.map +1 -1
  72. package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/TriggerActionDto.js +82 -17
  73. package/FormSpec.FS/TriggerActionDto.js.map +1 -0
  74. package/PathwayExecutor.withPlugins.js.map +1 -0
  75. package/PluginRegistration.js.map +1 -0
  76. package/README.md +7 -7
  77. package/Thoth.Json/packages/Thoth.Json/Decode.d.ts +2 -2
  78. package/Thoth.Json/packages/Thoth.Json/Decode.d.ts.map +1 -1
  79. package/{FormSpec.TS/Thoth.Json → Thoth.Json}/packages/Thoth.Json/Decode.js +69 -63
  80. package/Thoth.Json/packages/Thoth.Json/Decode.js.map +1 -0
  81. package/Thoth.Json/packages/Thoth.Json/Encode.d.ts.map +1 -1
  82. package/{FormSpec.TS/Thoth.Json → Thoth.Json}/packages/Thoth.Json/Encode.js +10 -6
  83. package/Thoth.Json/packages/Thoth.Json/Encode.js.map +1 -0
  84. package/Thoth.Json/packages/Thoth.Json/Extra.js.map +1 -0
  85. package/Thoth.Json/packages/Thoth.Json/Types.js.map +1 -0
  86. package/fable_modules/Fable.Form.3.0.0/Base.fs.js.map +1 -0
  87. package/fable_modules/Fable.Form.3.0.0/Error.fs.js.map +1 -0
  88. package/fable_modules/Fable.Form.3.0.0/Extensions.fs.js.map +1 -0
  89. package/fable_modules/Fable.Form.3.0.0/Field.fs.js.map +1 -0
  90. package/fable_modules/Fable.Form.Simple.5.0.1/Form.fs.js.map +1 -0
  91. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/CheckboxField.fs.js.map +1 -0
  92. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/ColorField.fs.js.map +1 -0
  93. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/DateField.fs.js.map +1 -0
  94. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/DateTimeLocalField.fs.js.map +1 -0
  95. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/EmailField.fs.js.map +1 -0
  96. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/FileField.fs.js.map +1 -0
  97. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Form.fs.js.map +1 -0
  98. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/FormList.fs.js.map +1 -0
  99. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Group.fs.js.map +1 -0
  100. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Html.View.fs.js.map +1 -0
  101. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/InputField.fs.js.map +1 -0
  102. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/NumberField.fs.js.map +1 -0
  103. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/PasswordField.fs.js.map +1 -0
  104. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/RadioField.fs.js.map +1 -0
  105. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/SearchField.fs.js.map +1 -0
  106. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Section.fs.js.map +1 -0
  107. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/SelectField.fs.js.map +1 -0
  108. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TelField.fs.js.map +1 -0
  109. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TextField.fs.js.map +1 -0
  110. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TextareaField.fs.js.map +1 -0
  111. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TimeField.fs.js.map +1 -0
  112. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Types.fs.js.map +1 -0
  113. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/CheckboxField.fs.js.map +1 -0
  114. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/ColorField.fs.js.map +1 -0
  115. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/DateField.fs.js.map +1 -0
  116. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/DateTimeLocalField.fs.js.map +1 -0
  117. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/EmailField.fs.js.map +1 -0
  118. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/NumberField.fs.js.map +1 -0
  119. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/PasswordField.fs.js.map +1 -0
  120. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/RadioField.fs.js.map +1 -0
  121. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/RangeField.fs.js.map +1 -0
  122. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/SearchField.fs.js.map +1 -0
  123. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/SelectField.fs.js.map +1 -0
  124. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TelField.fs.js.map +1 -0
  125. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TextField.fs.js.map +1 -0
  126. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TextareaField.fs.js.map +1 -0
  127. package/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TimeField.fs.js.map +1 -0
  128. package/fable_modules/Fable.Promise.3.2.0/AsyncIterable.fs.js.map +1 -0
  129. package/fable_modules/Fable.Promise.3.2.0/Promise.fs.js.map +1 -0
  130. package/fable_modules/Fable.Promise.3.2.0/PromiseImpl.fs.js.map +1 -0
  131. package/fable_modules/Fable.React.Types.18.3.0/Fable.React.Hooks.fs.js.map +1 -0
  132. package/fable_modules/Fable.React.Types.18.3.0/Fable.React.fs.js.map +1 -0
  133. package/fable_modules/Fable.ReactDom.Types.18.2.0/Fable.ReactDom.fs.js.map +1 -0
  134. package/fable_modules/Feliz.2.8.0/Colors.fs.js.map +1 -0
  135. package/fable_modules/Feliz.2.8.0/DateParsing.fs.js.map +1 -0
  136. package/fable_modules/Feliz.2.8.0/Helpers.fs.js.map +1 -0
  137. package/fable_modules/Feliz.2.8.0/Internal.fs.js.map +1 -0
  138. package/fable_modules/Feliz.2.8.0/Interop.fs.js.map +1 -0
  139. package/fable_modules/Feliz.2.8.0/Key.fs.js.map +1 -0
  140. package/fable_modules/Feliz.2.8.0/Properties.fs.js.map +1 -0
  141. package/fable_modules/Feliz.2.8.0/ReactDOM.fs.js.map +1 -0
  142. package/fable_modules/Feliz.2.8.0/ReactInterop.js.map +1 -0
  143. package/fable_modules/Feliz.2.8.0/ReactTypes.fs.js.map +1 -0
  144. package/fable_modules/Feliz.2.8.0/StyleTypes.fs.js.map +1 -0
  145. package/fable_modules/Feliz.2.8.0/Svg.fs.js.map +1 -0
  146. package/fable_modules/Feliz.2.8.0/Types.fs.js.map +1 -0
  147. package/fable_modules/Feliz.Bulma.3.0.0/ElementBuilders.fs.js.map +1 -0
  148. package/fable_modules/Feliz.Bulma.3.0.0/Modifiers.fs.js.map +1 -0
  149. package/fable_modules/Feliz.Bulma.3.0.0/Operators.fs.js.map +1 -0
  150. package/fable_modules/Glutinum.Feliz.ReactSignaturePadWrapper.1.0.2/Types.fs.js.map +1 -0
  151. package/package.json +1 -1
  152. package/plugins/allergyfinder/src/AllergyFinderField.js.map +1 -0
  153. package/plugins/allergyfinder/src/AllergyLogic.js.map +1 -0
  154. package/plugins/allergyfinder/src/OpenFdaClient.js.map +1 -0
  155. package/plugins/bmi/src/BMIField.js.map +1 -0
  156. package/plugins/demographics/src/DemographicsField.js.map +1 -0
  157. package/plugins/likert/src/LikertField.js.map +1 -0
  158. package/plugins/signature/src/SignatureField.js.map +1 -0
  159. package/plugins/vitals/src/VitalsField.d.ts +2 -0
  160. package/plugins/vitals/src/VitalsField.d.ts.map +1 -1
  161. package/{FormSpec.TS/plugins → plugins}/vitals/src/VitalsField.js +283 -67
  162. package/plugins/vitals/src/VitalsField.js.map +1 -0
  163. package/plugins/vitals/src/VitalsLogic.d.ts +41 -4
  164. package/plugins/vitals/src/VitalsLogic.d.ts.map +1 -1
  165. package/{FormSpec.TS/plugins → plugins}/vitals/src/VitalsLogic.js +176 -11
  166. package/plugins/vitals/src/VitalsLogic.js.map +1 -0
  167. package/src/FormSpec.FS/FormSpec.ts +98 -26
  168. package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.ts +4 -4
  169. package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.ts +314 -45
  170. package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRTriggerEnrichment.ts +105 -0
  171. package/src/FormSpec.FS/Integrations/CorEMR/ItemTriggerConverter.ts +18 -16
  172. package/src/FormSpec.FS/Integrations/CorEMR/TemplateManifestDecoder.ts +12 -86
  173. package/src/FormSpec.FS/Interop/FormSpec.Api.Helpers.ts +30 -11
  174. package/src/FormSpec.FS/PathwayDataExtractor.ts +65 -44
  175. package/src/FormSpec.FS/PathwayExecutor.ts +22 -10
  176. package/src/FormSpec.FS/TriggerActionDto.ts +64 -29
  177. package/src/Thoth.Json/packages/Thoth.Json/Decode.ts +55 -38
  178. package/src/Thoth.Json/packages/Thoth.Json/Encode.ts +16 -10
  179. package/src/plugins/vitals/src/VitalsField.ts +203 -65
  180. package/src/plugins/vitals/src/VitalsLogic.ts +140 -14
  181. package/FormSpec.TS/FormSpec.FS/BitmaskHelpers.js.map +0 -1
  182. package/FormSpec.TS/FormSpec.FS/BlueprintValidation.js.map +0 -1
  183. package/FormSpec.TS/FormSpec.FS/Components/HelloComponent.js.map +0 -1
  184. package/FormSpec.TS/FormSpec.FS/Designer.js.map +0 -1
  185. package/FormSpec.TS/FormSpec.FS/FormSpecHelpers.js.map +0 -1
  186. package/FormSpec.TS/FormSpec.FS/FormSpecValues.js.map +0 -1
  187. package/FormSpec.TS/FormSpec.FS/Helpers.js.map +0 -1
  188. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRAdapter.js.map +0 -1
  189. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRElementTypeMap.js.map +0 -1
  190. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFieldTypeMapper.js.map +0 -1
  191. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFormSpecValidator.js.map +0 -1
  192. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSectioning.js.map +0 -1
  193. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSemanticReportBuilder.js.map +0 -1
  194. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRStepsBuilder.js.map +0 -1
  195. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateMapper.js.map +0 -1
  196. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateToFormSpec.js.map +0 -1
  197. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.js.map +0 -1
  198. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.js.map +0 -1
  199. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRSourceMap.js.map +0 -1
  200. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/FormSpecToCoreMRInsert.js.map +0 -1
  201. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/FormSystemAdapter.js.map +0 -1
  202. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormAdapter.js.map +0 -1
  203. package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormTypes.js.map +0 -1
  204. package/FormSpec.TS/FormSpec.FS/Integrations/CorEMR/CoreMRTypes.js.map +0 -1
  205. package/FormSpec.TS/FormSpec.FS/Integrations/CorEMR/ItemTriggerConverter.js.map +0 -1
  206. package/FormSpec.TS/FormSpec.FS/Integrations/CorEMR/TemplateDecodeTypes.js.map +0 -1
  207. package/FormSpec.TS/FormSpec.FS/Integrations/CorEMR/TemplateManifestDecoder.js.map +0 -1
  208. package/FormSpec.TS/FormSpec.FS/Integrations/OpenFda/OpenFdaTypes.js.map +0 -1
  209. package/FormSpec.TS/FormSpec.FS/Interfaces.js.map +0 -1
  210. package/FormSpec.TS/FormSpec.FS/Interop/Facade/BlueprintFilledForm.js.map +0 -1
  211. package/FormSpec.TS/FormSpec.FS/Interop/Facade/FormAnswersGate.js.map +0 -1
  212. package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Api.Helpers.js.map +0 -1
  213. package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Api.Option.js.map +0 -1
  214. package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Values.Api.Option.js.map +0 -1
  215. package/FormSpec.TS/FormSpec.FS/Logging/LogTypes.js.map +0 -1
  216. package/FormSpec.TS/FormSpec.FS/Migrator.js.map +0 -1
  217. package/FormSpec.TS/FormSpec.FS/PathwayDataExtractor.js.map +0 -1
  218. package/FormSpec.TS/FormSpec.FS/PathwayExecutor.js.map +0 -1
  219. package/FormSpec.TS/FormSpec.FS/PathwayValidator.js.map +0 -1
  220. package/FormSpec.TS/FormSpec.FS/PluginInterface.js.map +0 -1
  221. package/FormSpec.TS/FormSpec.FS/Prelude.js.map +0 -1
  222. package/FormSpec.TS/FormSpec.FS/Provenance.js.map +0 -1
  223. package/FormSpec.TS/FormSpec.FS/Renderers/FormSpecMarkdownRenderer.js.map +0 -1
  224. package/FormSpec.TS/FormSpec.FS/Renderers/MermaidRenderer.js.map +0 -1
  225. package/FormSpec.TS/FormSpec.FS/Renderers/PathwayRenderers.js.map +0 -1
  226. package/FormSpec.TS/FormSpec.FS/TriggerActionDto.js.map +0 -1
  227. package/FormSpec.TS/PathwayExecutor.withPlugins.js.map +0 -1
  228. package/FormSpec.TS/PluginRegistration.js.map +0 -1
  229. package/FormSpec.TS/Thoth.Json/packages/Thoth.Json/Decode.js.map +0 -1
  230. package/FormSpec.TS/Thoth.Json/packages/Thoth.Json/Encode.js.map +0 -1
  231. package/FormSpec.TS/Thoth.Json/packages/Thoth.Json/Extra.js.map +0 -1
  232. package/FormSpec.TS/Thoth.Json/packages/Thoth.Json/Types.js.map +0 -1
  233. package/FormSpec.TS/fable_modules/Fable.Form.3.0.0/Base.fs.js.map +0 -1
  234. package/FormSpec.TS/fable_modules/Fable.Form.3.0.0/Error.fs.js.map +0 -1
  235. package/FormSpec.TS/fable_modules/Fable.Form.3.0.0/Extensions.fs.js.map +0 -1
  236. package/FormSpec.TS/fable_modules/Fable.Form.3.0.0/Field.fs.js.map +0 -1
  237. package/FormSpec.TS/fable_modules/Fable.Form.Simple.5.0.1/Form.fs.js.map +0 -1
  238. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/CheckboxField.fs.js.map +0 -1
  239. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/ColorField.fs.js.map +0 -1
  240. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/DateField.fs.js.map +0 -1
  241. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/DateTimeLocalField.fs.js.map +0 -1
  242. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/EmailField.fs.js.map +0 -1
  243. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/FileField.fs.js.map +0 -1
  244. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Form.fs.js.map +0 -1
  245. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/FormList.fs.js.map +0 -1
  246. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Group.fs.js.map +0 -1
  247. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Html.View.fs.js.map +0 -1
  248. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/InputField.fs.js.map +0 -1
  249. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/NumberField.fs.js.map +0 -1
  250. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/PasswordField.fs.js.map +0 -1
  251. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/RadioField.fs.js.map +0 -1
  252. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/SearchField.fs.js.map +0 -1
  253. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Section.fs.js.map +0 -1
  254. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/SelectField.fs.js.map +0 -1
  255. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TelField.fs.js.map +0 -1
  256. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TextField.fs.js.map +0 -1
  257. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TextareaField.fs.js.map +0 -1
  258. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TimeField.fs.js.map +0 -1
  259. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Types.fs.js.map +0 -1
  260. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/CheckboxField.fs.js.map +0 -1
  261. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/ColorField.fs.js.map +0 -1
  262. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/DateField.fs.js.map +0 -1
  263. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/DateTimeLocalField.fs.js.map +0 -1
  264. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/EmailField.fs.js.map +0 -1
  265. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/NumberField.fs.js.map +0 -1
  266. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/PasswordField.fs.js.map +0 -1
  267. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/RadioField.fs.js.map +0 -1
  268. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/RangeField.fs.js.map +0 -1
  269. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/SearchField.fs.js.map +0 -1
  270. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/SelectField.fs.js.map +0 -1
  271. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TelField.fs.js.map +0 -1
  272. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TextField.fs.js.map +0 -1
  273. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TextareaField.fs.js.map +0 -1
  274. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TimeField.fs.js.map +0 -1
  275. package/FormSpec.TS/fable_modules/Fable.Promise.3.2.0/AsyncIterable.fs.js.map +0 -1
  276. package/FormSpec.TS/fable_modules/Fable.Promise.3.2.0/Promise.fs.js.map +0 -1
  277. package/FormSpec.TS/fable_modules/Fable.Promise.3.2.0/PromiseImpl.fs.js.map +0 -1
  278. package/FormSpec.TS/fable_modules/Fable.React.Types.18.3.0/Fable.React.Hooks.fs.js.map +0 -1
  279. package/FormSpec.TS/fable_modules/Fable.React.Types.18.3.0/Fable.React.fs.js.map +0 -1
  280. package/FormSpec.TS/fable_modules/Fable.ReactDom.Types.18.2.0/Fable.ReactDom.fs.js.map +0 -1
  281. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Colors.fs.js.map +0 -1
  282. package/FormSpec.TS/fable_modules/Feliz.2.8.0/DateParsing.fs.js.map +0 -1
  283. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Helpers.fs.js.map +0 -1
  284. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Internal.fs.js.map +0 -1
  285. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Interop.fs.js.map +0 -1
  286. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Key.fs.js.map +0 -1
  287. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Properties.fs.js.map +0 -1
  288. package/FormSpec.TS/fable_modules/Feliz.2.8.0/ReactDOM.fs.js.map +0 -1
  289. package/FormSpec.TS/fable_modules/Feliz.2.8.0/ReactInterop.js.map +0 -1
  290. package/FormSpec.TS/fable_modules/Feliz.2.8.0/ReactTypes.fs.js.map +0 -1
  291. package/FormSpec.TS/fable_modules/Feliz.2.8.0/StyleTypes.fs.js.map +0 -1
  292. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Svg.fs.js.map +0 -1
  293. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Types.fs.js.map +0 -1
  294. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/ElementBuilders.fs.js.map +0 -1
  295. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/Modifiers.fs.js.map +0 -1
  296. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/Operators.fs.js.map +0 -1
  297. package/FormSpec.TS/fable_modules/Glutinum.Feliz.ReactSignaturePadWrapper.1.0.2/Types.fs.js.map +0 -1
  298. package/FormSpec.TS/plugins/allergyfinder/src/AllergyFinderField.js.map +0 -1
  299. package/FormSpec.TS/plugins/allergyfinder/src/AllergyLogic.js.map +0 -1
  300. package/FormSpec.TS/plugins/allergyfinder/src/OpenFdaClient.js.map +0 -1
  301. package/FormSpec.TS/plugins/bmi/src/BMIField.js.map +0 -1
  302. package/FormSpec.TS/plugins/demographics/src/DemographicsField.js.map +0 -1
  303. package/FormSpec.TS/plugins/likert/src/LikertField.js.map +0 -1
  304. package/FormSpec.TS/plugins/signature/src/SignatureField.js.map +0 -1
  305. package/FormSpec.TS/plugins/vitals/src/VitalsField.js.map +0 -1
  306. package/FormSpec.TS/plugins/vitals/src/VitalsLogic.js.map +0 -1
  307. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/BitmaskHelpers.js +0 -0
  308. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/BlueprintValidation.js +0 -0
  309. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Components/HelloComponent.js +0 -0
  310. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Designer.js +0 -0
  311. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/FormSpecHelpers.js +0 -0
  312. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/FormSpecValues.js +0 -0
  313. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Helpers.js +0 -0
  314. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/CorEMR/CorEMRAdapter.js +0 -0
  315. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/CorEMR/CorEMRElementTypeMap.js +0 -0
  316. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/CorEMR/CorEMRFieldTypeMapper.js +0 -0
  317. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/CorEMR/CorEMRFormSpecValidator.js +0 -0
  318. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/CorEMR/CorEMRSectioning.js +0 -0
  319. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/CorEMR/CorEMRSemanticReportBuilder.js +0 -0
  320. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/CorEMR/CorEMRStepsBuilder.js +0 -0
  321. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/CorEMR/CorEMRTemplateMapper.js +0 -0
  322. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/CorEMR/CorEMRTemplateToFormSpec.js +0 -0
  323. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/CorEMR/CoreMRSourceMap.js +0 -0
  324. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/CorEMR/FormSpecToCoreMRInsert.js +0 -0
  325. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/FormSystemAdapter.js +0 -0
  326. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/ReactHookForm/ReactHookFormAdapter.js +0 -0
  327. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/Adapters/ReactHookForm/ReactHookFormTypes.js +0 -0
  328. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/CorEMR/CoreMRTypes.js +0 -0
  329. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/CorEMR/TemplateDecodeTypes.js +0 -0
  330. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Integrations/OpenFda/OpenFdaTypes.js +0 -0
  331. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Interfaces.js +0 -0
  332. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Interop/Facade/BlueprintFilledForm.js +0 -0
  333. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Interop/Facade/FormAnswersGate.js +0 -0
  334. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Interop/FormSpec.Api.Option.js +0 -0
  335. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Interop/FormSpec.Values.Api.Option.js +0 -0
  336. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Logging/LogTypes.js +0 -0
  337. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Migrator.js +0 -0
  338. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/PathwayValidator.js +0 -0
  339. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/PluginInterface.js +0 -0
  340. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Prelude.js +0 -0
  341. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Provenance.js +0 -0
  342. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Renderers/FormSpecMarkdownRenderer.js +0 -0
  343. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Renderers/MermaidRenderer.js +0 -0
  344. /package/{FormSpec.TS/FormSpec.FS → FormSpec.FS}/Renderers/PathwayRenderers.js +0 -0
  345. /package/{FormSpec.TS/PathwayExecutor.withPlugins.js → PathwayExecutor.withPlugins.js} +0 -0
  346. /package/{FormSpec.TS/PluginRegistration.js → PluginRegistration.js} +0 -0
  347. /package/{FormSpec.TS/Thoth.Json → Thoth.Json}/packages/Thoth.Json/Extra.js +0 -0
  348. /package/{FormSpec.TS/Thoth.Json → Thoth.Json}/packages/Thoth.Json/Types.js +0 -0
  349. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.3.0.0/Base.fs.js +0 -0
  350. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.3.0.0/Error.fs.js +0 -0
  351. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.3.0.0/Extensions.fs.js +0 -0
  352. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.3.0.0/Field.fs.js +0 -0
  353. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.5.0.1/Form.fs.js +0 -0
  354. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/CheckboxField.fs.js +0 -0
  355. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/ColorField.fs.js +0 -0
  356. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/DateField.fs.js +0 -0
  357. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/DateTimeLocalField.fs.js +0 -0
  358. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/EmailField.fs.js +0 -0
  359. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/FileField.fs.js +0 -0
  360. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/Form.fs.js +0 -0
  361. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/FormList.fs.js +0 -0
  362. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/Group.fs.js +0 -0
  363. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/Html.View.fs.js +0 -0
  364. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/InputField.fs.js +0 -0
  365. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/NumberField.fs.js +0 -0
  366. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/PasswordField.fs.js +0 -0
  367. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/RadioField.fs.js +0 -0
  368. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/SearchField.fs.js +0 -0
  369. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/Section.fs.js +0 -0
  370. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/SelectField.fs.js +0 -0
  371. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/TelField.fs.js +0 -0
  372. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/TextField.fs.js +0 -0
  373. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/TextareaField.fs.js +0 -0
  374. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/TimeField.fs.js +0 -0
  375. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Bulma.5.0.1/Types.fs.js +0 -0
  376. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/CheckboxField.fs.js +0 -0
  377. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/ColorField.fs.js +0 -0
  378. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/DateField.fs.js +0 -0
  379. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/DateTimeLocalField.fs.js +0 -0
  380. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/EmailField.fs.js +0 -0
  381. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/NumberField.fs.js +0 -0
  382. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/PasswordField.fs.js +0 -0
  383. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/RadioField.fs.js +0 -0
  384. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/RangeField.fs.js +0 -0
  385. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/SearchField.fs.js +0 -0
  386. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/SelectField.fs.js +0 -0
  387. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/TelField.fs.js +0 -0
  388. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/TextField.fs.js +0 -0
  389. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/TextareaField.fs.js +0 -0
  390. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Form.Simple.Fields.Html.1.0.1/TimeField.fs.js +0 -0
  391. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Promise.3.2.0/AsyncIterable.fs.js +0 -0
  392. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Promise.3.2.0/Promise.fs.js +0 -0
  393. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.Promise.3.2.0/PromiseImpl.fs.js +0 -0
  394. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.React.Types.18.3.0/Fable.React.Hooks.fs.js +0 -0
  395. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.React.Types.18.3.0/Fable.React.fs.js +0 -0
  396. /package/{FormSpec.TS/fable_modules → fable_modules}/Fable.ReactDom.Types.18.2.0/Fable.ReactDom.fs.js +0 -0
  397. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.2.8.0/Colors.fs.js +0 -0
  398. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.2.8.0/DateParsing.fs.js +0 -0
  399. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.2.8.0/Helpers.fs.js +0 -0
  400. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.2.8.0/Internal.fs.js +0 -0
  401. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.2.8.0/Interop.fs.js +0 -0
  402. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.2.8.0/Key.fs.js +0 -0
  403. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.2.8.0/Properties.fs.js +0 -0
  404. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.2.8.0/ReactDOM.fs.js +0 -0
  405. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.2.8.0/ReactInterop.js +0 -0
  406. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.2.8.0/ReactTypes.fs.js +0 -0
  407. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.2.8.0/StyleTypes.fs.js +0 -0
  408. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.2.8.0/Svg.fs.js +0 -0
  409. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.2.8.0/Types.fs.js +0 -0
  410. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.Bulma.3.0.0/ElementBuilders.fs.js +0 -0
  411. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.Bulma.3.0.0/Modifiers.fs.js +0 -0
  412. /package/{FormSpec.TS/fable_modules → fable_modules}/Feliz.Bulma.3.0.0/Operators.fs.js +0 -0
  413. /package/{FormSpec.TS/fable_modules → fable_modules}/Glutinum.Feliz.ReactSignaturePadWrapper.1.0.2/Types.fs.js +0 -0
  414. /package/{FormSpec.TS/plugins → plugins}/allergyfinder/src/AllergyFinderField.js +0 -0
  415. /package/{FormSpec.TS/plugins → plugins}/allergyfinder/src/AllergyLogic.js +0 -0
  416. /package/{FormSpec.TS/plugins → plugins}/allergyfinder/src/OpenFdaClient.js +0 -0
  417. /package/{FormSpec.TS/plugins → plugins}/bmi/src/BMIField.js +0 -0
  418. /package/{FormSpec.TS/plugins → plugins}/demographics/src/DemographicsField.js +0 -0
  419. /package/{FormSpec.TS/plugins → plugins}/likert/src/LikertField.js +0 -0
  420. /package/{FormSpec.TS/plugins → plugins}/signature/src/SignatureField.js +0 -0
@@ -1,5 +1,5 @@
1
1
  import { FSharpRef, Record } from "@fable-org/fable-library-js/Types.js";
2
- import { VitalsValidationResult, validateVitalsData, isValidPainScale, isValidOxygenSat, isValidRespiration, isValidPulse, isValidDiastolicBP, isValidSystolicBP, isValidTemperature, VitalPropertyValidation, validateVitalsProperty, serializeVitalsData, VitalsData, parseVitalsData, VitalsConfig_$reflection, VitalsConfig } from "./VitalsLogic.js";
2
+ import { VitalsValidationResult, validateVitalsData, isValidHeight, isValidWeight, isValidPainScale, isValidOxygenSat, isValidRespiration, isValidPulse, isValidDiastolicBP, isValidSystolicBP, isValidTemperature, UnitSystem_Metric, UnitSystem_Imperial, VitalPropertyValidation, validateVitalsProperty, serializeVitalsData, convertHeightToImperial, convertWeightToImperial, computeBMI, UnitSystem_$union, VitalsData, parseVitalsData, VitalsConfig_$reflection, VitalsConfig } from "./VitalsLogic.js";
3
3
  import { equals, createObj, IComparable, IEquatable } from "@fable-org/fable-library-js/Util.js";
4
4
  import { mapValues, Field$3, IAttributes } from "../../../fable_modules/Fable.Form.3.0.0/Field.fs.js";
5
5
  import { class_type, record_type, string_type, TypeInfo } from "@fable-org/fable-library-js/Reflection.js";
@@ -7,7 +7,7 @@ import { Form$3, FieldConfig$4, field as field_1 } from "../../../fable_modules/
7
7
  import { join, printf, toText, isNullOrWhiteSpace, isNullOrEmpty } from "@fable-org/fable-library-js/String.js";
8
8
  import { createElement } from "react";
9
9
  import React from "react";
10
- import { some, bind, value as value_144, Option, map, defaultArg } from "@fable-org/fable-library-js/Option.js";
10
+ import { some, bind, value as value_202, Option, map, defaultArg } from "@fable-org/fable-library-js/Option.js";
11
11
  import { int32, float64 } from "@fable-org/fable-library-js/Int32.js";
12
12
  import { reactApi } from "../../../fable_modules/Feliz.2.8.0/Interop.fs.js";
13
13
  import { tryParse } from "@fable-org/fable-library-js/Double.js";
@@ -50,7 +50,7 @@ export function VitalsField_form<Values, Field, Output>(): ((arg0: ((arg0: Field
50
50
  }
51
51
 
52
52
  export function VitalsField_VitalsFieldComponent(config: StandardRenderFieldConfig$2<string, VitalsField_Attributes>): ReactElement {
53
- let elems_12: Iterable<ReactElement>;
53
+ let elems_16: Iterable<ReactElement>;
54
54
  const vitalsData: VitalsData = parseVitalsData(config.Value);
55
55
  const vitalsConfig: VitalsConfig = config.Attributes.Config;
56
56
  let patternInput: [string, ((arg0: string) => void)];
@@ -81,41 +81,100 @@ export function VitalsField_VitalsFieldComponent(config: StandardRenderFieldConf
81
81
  const initial_6: string = defaultArg(map<float64, string>((value_12: float64): string => value_12.toString(), vitalsData.PainScale), "");
82
82
  patternInput_6 = reactApi.useState<string, string>(initial_6);
83
83
  const painScale: string = patternInput_6[0];
84
- const dependencies: any[] = [temperature, systolicBP, diastolicBP, pulse, respiration, oxygenSat, painScale];
84
+ let patternInput_7: [string, ((arg0: string) => void)];
85
+ const initial_7: string = defaultArg(map<float64, string>((value_14: float64): string => value_14.toString(), vitalsData.Weight), "");
86
+ patternInput_7 = reactApi.useState<string, string>(initial_7);
87
+ const weight: string = patternInput_7[0];
88
+ let patternInput_8: [string, ((arg0: string) => void)];
89
+ const initial_8: string = defaultArg(map<float64, string>((value_16: float64): string => value_16.toString(), vitalsData.Height), "");
90
+ patternInput_8 = reactApi.useState<string, string>(initial_8);
91
+ const height: string = patternInput_8[0];
92
+ const patternInput_9: [UnitSystem_$union, ((arg0: UnitSystem_$union) => void)] = reactApi.useState<UnitSystem_$union, UnitSystem_$union>(vitalsData.UnitSystem);
93
+ const unitSystem: UnitSystem_$union = patternInput_9[0];
94
+ const setUnitSystem: ((arg0: UnitSystem_$union) => void) = patternInput_9[1];
95
+ let computedBMI: Option<float64>;
96
+ const parseOpt = (s: string): Option<float64> => {
97
+ if (isNullOrWhiteSpace(s)) {
98
+ return undefined;
99
+ }
100
+ else {
101
+ let matchValue: [boolean, float64];
102
+ let outArg = 0;
103
+ matchValue = ([tryParse(s, new FSharpRef<float64>((): float64 => outArg, (v: float64): void => {
104
+ outArg = v;
105
+ })), outArg] as [boolean, float64]);
106
+ if (matchValue[0]) {
107
+ return matchValue[1];
108
+ }
109
+ else {
110
+ return undefined;
111
+ }
112
+ }
113
+ };
114
+ const matchValue_1: Option<float64> = parseOpt(weight);
115
+ const matchValue_2: Option<float64> = parseOpt(height);
116
+ let matchResult: int32, h_1: float64, w_1: float64;
117
+ if (matchValue_1 != null) {
118
+ if (matchValue_2 != null) {
119
+ if ((value_202(matchValue_1) > 0) && (value_202(matchValue_2) > 0)) {
120
+ matchResult = 0;
121
+ h_1 = value_202(matchValue_2);
122
+ w_1 = value_202(matchValue_1);
123
+ }
124
+ else {
125
+ matchResult = 1;
126
+ }
127
+ }
128
+ else {
129
+ matchResult = 1;
130
+ }
131
+ }
132
+ else {
133
+ matchResult = 1;
134
+ }
135
+ switch (matchResult) {
136
+ case 0: {
137
+ computedBMI = computeBMI(convertWeightToImperial(unitSystem, w_1!) * 1, convertHeightToImperial(unitSystem, h_1!) * 1);
138
+ break;
139
+ }
140
+ default:
141
+ computedBMI = undefined;
142
+ }
143
+ const dependencies: any[] = [temperature, systolicBP, diastolicBP, pulse, respiration, oxygenSat, painScale, weight, height, unitSystem];
85
144
  reactApi.useEffect((): void => {
86
- const parseOpt = (s: string): Option<float64> => {
87
- if (isNullOrWhiteSpace(s)) {
145
+ const parseOpt_1 = (s_1: string): Option<float64> => {
146
+ if (isNullOrWhiteSpace(s_1)) {
88
147
  return undefined;
89
148
  }
90
149
  else {
91
- let matchValue: [boolean, float64];
92
- let outArg = 0;
93
- matchValue = ([tryParse(s, new FSharpRef<float64>((): float64 => outArg, (v: float64): void => {
94
- outArg = v;
95
- })), outArg] as [boolean, float64]);
96
- if (matchValue[0]) {
97
- return matchValue[1];
150
+ let matchValue_4: [boolean, float64];
151
+ let outArg_1 = 0;
152
+ matchValue_4 = ([tryParse(s_1, new FSharpRef<float64>((): float64 => outArg_1, (v_2: float64): void => {
153
+ outArg_1 = v_2;
154
+ })), outArg_1] as [boolean, float64]);
155
+ if (matchValue_4[0]) {
156
+ return matchValue_4[1];
98
157
  }
99
158
  else {
100
159
  return undefined;
101
160
  }
102
161
  }
103
162
  };
104
- config.OnChange(serializeVitalsData(new VitalsData(parseOpt(temperature), parseOpt(systolicBP), parseOpt(diastolicBP), parseOpt(pulse), parseOpt(respiration), parseOpt(oxygenSat), parseOpt(painScale))));
163
+ config.OnChange(serializeVitalsData(new VitalsData(parseOpt_1(temperature), parseOpt_1(systolicBP), parseOpt_1(diastolicBP), parseOpt_1(pulse), parseOpt_1(respiration), parseOpt_1(oxygenSat), parseOpt_1(painScale), parseOpt_1(weight), parseOpt_1(height), unitSystem)));
105
164
  }, dependencies);
106
165
  const statusBadge = (clinicalStatus: string): ReactElement => {
107
- const patternInput_7: [string, string] = (clinicalStatus === "invalid") ? (["bg-red-100 text-red-800 border border-red-300", "Invalid"] as [string, string]) : ((clinicalStatus === "critical") ? (["bg-red-100 text-red-700 border border-red-200", "Critical"] as [string, string]) : ((clinicalStatus === "abnormal") ? (["bg-amber-100 text-amber-700 border border-amber-200", "Abnormal"] as [string, string]) : ((clinicalStatus === "normal") ? (["bg-emerald-100 text-emerald-700 border border-emerald-200", "Normal"] as [string, string]) : (["bg-slate-100 text-slate-600 border border-slate-200", "Pending"] as [string, string]))));
166
+ const patternInput_10: [string, string] = (clinicalStatus === "invalid") ? (["bg-red-100 text-red-800 border border-red-300", "Invalid"] as [string, string]) : ((clinicalStatus === "critical") ? (["bg-red-100 text-red-700 border border-red-200", "Critical"] as [string, string]) : ((clinicalStatus === "abnormal") ? (["bg-amber-100 text-amber-700 border border-amber-200", "Abnormal"] as [string, string]) : ((clinicalStatus === "normal") ? (["bg-emerald-100 text-emerald-700 border border-emerald-200", "Normal"] as [string, string]) : (["bg-slate-100 text-slate-600 border border-slate-200", "Pending"] as [string, string]))));
108
167
  return createElement<any>("span", {
109
- className: `inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${patternInput_7[0]}`,
110
- children: patternInput_7[1],
168
+ className: `inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${patternInput_10[0]}`,
169
+ children: patternInput_10[1],
111
170
  });
112
171
  };
113
- const createVitalInput = (label_1: string, propertyName: string, value_18: string, setValue: ((arg0: string) => void), unitText: string, placeholder: string): ReactElement => {
114
- let matchValue_1: string, elems_1: Iterable<ReactElement>;
115
- const validation: VitalPropertyValidation = validateVitalsProperty(propertyName, value_18);
172
+ const createVitalInput = (label_1: string, propertyName: string, value_22: string, setValue: ((arg0: string) => void), unitText: string, placeholder: string): ReactElement => {
173
+ let matchValue_5: string, elems_1: Iterable<ReactElement>;
174
+ const validation: VitalPropertyValidation = validateVitalsProperty(propertyName, value_22);
116
175
  let inputClass: string;
117
176
  const baseClass = "mt-1 block w-full rounded-md border bg-white px-2.5 py-1.5 text-sm text-slate-900 shadow-sm transition placeholder:text-slate-400 focus:outline-none focus:ring-2 disabled:cursor-not-allowed disabled:bg-slate-100 disabled:text-slate-500";
118
- inputClass = ((config.ShowError && (config.Error != null)) ? (`${baseClass} border-red-400 focus:border-red-500 focus:ring-red-500/30`) : (`${baseClass} ${(matchValue_1 = validation.ClinicalStatus, (matchValue_1 === "invalid") ? "border-red-400 focus:border-red-500 focus:ring-red-500/30" : ((matchValue_1 === "critical") ? "border-red-300 focus:border-red-500 focus:ring-red-500/30" : ((matchValue_1 === "abnormal") ? "border-amber-300 focus:border-amber-500 focus:ring-amber-500/30" : "border-slate-300 focus:border-sky-500 focus:ring-sky-500/30")))}`));
177
+ inputClass = ((config.ShowError && (config.Error != null)) ? (`${baseClass} border-red-400 focus:border-red-500 focus:ring-red-500/30`) : (`${baseClass} ${(matchValue_5 = validation.ClinicalStatus, (matchValue_5 === "invalid") ? "border-red-400 focus:border-red-500 focus:ring-red-500/30" : ((matchValue_5 === "critical") ? "border-red-300 focus:border-red-500 focus:ring-red-500/30" : ((matchValue_5 === "abnormal") ? "border-amber-300 focus:border-amber-500 focus:ring-amber-500/30" : "border-slate-300 focus:border-sky-500 focus:ring-sky-500/30")))}`));
119
178
  return createElement<any>("div", createObj(ofArray([["className", "rounded-lg border border-slate-200 bg-white p-2.5 shadow-sm"] as [string, any], (elems_1 = toList<ReactElement>(delay<ReactElement>((): Iterable<ReactElement> => {
120
179
  let elems: Iterable<ReactElement>;
121
180
  return append<ReactElement>(singleton<ReactElement>(createElement<any>("div", createObj(ofArray([["className", "flex items-center justify-between gap-3"] as [string, any], (elems = [createElement<any>("label", {
@@ -124,7 +183,7 @@ export function VitalsField_VitalsFieldComponent(config: StandardRenderFieldConf
124
183
  }), statusBadge(validation.ClinicalStatus)], ["children", reactApi.Children.toArray(Array.from(elems))] as [string, any])])))), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>(singleton<ReactElement>(createElement<any>("input", {
125
184
  type: "number",
126
185
  className: inputClass,
127
- value: value_18,
186
+ value: value_22,
128
187
  placeholder: placeholder,
129
188
  disabled: config.Disabled ? true : config.IsReadOnly,
130
189
  onChange: (ev: Event): void => {
@@ -136,17 +195,17 @@ export function VitalsField_VitalsFieldComponent(config: StandardRenderFieldConf
136
195
  }))))))));
137
196
  })), ["children", reactApi.Children.toArray(Array.from(elems_1))] as [string, any])])));
138
197
  };
139
- return withLabelAndError(config.Attributes.Label, config.ShowError, config.Error, createElement<any>("div", createObj(ofArray([["className", "space-y-2.5"] as [string, any], (elems_12 = toList<ReactElement>(delay<ReactElement>((): Iterable<ReactElement> => {
140
- let elems_8: Iterable<ReactElement>;
141
- return append<ReactElement>(singleton<ReactElement>(createElement<any>("div", createObj(ofArray([["className", "grid grid-cols-1 auto-rows-min content-start items-start gap-2 md:grid-cols-2 lg:grid-cols-3"] as [string, any], (elems_8 = toList<ReactElement>(delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>(vitalsConfig.IncludeTemperature ? singleton<ReactElement>(createVitalInput("Temperature", "temperature", temperature, patternInput[1], "Normal: 97-99°F", "98.6")) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => {
142
- let systolicValidation: VitalPropertyValidation, diastolicValidation: VitalPropertyValidation, elems_7: Iterable<ReactElement>, elems_3: Iterable<ReactElement>, elems_2: Iterable<ReactElement>, elems_6: Iterable<ReactElement>, elems_4: Iterable<ReactElement>, value_70: string, elems_5: Iterable<ReactElement>, value_89: string;
198
+ return withLabelAndError(config.Attributes.Label, config.ShowError, config.Error, createElement<any>("div", createObj(ofArray([["className", "space-y-2.5"] as [string, any], (elems_16 = toList<ReactElement>(delay<ReactElement>((): Iterable<ReactElement> => {
199
+ let elems_12: Iterable<ReactElement>;
200
+ return append<ReactElement>(singleton<ReactElement>(createElement<any>("div", createObj(ofArray([["className", "grid grid-cols-1 auto-rows-min content-start items-start gap-2 md:grid-cols-2 lg:grid-cols-3"] as [string, any], (elems_12 = toList<ReactElement>(delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>(vitalsConfig.IncludeTemperature ? singleton<ReactElement>(createVitalInput("Temperature", "temperature", temperature, patternInput[1], "Normal: 97-99°F", "98.6")) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => {
201
+ let systolicValidation: VitalPropertyValidation, diastolicValidation: VitalPropertyValidation, elems_7: Iterable<ReactElement>, elems_3: Iterable<ReactElement>, elems_2: Iterable<ReactElement>, elems_6: Iterable<ReactElement>, elems_4: Iterable<ReactElement>, value_74: string, elems_5: Iterable<ReactElement>, value_93: string;
143
202
  return append<ReactElement>(vitalsConfig.IncludeBP ? ((systolicValidation = validateVitalsProperty("systolic_bp", systolicBP), (diastolicValidation = validateVitalsProperty("diastolic_bp", diastolicBP), singleton<ReactElement>(createElement<any>("div", createObj(ofArray([["className", "rounded-lg border border-slate-200 bg-white p-2.5 shadow-sm"] as [string, any], (elems_7 = [createElement<any>("div", createObj(ofArray([["className", "flex items-center justify-between gap-3"] as [string, any], (elems_3 = [createElement<any>("label", {
144
203
  className: "text-xs font-semibold uppercase tracking-wide text-slate-700",
145
204
  children: "Blood Pressure",
146
205
  }), createElement<any>("div", createObj(ofArray([["className", "inline-flex gap-2"] as [string, any], (elems_2 = [statusBadge(systolicValidation.ClinicalStatus), statusBadge(diastolicValidation.ClinicalStatus)], ["children", reactApi.Children.toArray(Array.from(elems_2))] as [string, any])])))], ["children", reactApi.Children.toArray(Array.from(elems_3))] as [string, any])]))), createElement<any>("div", createObj(ofArray([["className", "mt-1 grid grid-cols-[1fr_auto_1fr] items-center gap-1.5"] as [string, any], (elems_6 = [createElement<any>("div", createObj(singleton_1((elems_4 = [createElement<any>("label", {
147
206
  className: "text-[11px] font-medium text-slate-600",
148
207
  children: "Systolic",
149
- }), createElement<any>("input", createObj(ofArray([["type", "number"] as [string, any], (value_70 = "mt-1 block w-full rounded-md border border-slate-300 bg-white px-2.5 py-1.5 text-sm shadow-sm placeholder:text-slate-400 focus:border-sky-500 focus:outline-none focus:ring-2 focus:ring-sky-500/30 disabled:cursor-not-allowed disabled:bg-slate-100 disabled:text-slate-500", ["className", value_70] as [string, any]), ["value", systolicBP] as [string, any], ["placeholder", "120"] as [string, any], ["disabled", config.Disabled ? true : config.IsReadOnly] as [string, any], ["onChange", (ev_1: Event): void => {
208
+ }), createElement<any>("input", createObj(ofArray([["type", "number"] as [string, any], (value_74 = "mt-1 block w-full rounded-md border border-slate-300 bg-white px-2.5 py-1.5 text-sm shadow-sm placeholder:text-slate-400 focus:border-sky-500 focus:outline-none focus:ring-2 focus:ring-sky-500/30 disabled:cursor-not-allowed disabled:bg-slate-100 disabled:text-slate-500", ["className", value_74] as [string, any]), ["value", systolicBP] as [string, any], ["placeholder", "120"] as [string, any], ["disabled", config.Disabled ? true : config.IsReadOnly] as [string, any], ["onChange", (ev_1: Event): void => {
150
209
  patternInput_1[1](ev_1.target.value);
151
210
  }] as [string, any]])))], ["children", reactApi.Children.toArray(Array.from(elems_4))] as [string, any])))), createElement<any>("div", {
152
211
  className: "pt-4 text-base font-semibold text-slate-500",
@@ -154,18 +213,64 @@ export function VitalsField_VitalsFieldComponent(config: StandardRenderFieldConf
154
213
  }), createElement<any>("div", createObj(singleton_1((elems_5 = [createElement<any>("label", {
155
214
  className: "text-[11px] font-medium text-slate-600",
156
215
  children: "Diastolic",
157
- }), createElement<any>("input", createObj(ofArray([["type", "number"] as [string, any], (value_89 = "mt-1 block w-full rounded-md border border-slate-300 bg-white px-2.5 py-1.5 text-sm shadow-sm placeholder:text-slate-400 focus:border-sky-500 focus:outline-none focus:ring-2 focus:ring-sky-500/30 disabled:cursor-not-allowed disabled:bg-slate-100 disabled:text-slate-500", ["className", value_89] as [string, any]), ["value", diastolicBP] as [string, any], ["placeholder", "80"] as [string, any], ["disabled", config.Disabled ? true : config.IsReadOnly] as [string, any], ["onChange", (ev_2: Event): void => {
216
+ }), createElement<any>("input", createObj(ofArray([["type", "number"] as [string, any], (value_93 = "mt-1 block w-full rounded-md border border-slate-300 bg-white px-2.5 py-1.5 text-sm shadow-sm placeholder:text-slate-400 focus:border-sky-500 focus:outline-none focus:ring-2 focus:ring-sky-500/30 disabled:cursor-not-allowed disabled:bg-slate-100 disabled:text-slate-500", ["className", value_93] as [string, any]), ["value", diastolicBP] as [string, any], ["placeholder", "80"] as [string, any], ["disabled", config.Disabled ? true : config.IsReadOnly] as [string, any], ["onChange", (ev_2: Event): void => {
158
217
  patternInput_2[1](ev_2.target.value);
159
218
  }] as [string, any]])))], ["children", reactApi.Children.toArray(Array.from(elems_5))] as [string, any]))))], ["children", reactApi.Children.toArray(Array.from(elems_6))] as [string, any])]))), createElement<any>("p", {
160
219
  className: "mt-1 text-[11px] text-slate-500",
161
220
  children: "mmHg",
162
- })], ["children", reactApi.Children.toArray(Array.from(elems_7))] as [string, any])]))))))) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>(vitalsConfig.IncludePulse ? singleton<ReactElement>(createVitalInput("Pulse Rate", "pulse", pulse, patternInput_3[1], "BPM", "72")) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>(vitalsConfig.IncludeRespiration ? singleton<ReactElement>(createVitalInput("Respiration Rate", "respiration", respiration, patternInput_4[1], "per minute", "16")) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>(vitalsConfig.IncludeOxygenSat ? singleton<ReactElement>(createVitalInput("Oxygen Saturation", "oxygen_saturation", oxygenSat, patternInput_5[1], "%", "98")) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => (vitalsConfig.IncludePainScale ? singleton<ReactElement>(createVitalInput("Pain Scale", "pain_scale", painScale, patternInput_6[1], "0-10 scale", "0")) : empty<ReactElement>())))))))));
163
- })))), ["children", reactApi.Children.toArray(Array.from(elems_8))] as [string, any])])))), delay<ReactElement>((): Iterable<ReactElement> => {
164
- let elems_11: Iterable<ReactElement>, elems_10: Iterable<ReactElement>, elems_9: Iterable<ReactElement>;
165
- return exists<string>((s_1: string): boolean => !isNullOrWhiteSpace(s_1), ofArray([temperature, systolicBP, diastolicBP, pulse, respiration, oxygenSat, painScale])) ? singleton<ReactElement>(createElement<any>("div", createObj(ofArray([["className", "rounded-lg border border-sky-200 bg-sky-50/60 p-2.5 shadow-sm"] as [string, any], (elems_11 = [createElement<any>("h6", {
221
+ })], ["children", reactApi.Children.toArray(Array.from(elems_7))] as [string, any])]))))))) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>(vitalsConfig.IncludePulse ? singleton<ReactElement>(createVitalInput("Pulse Rate", "pulse", pulse, patternInput_3[1], "BPM", "72")) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>(vitalsConfig.IncludeRespiration ? singleton<ReactElement>(createVitalInput("Respiration Rate", "respiration", respiration, patternInput_4[1], "per minute", "16")) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>(vitalsConfig.IncludeOxygenSat ? singleton<ReactElement>(createVitalInput("Oxygen Saturation", "oxygen_saturation", oxygenSat, patternInput_5[1], "%", "98")) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>(vitalsConfig.IncludePainScale ? singleton<ReactElement>(createVitalInput("Pain Scale", "pain_scale", painScale, patternInput_6[1], "0-10 scale", "0")) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => {
222
+ let isImperial: boolean, elems_9: Iterable<ReactElement>, elems_8: Iterable<ReactElement>;
223
+ return append<ReactElement>((vitalsConfig.IncludeWeight ? true : vitalsConfig.IncludeHeight) ? ((isImperial = equals(unitSystem, UnitSystem_Imperial()), singleton<ReactElement>(createElement<any>("div", createObj(ofArray([["className", "col-span-full flex items-center justify-end gap-2 -mt-1"] as [string, any], (elems_9 = [createElement<any>("span", {
224
+ className: "text-xs text-slate-500",
225
+ children: "Units:",
226
+ }), createElement<any>("div", createObj(ofArray([["className", "inline-flex rounded-md border border-slate-200 text-[10px]"] as [string, any], (elems_8 = [createElement<any>("button", {
227
+ className: isImperial ? "px-2.5 py-0.5 bg-sky-100 text-sky-700 rounded-l-md font-medium" : "px-2.5 py-0.5 text-slate-500 rounded-l-md hover:bg-slate-50",
228
+ children: "Imperial (lbs/in)",
229
+ onClick: (_arg: MouseEvent): void => {
230
+ setUnitSystem(UnitSystem_Imperial());
231
+ },
232
+ }), createElement<any>("button", {
233
+ className: !isImperial ? "px-2.5 py-0.5 bg-sky-100 text-sky-700 rounded-r-md font-medium" : "px-2.5 py-0.5 text-slate-500 rounded-r-md hover:bg-slate-50",
234
+ children: "Metric (kg/cm)",
235
+ onClick: (_arg_1: MouseEvent): void => {
236
+ setUnitSystem(UnitSystem_Metric());
237
+ },
238
+ })], ["children", reactApi.Children.toArray(Array.from(elems_8))] as [string, any])])))], ["children", reactApi.Children.toArray(Array.from(elems_9))] as [string, any])])))))) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => {
239
+ let weightLabel: string, weightPlaceholder: string;
240
+ return append<ReactElement>(vitalsConfig.IncludeWeight ? ((weightLabel = (equals(unitSystem, UnitSystem_Imperial()) ? "Weight (lbs)" : "Weight (kg)"), (weightPlaceholder = (equals(unitSystem, UnitSystem_Imperial()) ? "150" : "68"), singleton<ReactElement>(createVitalInput(weightLabel, "weight", weight, patternInput_7[1], equals(unitSystem, UnitSystem_Imperial()) ? "Pounds" : "Kilograms", weightPlaceholder))))) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => {
241
+ let heightLabel: string, heightPlaceholder: string;
242
+ return append<ReactElement>(vitalsConfig.IncludeHeight ? ((heightLabel = (equals(unitSystem, UnitSystem_Imperial()) ? "Height (in)" : "Height (cm)"), (heightPlaceholder = (equals(unitSystem, UnitSystem_Imperial()) ? "68" : "173"), singleton<ReactElement>(createVitalInput(heightLabel, "height", height, patternInput_8[1], equals(unitSystem, UnitSystem_Imperial()) ? "Inches" : "Centimeters", heightPlaceholder))))) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => {
243
+ let elems_11: Iterable<ReactElement>, elems_10: Iterable<ReactElement>;
244
+ if ((vitalsConfig.IncludeWeight && vitalsConfig.IncludeHeight) && (computedBMI != null)) {
245
+ const bmi: float64 = value_202(computedBMI);
246
+ const patternInput_11: [string, string] = (bmi < 18.5) ? (["bg-amber-100 text-amber-700 border-amber-200", "Underweight"] as [string, string]) : ((bmi < 25) ? (["bg-emerald-100 text-emerald-700 border-emerald-200", "Normal"] as [string, string]) : ((bmi < 30) ? (["bg-amber-100 text-amber-700 border-amber-200", "Overweight"] as [string, string]) : (["bg-red-100 text-red-700 border-red-200", "Obese"] as [string, string])));
247
+ return singleton<ReactElement>(createElement<any>("div", createObj(ofArray([["className", "rounded-lg border border-slate-200 bg-white p-2.5 shadow-sm"] as [string, any], (elems_11 = [createElement<any>("div", createObj(ofArray([["className", "flex items-center justify-between gap-3"] as [string, any], (elems_10 = [createElement<any>("label", {
248
+ className: "text-xs font-semibold uppercase tracking-wide text-slate-700",
249
+ children: "BMI",
250
+ }), createElement<any>("span", {
251
+ className: "inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium border " + patternInput_11[0],
252
+ children: patternInput_11[1],
253
+ })], ["children", reactApi.Children.toArray(Array.from(elems_10))] as [string, any])]))), createElement<any>("div", {
254
+ className: "mt-1 text-lg font-semibold text-slate-900",
255
+ children: toText(printf("%.1f"))(bmi),
256
+ }), createElement<any>("p", {
257
+ className: "mt-1 text-[11px] text-slate-500",
258
+ children: "Auto-computed",
259
+ })], ["children", reactApi.Children.toArray(Array.from(elems_11))] as [string, any])]))));
260
+ }
261
+ else {
262
+ return empty<ReactElement>();
263
+ }
264
+ }));
265
+ }));
266
+ }));
267
+ }))))))))));
268
+ })))), ["children", reactApi.Children.toArray(Array.from(elems_12))] as [string, any])])))), delay<ReactElement>((): Iterable<ReactElement> => {
269
+ let elems_15: Iterable<ReactElement>, elems_14: Iterable<ReactElement>, elems_13: Iterable<ReactElement>;
270
+ return exists<string>((s_2: string): boolean => !isNullOrWhiteSpace(s_2), ofArray([temperature, systolicBP, diastolicBP, pulse, respiration, oxygenSat, painScale, weight, height])) ? singleton<ReactElement>(createElement<any>("div", createObj(ofArray([["className", "rounded-lg border border-sky-200 bg-sky-50/60 p-2.5 shadow-sm"] as [string, any], (elems_15 = [createElement<any>("h6", {
166
271
  className: "text-xs font-semibold uppercase tracking-wide text-sky-900",
167
272
  children: "📋 Vital Signs Summary",
168
- }), createElement<any>("div", createObj(ofArray([["className", "mt-1.5 text-xs text-slate-700"] as [string, any], (elems_10 = [createElement<any>("div", createObj(ofArray([["className", "flex flex-wrap gap-1.5"] as [string, any], (elems_9 = toList<ReactElement>(delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>((vitalsConfig.IncludeTemperature && !isNullOrWhiteSpace(temperature)) ? singleton<ReactElement>(createElement<any>("span", {
273
+ }), createElement<any>("div", createObj(ofArray([["className", "mt-1.5 text-xs text-slate-700"] as [string, any], (elems_14 = [createElement<any>("div", createObj(ofArray([["className", "flex flex-wrap gap-1.5"] as [string, any], (elems_13 = toList<ReactElement>(delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>((vitalsConfig.IncludeTemperature && !isNullOrWhiteSpace(temperature)) ? singleton<ReactElement>(createElement<any>("span", {
169
274
  className: "rounded-md bg-white/80 px-2 py-0.5",
170
275
  children: ("🌡️ Temp " + temperature) + "°F",
171
276
  })) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>((vitalsConfig.IncludeBP && (!isNullOrWhiteSpace(systolicBP) ? true : !isNullOrWhiteSpace(diastolicBP))) ? singleton<ReactElement>(createElement<any>("span", {
@@ -180,12 +285,24 @@ export function VitalsField_VitalsFieldComponent(config: StandardRenderFieldConf
180
285
  })) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>((vitalsConfig.IncludeOxygenSat && !isNullOrWhiteSpace(oxygenSat)) ? singleton<ReactElement>(createElement<any>("span", {
181
286
  className: "rounded-md bg-white/80 px-2 py-0.5",
182
287
  children: ("🩸 O2 " + oxygenSat) + "%",
183
- })) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => ((vitalsConfig.IncludePainScale && !isNullOrWhiteSpace(painScale)) ? singleton<ReactElement>(createElement<any>("span", {
288
+ })) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>((vitalsConfig.IncludePainScale && !isNullOrWhiteSpace(painScale)) ? singleton<ReactElement>(createElement<any>("span", {
184
289
  className: "rounded-md bg-white/80 px-2 py-0.5",
185
290
  children: ("😖 Pain " + painScale) + "/10",
186
- })) : empty<ReactElement>()))))))))))))), ["children", reactApi.Children.toArray(Array.from(elems_9))] as [string, any])])))], ["children", reactApi.Children.toArray(Array.from(elems_10))] as [string, any])])))], ["children", reactApi.Children.toArray(Array.from(elems_11))] as [string, any])])))) : empty<ReactElement>();
291
+ })) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>((vitalsConfig.IncludeWeight && !isNullOrWhiteSpace(weight)) ? singleton<ReactElement>(createElement<any>("span", {
292
+ className: "rounded-md bg-white/80 px-2 py-0.5",
293
+ children: (("⚖️ " + weight) + " ") + (equals(unitSystem, UnitSystem_Imperial()) ? "lbs" : "kg"),
294
+ })) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>((vitalsConfig.IncludeHeight && !isNullOrWhiteSpace(height)) ? singleton<ReactElement>(createElement<any>("span", {
295
+ className: "rounded-md bg-white/80 px-2 py-0.5",
296
+ children: (("📏 " + height) + " ") + (equals(unitSystem, UnitSystem_Imperial()) ? "in" : "cm"),
297
+ })) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => {
298
+ let arg_1: float64;
299
+ return (computedBMI != null) ? singleton<ReactElement>(createElement<any>("span", {
300
+ className: "rounded-md bg-white/80 px-2 py-0.5",
301
+ children: (arg_1 = value_202(computedBMI), toText(printf("BMI %.1f"))(arg_1)),
302
+ })) : empty<ReactElement>();
303
+ })))))))))))))))))), ["children", reactApi.Children.toArray(Array.from(elems_13))] as [string, any])])))], ["children", reactApi.Children.toArray(Array.from(elems_14))] as [string, any])])))], ["children", reactApi.Children.toArray(Array.from(elems_15))] as [string, any])])))) : empty<ReactElement>();
187
304
  }));
188
- })), ["children", reactApi.Children.toArray(Array.from(elems_12))] as [string, any])]))));
305
+ })), ["children", reactApi.Children.toArray(Array.from(elems_16))] as [string, any])]))));
189
306
  }
190
307
 
191
308
  export class VitalsField_Field$1<Values> extends IStandardField$3<Values, string, VitalsField_Attributes> implements IField$1<Values> {
@@ -231,9 +348,13 @@ export const Form_PropertyKeys_OxygenSaturation: Shared_PluginPropertyKey = new
231
348
 
232
349
  export const Form_PropertyKeys_PainScale: Shared_PluginPropertyKey = new Shared_PluginPropertyKey("67890123-4567-89ab-cdef-0123456789ef");
233
350
 
351
+ export const Form_PropertyKeys_Weight: Shared_PluginPropertyKey = new Shared_PluginPropertyKey("78901234-5678-9abc-def0-123456789abc");
352
+
353
+ export const Form_PropertyKeys_Height: Shared_PluginPropertyKey = new Shared_PluginPropertyKey("89012345-6789-abcd-ef01-23456789abcd");
354
+
234
355
  export const Form_enhancedVitalsConverter: IPluginValueConverter = new IPluginValueConverter((fieldKey: Shared_FieldKey, pluginValue: any): Option<Shared_FieldValue_$union> => {
235
356
  const vitalsData: VitalsData = pluginValue;
236
- return Shared_FieldValue_PluginData(toList<Shared_PluginDataProperty>(delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.Temperature != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", value_144(vitalsData.Temperature).toString(), "Temperature", "°F", "Body temperature in Fahrenheit")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.SystolicBP != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", value_144(vitalsData.SystolicBP).toString(), "Systolic BP", "mmHg", "Systolic blood pressure")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.DiastolicBP != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", value_144(vitalsData.DiastolicBP).toString(), "Diastolic BP", "mmHg", "Diastolic blood pressure")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.Pulse != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", value_144(vitalsData.Pulse).toString(), "Pulse Rate", "BPM", "Heart rate in beats per minute")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.Respiration != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", value_144(vitalsData.Respiration).toString(), "Respiration Rate", "RPM", "Respiratory rate per minute")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.OxygenSaturation != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", value_144(vitalsData.OxygenSaturation).toString(), "O2 Saturation", "%", "Oxygen saturation percentage")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => ((vitalsData.PainScale != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", value_144(vitalsData.PainScale).toString(), "Pain Level", "/10", "Pain scale from 0 to 10")) : empty<Shared_PluginDataProperty>()))))))))))))))));
357
+ return Shared_FieldValue_PluginData(toList<Shared_PluginDataProperty>(delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.Temperature != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", value_202(vitalsData.Temperature).toString(), "Temperature", "°F", "Body temperature in Fahrenheit")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.SystolicBP != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", value_202(vitalsData.SystolicBP).toString(), "Systolic BP", "mmHg", "Systolic blood pressure")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.DiastolicBP != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", value_202(vitalsData.DiastolicBP).toString(), "Diastolic BP", "mmHg", "Diastolic blood pressure")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.Pulse != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", value_202(vitalsData.Pulse).toString(), "Pulse Rate", "BPM", "Heart rate in beats per minute")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.Respiration != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", value_202(vitalsData.Respiration).toString(), "Respiration Rate", "RPM", "Respiratory rate per minute")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.OxygenSaturation != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", value_202(vitalsData.OxygenSaturation).toString(), "O2 Saturation", "%", "Oxygen saturation percentage")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.PainScale != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", value_202(vitalsData.PainScale).toString(), "Pain Level", "/10", "Pain scale from 0 to 10")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.Weight != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Weight, "weight", "float", value_202(vitalsData.Weight).toString(), "Weight", undefined, "Body weight")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => ((vitalsData.Height != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Height, "height", "float", value_202(vitalsData.Height).toString(), "Height", undefined, "Body height")) : empty<Shared_PluginDataProperty>()))))))))))))))))))));
237
358
  }, (fieldValue: Shared_FieldValue_$union): Option<any> => {
238
359
  switch (fieldValue.tag) {
239
360
  case /* PluginData */ 3: {
@@ -251,20 +372,21 @@ export const Form_enhancedVitalsConverter: IPluginValueConverter = new IPluginVa
251
372
  return undefined;
252
373
  }
253
374
  }, tryFind<Shared_PluginDataProperty>((p: Shared_PluginDataProperty): boolean => (p.Name === name), properties));
254
- return some(new VitalsData(getPropertyValue("temperature"), getPropertyValue("systolic_bp"), getPropertyValue("diastolic_bp"), getPropertyValue("pulse"), getPropertyValue("respiration"), getPropertyValue("oxygen_saturation"), getPropertyValue("pain_scale")));
375
+ const unitSystem: UnitSystem_$union = (defaultArg(map<Shared_PluginDataProperty, string>((p_3: Shared_PluginDataProperty): string => p_3.Value, tryFind<Shared_PluginDataProperty>((p_2: Shared_PluginDataProperty): boolean => (p_2.Name === "unit_system"), properties)), "imperial") === "metric") ? UnitSystem_Metric() : UnitSystem_Imperial();
376
+ return some(new VitalsData(getPropertyValue("temperature"), getPropertyValue("systolic_bp"), getPropertyValue("diastolic_bp"), getPropertyValue("pulse"), getPropertyValue("respiration"), getPropertyValue("oxygen_saturation"), getPropertyValue("pain_scale"), getPropertyValue("weight"), getPropertyValue("height"), unitSystem));
255
377
  }
256
378
  case /* Single */ 0:
257
379
  return some(parseVitalsData(fieldValue.fields[0].Value));
258
380
  default:
259
381
  return undefined;
260
382
  }
261
- }, (): Option<FSharpList<Shared_FieldOption>> => undefined, (): FSharpList<string> => ofArray(["temperature", "systolic_bp", "diastolic_bp", "pulse", "respiration", "oxygen_saturation", "pain_scale"]), (propertyName: string): Option<Shared_PluginDataProperty> => ((propertyName === "temperature") ? (new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", "", "Temperature", "°F", "Body temperature in Fahrenheit")) : ((propertyName === "systolic_bp") ? (new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", "", "Systolic BP", "mmHg", "Systolic blood pressure")) : ((propertyName === "diastolic_bp") ? (new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", "", "Diastolic BP", "mmHg", "Diastolic blood pressure")) : ((propertyName === "pulse") ? (new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", "", "Pulse Rate", "BPM", "Heart rate in beats per minute")) : ((propertyName === "respiration") ? (new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", "", "Respiration Rate", "RPM", "Respiratory rate per minute")) : ((propertyName === "oxygen_saturation") ? (new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", "", "O2 Saturation", "%", "Oxygen saturation percentage")) : ((propertyName === "pain_scale") ? (new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", "", "Pain Level", "/10", "Pain scale from 0 to 10")) : undefined))))))), (propertyKey: Shared_PluginPropertyKey): Option<Shared_PluginDataProperty> => (equals(propertyKey, Form_PropertyKeys_Temperature) ? (new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", "", "Temperature", "°F", "Body temperature in Fahrenheit")) : (equals(propertyKey, Form_PropertyKeys_SystolicBP) ? (new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", "", "Systolic BP", "mmHg", "Systolic blood pressure")) : (equals(propertyKey, Form_PropertyKeys_DiastolicBP) ? (new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", "", "Diastolic BP", "mmHg", "Diastolic blood pressure")) : (equals(propertyKey, Form_PropertyKeys_Pulse) ? (new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", "", "Pulse Rate", "BPM", "Heart rate in beats per minute")) : (equals(propertyKey, Form_PropertyKeys_Respiration) ? (new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", "", "Respiration Rate", "RPM", "Respiratory rate per minute")) : (equals(propertyKey, Form_PropertyKeys_OxygenSaturation) ? (new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", "", "O2 Saturation", "%", "Oxygen saturation percentage")) : (equals(propertyKey, Form_PropertyKeys_PainScale) ? (new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", "", "Pain Level", "/10", "Pain scale from 0 to 10")) : undefined))))))), (propertyName_1: string, fieldValue_1: Shared_FieldValue_$union): Option<Shared_PluginDataProperty> => {
383
+ }, (): Option<FSharpList<Shared_FieldOption>> => undefined, (): FSharpList<string> => ofArray(["temperature", "systolic_bp", "diastolic_bp", "pulse", "respiration", "oxygen_saturation", "pain_scale", "weight", "height"]), (propertyName: string): Option<Shared_PluginDataProperty> => ((propertyName === "temperature") ? (new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", "", "Temperature", "°F", "Body temperature in Fahrenheit")) : ((propertyName === "systolic_bp") ? (new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", "", "Systolic BP", "mmHg", "Systolic blood pressure")) : ((propertyName === "diastolic_bp") ? (new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", "", "Diastolic BP", "mmHg", "Diastolic blood pressure")) : ((propertyName === "pulse") ? (new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", "", "Pulse Rate", "BPM", "Heart rate in beats per minute")) : ((propertyName === "respiration") ? (new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", "", "Respiration Rate", "RPM", "Respiratory rate per minute")) : ((propertyName === "oxygen_saturation") ? (new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", "", "O2 Saturation", "%", "Oxygen saturation percentage")) : ((propertyName === "pain_scale") ? (new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", "", "Pain Level", "/10", "Pain scale from 0 to 10")) : ((propertyName === "weight") ? (new Shared_PluginDataProperty(Form_PropertyKeys_Weight, "weight", "float", "", "Weight", undefined, "Body weight")) : ((propertyName === "height") ? (new Shared_PluginDataProperty(Form_PropertyKeys_Height, "height", "float", "", "Height", undefined, "Body height")) : undefined))))))))), (propertyKey: Shared_PluginPropertyKey): Option<Shared_PluginDataProperty> => (equals(propertyKey, Form_PropertyKeys_Temperature) ? (new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", "", "Temperature", "°F", "Body temperature in Fahrenheit")) : (equals(propertyKey, Form_PropertyKeys_SystolicBP) ? (new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", "", "Systolic BP", "mmHg", "Systolic blood pressure")) : (equals(propertyKey, Form_PropertyKeys_DiastolicBP) ? (new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", "", "Diastolic BP", "mmHg", "Diastolic blood pressure")) : (equals(propertyKey, Form_PropertyKeys_Pulse) ? (new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", "", "Pulse Rate", "BPM", "Heart rate in beats per minute")) : (equals(propertyKey, Form_PropertyKeys_Respiration) ? (new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", "", "Respiration Rate", "RPM", "Respiratory rate per minute")) : (equals(propertyKey, Form_PropertyKeys_OxygenSaturation) ? (new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", "", "O2 Saturation", "%", "Oxygen saturation percentage")) : (equals(propertyKey, Form_PropertyKeys_PainScale) ? (new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", "", "Pain Level", "/10", "Pain scale from 0 to 10")) : (equals(propertyKey, Form_PropertyKeys_Weight) ? (new Shared_PluginDataProperty(Form_PropertyKeys_Weight, "weight", "float", "", "Weight", undefined, "Body weight")) : (equals(propertyKey, Form_PropertyKeys_Height) ? (new Shared_PluginDataProperty(Form_PropertyKeys_Height, "height", "float", "", "Height", undefined, "Body height")) : undefined))))))))), (propertyName_1: string, fieldValue_1: Shared_FieldValue_$union): Option<Shared_PluginDataProperty> => {
262
384
  switch (fieldValue_1.tag) {
263
385
  case /* PluginData */ 3:
264
- return tryFind<Shared_PluginDataProperty>((p_2: Shared_PluginDataProperty): boolean => (p_2.Name === propertyName_1), fieldValue_1.fields[0]);
386
+ return tryFind<Shared_PluginDataProperty>((p_4: Shared_PluginDataProperty): boolean => (p_4.Name === propertyName_1), fieldValue_1.fields[0]);
265
387
  case /* Single */ 0: {
266
388
  const vitalsData_1: VitalsData = parseVitalsData(fieldValue_1.fields[0].Value);
267
- return (propertyName_1 === "temperature") ? map<float64, Shared_PluginDataProperty>((v_1: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", v_1.toString(), "Temperature", "°F", "Body temperature in Fahrenheit")), vitalsData_1.Temperature) : ((propertyName_1 === "systolic_bp") ? map<float64, Shared_PluginDataProperty>((v_2: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", v_2.toString(), "Systolic BP", "mmHg", "Systolic blood pressure")), vitalsData_1.SystolicBP) : ((propertyName_1 === "diastolic_bp") ? map<float64, Shared_PluginDataProperty>((v_3: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", v_3.toString(), "Diastolic BP", "mmHg", "Diastolic blood pressure")), vitalsData_1.DiastolicBP) : ((propertyName_1 === "pulse") ? map<float64, Shared_PluginDataProperty>((v_4: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", v_4.toString(), "Pulse Rate", "BPM", "Heart rate in beats per minute")), vitalsData_1.Pulse) : ((propertyName_1 === "respiration") ? map<float64, Shared_PluginDataProperty>((v_5: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", v_5.toString(), "Respiration Rate", "RPM", "Respiratory rate per minute")), vitalsData_1.Respiration) : ((propertyName_1 === "oxygen_saturation") ? map<float64, Shared_PluginDataProperty>((v_6: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", v_6.toString(), "O2 Saturation", "%", "Oxygen saturation percentage")), vitalsData_1.OxygenSaturation) : ((propertyName_1 === "pain_scale") ? map<float64, Shared_PluginDataProperty>((v_7: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", v_7.toString(), "Pain Level", "/10", "Pain scale from 0 to 10")), vitalsData_1.PainScale) : undefined))))));
389
+ return (propertyName_1 === "temperature") ? map<float64, Shared_PluginDataProperty>((v_1: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", v_1.toString(), "Temperature", "°F", "Body temperature in Fahrenheit")), vitalsData_1.Temperature) : ((propertyName_1 === "systolic_bp") ? map<float64, Shared_PluginDataProperty>((v_2: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", v_2.toString(), "Systolic BP", "mmHg", "Systolic blood pressure")), vitalsData_1.SystolicBP) : ((propertyName_1 === "diastolic_bp") ? map<float64, Shared_PluginDataProperty>((v_3: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", v_3.toString(), "Diastolic BP", "mmHg", "Diastolic blood pressure")), vitalsData_1.DiastolicBP) : ((propertyName_1 === "pulse") ? map<float64, Shared_PluginDataProperty>((v_4: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", v_4.toString(), "Pulse Rate", "BPM", "Heart rate in beats per minute")), vitalsData_1.Pulse) : ((propertyName_1 === "respiration") ? map<float64, Shared_PluginDataProperty>((v_5: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", v_5.toString(), "Respiration Rate", "RPM", "Respiratory rate per minute")), vitalsData_1.Respiration) : ((propertyName_1 === "oxygen_saturation") ? map<float64, Shared_PluginDataProperty>((v_6: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", v_6.toString(), "O2 Saturation", "%", "Oxygen saturation percentage")), vitalsData_1.OxygenSaturation) : ((propertyName_1 === "pain_scale") ? map<float64, Shared_PluginDataProperty>((v_7: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", v_7.toString(), "Pain Level", "/10", "Pain scale from 0 to 10")), vitalsData_1.PainScale) : ((propertyName_1 === "weight") ? map<float64, Shared_PluginDataProperty>((v_8: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Weight, "weight", "float", v_8.toString(), "Weight", undefined, "Body weight")), vitalsData_1.Weight) : ((propertyName_1 === "height") ? map<float64, Shared_PluginDataProperty>((v_9: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Height, "height", "float", v_9.toString(), "Height", undefined, "Body height")), vitalsData_1.Height) : undefined))))))));
268
390
  }
269
391
  default:
270
392
  return undefined;
@@ -272,72 +394,88 @@ export const Form_enhancedVitalsConverter: IPluginValueConverter = new IPluginVa
272
394
  }, (propertyKey_1: Shared_PluginPropertyKey, fieldValue_2: Shared_FieldValue_$union): Option<Shared_PluginDataProperty> => {
273
395
  switch (fieldValue_2.tag) {
274
396
  case /* PluginData */ 3:
275
- return tryFind<Shared_PluginDataProperty>((p_3: Shared_PluginDataProperty): boolean => equals(p_3.PropertyKey, propertyKey_1), fieldValue_2.fields[0]);
397
+ return tryFind<Shared_PluginDataProperty>((p_5: Shared_PluginDataProperty): boolean => equals(p_5.PropertyKey, propertyKey_1), fieldValue_2.fields[0]);
276
398
  case /* Single */ 0: {
277
399
  const vitalsData_2: VitalsData = parseVitalsData(fieldValue_2.fields[0].Value);
278
- return equals(propertyKey_1, Form_PropertyKeys_Temperature) ? map<float64, Shared_PluginDataProperty>((v_8: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", v_8.toString(), "Temperature", "°F", "Body temperature in Fahrenheit")), vitalsData_2.Temperature) : (equals(propertyKey_1, Form_PropertyKeys_SystolicBP) ? map<float64, Shared_PluginDataProperty>((v_9: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", v_9.toString(), "Systolic BP", "mmHg", "Systolic blood pressure")), vitalsData_2.SystolicBP) : (equals(propertyKey_1, Form_PropertyKeys_DiastolicBP) ? map<float64, Shared_PluginDataProperty>((v_10: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", v_10.toString(), "Diastolic BP", "mmHg", "Diastolic blood pressure")), vitalsData_2.DiastolicBP) : (equals(propertyKey_1, Form_PropertyKeys_Pulse) ? map<float64, Shared_PluginDataProperty>((v_11: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", v_11.toString(), "Pulse Rate", "BPM", "Heart rate in beats per minute")), vitalsData_2.Pulse) : (equals(propertyKey_1, Form_PropertyKeys_Respiration) ? map<float64, Shared_PluginDataProperty>((v_12: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", v_12.toString(), "Respiration Rate", "RPM", "Respiratory rate per minute")), vitalsData_2.Respiration) : (equals(propertyKey_1, Form_PropertyKeys_OxygenSaturation) ? map<float64, Shared_PluginDataProperty>((v_13: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", v_13.toString(), "O2 Saturation", "%", "Oxygen saturation percentage")), vitalsData_2.OxygenSaturation) : (equals(propertyKey_1, Form_PropertyKeys_PainScale) ? map<float64, Shared_PluginDataProperty>((v_14: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", v_14.toString(), "Pain Level", "/10", "Pain scale from 0 to 10")), vitalsData_2.PainScale) : undefined))))));
400
+ return equals(propertyKey_1, Form_PropertyKeys_Temperature) ? map<float64, Shared_PluginDataProperty>((v_10: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", v_10.toString(), "Temperature", "°F", "Body temperature in Fahrenheit")), vitalsData_2.Temperature) : (equals(propertyKey_1, Form_PropertyKeys_SystolicBP) ? map<float64, Shared_PluginDataProperty>((v_11: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", v_11.toString(), "Systolic BP", "mmHg", "Systolic blood pressure")), vitalsData_2.SystolicBP) : (equals(propertyKey_1, Form_PropertyKeys_DiastolicBP) ? map<float64, Shared_PluginDataProperty>((v_12: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", v_12.toString(), "Diastolic BP", "mmHg", "Diastolic blood pressure")), vitalsData_2.DiastolicBP) : (equals(propertyKey_1, Form_PropertyKeys_Pulse) ? map<float64, Shared_PluginDataProperty>((v_13: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", v_13.toString(), "Pulse Rate", "BPM", "Heart rate in beats per minute")), vitalsData_2.Pulse) : (equals(propertyKey_1, Form_PropertyKeys_Respiration) ? map<float64, Shared_PluginDataProperty>((v_14: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", v_14.toString(), "Respiration Rate", "RPM", "Respiratory rate per minute")), vitalsData_2.Respiration) : (equals(propertyKey_1, Form_PropertyKeys_OxygenSaturation) ? map<float64, Shared_PluginDataProperty>((v_15: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", v_15.toString(), "O2 Saturation", "%", "Oxygen saturation percentage")), vitalsData_2.OxygenSaturation) : (equals(propertyKey_1, Form_PropertyKeys_PainScale) ? map<float64, Shared_PluginDataProperty>((v_16: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", v_16.toString(), "Pain Level", "/10", "Pain scale from 0 to 10")), vitalsData_2.PainScale) : (equals(propertyKey_1, Form_PropertyKeys_Weight) ? map<float64, Shared_PluginDataProperty>((v_17: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Weight, "weight", "float", v_17.toString(), "Weight", undefined, "Body weight")), vitalsData_2.Weight) : (equals(propertyKey_1, Form_PropertyKeys_Height) ? map<float64, Shared_PluginDataProperty>((v_18: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Height, "height", "float", v_18.toString(), "Height", undefined, "Body height")), vitalsData_2.Height) : undefined))))))));
279
401
  }
280
402
  default:
281
403
  return undefined;
282
404
  }
283
- }, (propertyName_2: string, value_1: string): FSharpResult$2_$union<void, string> => {
405
+ }, (propertyName_2: string, value_2: string): FSharpResult$2_$union<void, string> => {
284
406
  switch (propertyName_2) {
285
407
  case "temperature": {
286
408
  let matchValue_1: [boolean, float64];
287
409
  let outArg_1 = 0;
288
- matchValue_1 = ([tryParse(value_1, new FSharpRef<float64>((): float64 => outArg_1, (v_15: float64): void => {
289
- outArg_1 = v_15;
410
+ matchValue_1 = ([tryParse(value_2, new FSharpRef<float64>((): float64 => outArg_1, (v_19: float64): void => {
411
+ outArg_1 = v_19;
290
412
  })), outArg_1] as [boolean, float64]);
291
413
  return matchValue_1[0] ? (isValidTemperature(matchValue_1[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>(("Temperature must be between 95-108°F, got " + matchValue_1[1].toString()) + "°F")) : FSharpResult$2_Error<void, string>("Temperature must be a valid number");
292
414
  }
293
415
  case "systolic_bp": {
294
416
  let matchValue_2: [boolean, float64];
295
417
  let outArg_2 = 0;
296
- matchValue_2 = ([tryParse(value_1, new FSharpRef<float64>((): float64 => outArg_2, (v_19: float64): void => {
297
- outArg_2 = v_19;
418
+ matchValue_2 = ([tryParse(value_2, new FSharpRef<float64>((): float64 => outArg_2, (v_23: float64): void => {
419
+ outArg_2 = v_23;
298
420
  })), outArg_2] as [boolean, float64]);
299
421
  return matchValue_2[0] ? (isValidSystolicBP(matchValue_2[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>("Systolic BP must be between 60-200 mmHg, got " + matchValue_2[1].toString())) : FSharpResult$2_Error<void, string>("Systolic BP must be a valid number");
300
422
  }
301
423
  case "diastolic_bp": {
302
424
  let matchValue_3: [boolean, float64];
303
425
  let outArg_3 = 0;
304
- matchValue_3 = ([tryParse(value_1, new FSharpRef<float64>((): float64 => outArg_3, (v_23: float64): void => {
305
- outArg_3 = v_23;
426
+ matchValue_3 = ([tryParse(value_2, new FSharpRef<float64>((): float64 => outArg_3, (v_27: float64): void => {
427
+ outArg_3 = v_27;
306
428
  })), outArg_3] as [boolean, float64]);
307
429
  return matchValue_3[0] ? (isValidDiastolicBP(matchValue_3[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>("Diastolic BP must be between 40-120 mmHg, got " + matchValue_3[1].toString())) : FSharpResult$2_Error<void, string>("Diastolic BP must be a valid number");
308
430
  }
309
431
  case "pulse": {
310
432
  let matchValue_4: [boolean, float64];
311
433
  let outArg_4 = 0;
312
- matchValue_4 = ([tryParse(value_1, new FSharpRef<float64>((): float64 => outArg_4, (v_27: float64): void => {
313
- outArg_4 = v_27;
434
+ matchValue_4 = ([tryParse(value_2, new FSharpRef<float64>((): float64 => outArg_4, (v_31: float64): void => {
435
+ outArg_4 = v_31;
314
436
  })), outArg_4] as [boolean, float64]);
315
437
  return matchValue_4[0] ? (isValidPulse(matchValue_4[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>("Pulse must be between 40-180 BPM, got " + matchValue_4[1].toString())) : FSharpResult$2_Error<void, string>("Pulse must be a valid number");
316
438
  }
317
439
  case "respiration": {
318
440
  let matchValue_5: [boolean, float64];
319
441
  let outArg_5 = 0;
320
- matchValue_5 = ([tryParse(value_1, new FSharpRef<float64>((): float64 => outArg_5, (v_31: float64): void => {
321
- outArg_5 = v_31;
442
+ matchValue_5 = ([tryParse(value_2, new FSharpRef<float64>((): float64 => outArg_5, (v_35: float64): void => {
443
+ outArg_5 = v_35;
322
444
  })), outArg_5] as [boolean, float64]);
323
445
  return matchValue_5[0] ? (isValidRespiration(matchValue_5[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>("Respiration rate must be between 8-35 RPM, got " + matchValue_5[1].toString())) : FSharpResult$2_Error<void, string>("Respiration rate must be a valid number");
324
446
  }
325
447
  case "oxygen_saturation": {
326
448
  let matchValue_6: [boolean, float64];
327
449
  let outArg_6 = 0;
328
- matchValue_6 = ([tryParse(value_1, new FSharpRef<float64>((): float64 => outArg_6, (v_35: float64): void => {
329
- outArg_6 = v_35;
450
+ matchValue_6 = ([tryParse(value_2, new FSharpRef<float64>((): float64 => outArg_6, (v_39: float64): void => {
451
+ outArg_6 = v_39;
330
452
  })), outArg_6] as [boolean, float64]);
331
453
  return matchValue_6[0] ? (isValidOxygenSat(matchValue_6[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>(("Oxygen saturation must be between 70-100%, got " + matchValue_6[1].toString()) + "%")) : FSharpResult$2_Error<void, string>("Oxygen saturation must be a valid number");
332
454
  }
333
455
  case "pain_scale": {
334
456
  let matchValue_7: [boolean, float64];
335
457
  let outArg_7 = 0;
336
- matchValue_7 = ([tryParse(value_1, new FSharpRef<float64>((): float64 => outArg_7, (v_39: float64): void => {
337
- outArg_7 = v_39;
458
+ matchValue_7 = ([tryParse(value_2, new FSharpRef<float64>((): float64 => outArg_7, (v_43: float64): void => {
459
+ outArg_7 = v_43;
338
460
  })), outArg_7] as [boolean, float64]);
339
461
  return matchValue_7[0] ? (isValidPainScale(matchValue_7[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>("Pain scale must be between 0-10, got " + matchValue_7[1].toString())) : FSharpResult$2_Error<void, string>("Pain scale must be a valid number");
340
462
  }
463
+ case "weight": {
464
+ let matchValue_8: [boolean, float64];
465
+ let outArg_8 = 0;
466
+ matchValue_8 = ([tryParse(value_2, new FSharpRef<float64>((): float64 => outArg_8, (v_47: float64): void => {
467
+ outArg_8 = v_47;
468
+ })), outArg_8] as [boolean, float64]);
469
+ return matchValue_8[0] ? (isValidWeight(matchValue_8[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>("Weight out of valid range")) : FSharpResult$2_Error<void, string>("Weight must be a valid number");
470
+ }
471
+ case "height": {
472
+ let matchValue_9: [boolean, float64];
473
+ let outArg_9 = 0;
474
+ matchValue_9 = ([tryParse(value_2, new FSharpRef<float64>((): float64 => outArg_9, (v_50: float64): void => {
475
+ outArg_9 = v_50;
476
+ })), outArg_9] as [boolean, float64]);
477
+ return matchValue_9[0] ? (isValidHeight(matchValue_9[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>("Height out of valid range")) : FSharpResult$2_Error<void, string>("Height must be a valid number");
478
+ }
341
479
  default:
342
480
  return FSharpResult$2_Error<void, string>("Unknown property: " + propertyName_2);
343
481
  }
@@ -347,7 +485,7 @@ export const Form_enhancedVitalsConverter: IPluginValueConverter = new IPluginVa
347
485
  return fieldValue_3.fields[0];
348
486
  case /* Single */ 0: {
349
487
  const vitalsData_3: VitalsData = parseVitalsData(fieldValue_3.fields[0].Value);
350
- return toList<Shared_PluginDataProperty>(delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.Temperature != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", value_144(vitalsData_3.Temperature).toString(), "Temperature", "°F", "Body temperature in Fahrenheit")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.SystolicBP != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", value_144(vitalsData_3.SystolicBP).toString(), "Systolic BP", "mmHg", "Systolic blood pressure")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.DiastolicBP != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", value_144(vitalsData_3.DiastolicBP).toString(), "Diastolic BP", "mmHg", "Diastolic blood pressure")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.Pulse != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", value_144(vitalsData_3.Pulse).toString(), "Pulse Rate", "BPM", "Heart rate in beats per minute")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.Respiration != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", value_144(vitalsData_3.Respiration).toString(), "Respiration Rate", "RPM", "Respiratory rate per minute")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.OxygenSaturation != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", value_144(vitalsData_3.OxygenSaturation).toString(), "O2 Saturation", "%", "Oxygen saturation percentage")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => ((vitalsData_3.PainScale != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", value_144(vitalsData_3.PainScale).toString(), "Pain Level", "/10", "Pain scale from 0 to 10")) : empty<Shared_PluginDataProperty>())))))))))))))));
488
+ return toList<Shared_PluginDataProperty>(delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.Temperature != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", value_202(vitalsData_3.Temperature).toString(), "Temperature", "°F", "Body temperature in Fahrenheit")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.SystolicBP != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", value_202(vitalsData_3.SystolicBP).toString(), "Systolic BP", "mmHg", "Systolic blood pressure")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.DiastolicBP != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", value_202(vitalsData_3.DiastolicBP).toString(), "Diastolic BP", "mmHg", "Diastolic blood pressure")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.Pulse != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", value_202(vitalsData_3.Pulse).toString(), "Pulse Rate", "BPM", "Heart rate in beats per minute")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.Respiration != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", value_202(vitalsData_3.Respiration).toString(), "Respiration Rate", "RPM", "Respiratory rate per minute")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.OxygenSaturation != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", value_202(vitalsData_3.OxygenSaturation).toString(), "O2 Saturation", "%", "Oxygen saturation percentage")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.PainScale != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", value_202(vitalsData_3.PainScale).toString(), "Pain Level", "/10", "Pain scale from 0 to 10")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.Weight != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Weight, "weight", "float", value_202(vitalsData_3.Weight).toString(), "Weight", undefined, "Body weight")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => ((vitalsData_3.Height != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Height, "height", "float", value_202(vitalsData_3.Height).toString(), "Height", undefined, "Body height")) : empty<Shared_PluginDataProperty>())))))))))))))))))));
351
489
  }
352
490
  default:
353
491
  return empty_1<Shared_PluginDataProperty>();
@@ -418,7 +556,7 @@ export function Form_markdownRenderer(field: Spec_FormField$1<Spec_FieldType_$un
418
556
  let rows: FSharpList<string> = ofArray([("**" + field.Label) + "** 🩺", "", "| Vital Sign | Value | Status |", "|------------|-------|--------|"]);
419
557
  if (vitalsData.Temperature != null) {
420
558
  const v_1: Option<VitalPropertyValidation> = propStatus("temperature");
421
- rows = append_1(rows, singleton_1(((("| **Temperature** | " + ((arg = value_144(vitalsData.Temperature), toText(printf("%.1f"))(arg)))) + "°F | ") + statusEmoji(defaultArg(map<VitalPropertyValidation, string>((p_1: VitalPropertyValidation): string => p_1.ClinicalStatus, v_1), "empty"))) + " |"));
559
+ rows = append_1(rows, singleton_1(((("| **Temperature** | " + ((arg = value_202(vitalsData.Temperature), toText(printf("%.1f"))(arg)))) + "°F | ") + statusEmoji(defaultArg(map<VitalPropertyValidation, string>((p_1: VitalPropertyValidation): string => p_1.ClinicalStatus, v_1), "empty"))) + " |"));
422
560
  }
423
561
  if ((vitalsData.SystolicBP != null) && (vitalsData.DiastolicBP != null)) {
424
562
  const sysV: Option<VitalPropertyValidation> = propStatus("systolic_bp");
@@ -441,23 +579,23 @@ export function Form_markdownRenderer(field: Spec_FormField$1<Spec_FieldType_$un
441
579
  }
442
580
  };
443
581
  worstStatus = ((rank(s) >= rank(d)) ? s : d);
444
- rows = append_1(rows, singleton_1(((((("| **Blood Pressure** | " + ((arg_1 = value_144(vitalsData.SystolicBP), toText(printf("%.0f"))(arg_1)))) + "/") + ((arg_2 = value_144(vitalsData.DiastolicBP), toText(printf("%.0f"))(arg_2)))) + " mmHg | ") + statusEmoji(worstStatus)) + " |"));
582
+ rows = append_1(rows, singleton_1(((((("| **Blood Pressure** | " + ((arg_1 = value_202(vitalsData.SystolicBP), toText(printf("%.0f"))(arg_1)))) + "/") + ((arg_2 = value_202(vitalsData.DiastolicBP), toText(printf("%.0f"))(arg_2)))) + " mmHg | ") + statusEmoji(worstStatus)) + " |"));
445
583
  }
446
584
  if (vitalsData.Pulse != null) {
447
585
  const v_2: Option<VitalPropertyValidation> = propStatus("pulse");
448
- rows = append_1(rows, singleton_1(((("| **Pulse Rate** | " + ((arg_3 = value_144(vitalsData.Pulse), toText(printf("%.0f"))(arg_3)))) + " BPM | ") + statusEmoji(defaultArg(map<VitalPropertyValidation, string>((p_4: VitalPropertyValidation): string => p_4.ClinicalStatus, v_2), "empty"))) + " |"));
586
+ rows = append_1(rows, singleton_1(((("| **Pulse Rate** | " + ((arg_3 = value_202(vitalsData.Pulse), toText(printf("%.0f"))(arg_3)))) + " BPM | ") + statusEmoji(defaultArg(map<VitalPropertyValidation, string>((p_4: VitalPropertyValidation): string => p_4.ClinicalStatus, v_2), "empty"))) + " |"));
449
587
  }
450
588
  if (vitalsData.Respiration != null) {
451
589
  const v_3: Option<VitalPropertyValidation> = propStatus("respiration");
452
- rows = append_1(rows, singleton_1(((("| **Respiration** | " + ((arg_4 = value_144(vitalsData.Respiration), toText(printf("%.0f"))(arg_4)))) + " RPM | ") + statusEmoji(defaultArg(map<VitalPropertyValidation, string>((p_5: VitalPropertyValidation): string => p_5.ClinicalStatus, v_3), "empty"))) + " |"));
590
+ rows = append_1(rows, singleton_1(((("| **Respiration** | " + ((arg_4 = value_202(vitalsData.Respiration), toText(printf("%.0f"))(arg_4)))) + " RPM | ") + statusEmoji(defaultArg(map<VitalPropertyValidation, string>((p_5: VitalPropertyValidation): string => p_5.ClinicalStatus, v_3), "empty"))) + " |"));
453
591
  }
454
592
  if (vitalsData.OxygenSaturation != null) {
455
593
  const v_4: Option<VitalPropertyValidation> = propStatus("oxygen_saturation");
456
- rows = append_1(rows, singleton_1(((("| **O2 Saturation** | " + ((arg_5 = value_144(vitalsData.OxygenSaturation), toText(printf("%.0f"))(arg_5)))) + "% | ") + statusEmoji(defaultArg(map<VitalPropertyValidation, string>((p_6: VitalPropertyValidation): string => p_6.ClinicalStatus, v_4), "empty"))) + " |"));
594
+ rows = append_1(rows, singleton_1(((("| **O2 Saturation** | " + ((arg_5 = value_202(vitalsData.OxygenSaturation), toText(printf("%.0f"))(arg_5)))) + "% | ") + statusEmoji(defaultArg(map<VitalPropertyValidation, string>((p_6: VitalPropertyValidation): string => p_6.ClinicalStatus, v_4), "empty"))) + " |"));
457
595
  }
458
596
  if (vitalsData.PainScale != null) {
459
597
  const v_5: Option<VitalPropertyValidation> = propStatus("pain_scale");
460
- rows = append_1(rows, singleton_1(((("| **Pain Scale** | " + ((arg_6 = value_144(vitalsData.PainScale), toText(printf("%.0f"))(arg_6)))) + "/10 | ") + statusEmoji(defaultArg(map<VitalPropertyValidation, string>((p_7: VitalPropertyValidation): string => p_7.ClinicalStatus, v_5), "empty"))) + " |"));
598
+ rows = append_1(rows, singleton_1(((("| **Pain Scale** | " + ((arg_6 = value_202(vitalsData.PainScale), toText(printf("%.0f"))(arg_6)))) + "/10 | ") + statusEmoji(defaultArg(map<VitalPropertyValidation, string>((p_7: VitalPropertyValidation): string => p_7.ClinicalStatus, v_5), "empty"))) + " |"));
461
599
  }
462
600
  rows = append_1(rows, ofArray(["", "> 📋 *Vital signs recorded with clinical validation and alerts*"]));
463
601
  return join("\n", rows);