@f1studio/form-spec 5.0.0-alpha.111 → 5.0.0-alpha.113
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FormSpec.FS/BitmaskHelpers.d.ts +23 -0
- package/FormSpec.FS/BitmaskHelpers.d.ts.map +1 -0
- package/FormSpec.FS/BlueprintValidation.d.ts +16 -0
- package/FormSpec.FS/BlueprintValidation.d.ts.map +1 -0
- package/FormSpec.FS/FormSpec.d.ts +19 -5
- package/FormSpec.FS/FormSpec.d.ts.map +1 -1
- package/FormSpec.FS/FormSpecHelpers.d.ts +4 -0
- package/FormSpec.FS/FormSpecHelpers.d.ts.map +1 -1
- package/FormSpec.FS/FormSpecValues.d.ts +5 -0
- package/FormSpec.FS/FormSpecValues.d.ts.map +1 -1
- package/FormSpec.FS/Helpers.d.ts.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRAdapter.d.ts +13 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRAdapter.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRElementTypeMap.d.ts +22 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRElementTypeMap.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFieldTypeMapper.d.ts +22 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFieldTypeMapper.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFormSpecValidator.d.ts +130 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFormSpecValidator.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSectioning.d.ts +37 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSectioning.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSemanticReportBuilder.d.ts +231 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSemanticReportBuilder.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRStepsBuilder.d.ts +10 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRStepsBuilder.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateToFormSpec.d.ts +55 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateToFormSpec.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.d.ts +69 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.d.ts +21 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRSourceMap.d.ts +133 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRSourceMap.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/FormSpecToCoreMRInsert.d.ts +52 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/FormSpecToCoreMRInsert.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/FormSystemAdapter.d.ts +46 -0
- package/FormSpec.FS/Integrations/Adapters/FormSystemAdapter.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormAdapter.d.ts +4 -0
- package/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormAdapter.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormTypes.d.ts +36 -0
- package/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormTypes.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/CorEMR/CorEmrTemplates.d.ts +95 -0
- package/FormSpec.FS/Integrations/CorEMR/CorEmrTemplates.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/CorEMR/CoreMRTypes.d.ts +449 -0
- package/FormSpec.FS/Integrations/CorEMR/CoreMRTypes.d.ts.map +1 -0
- package/FormSpec.FS/Interop/FormSpec.Api.Helpers.d.ts.map +1 -1
- package/FormSpec.FS/Interop/FormSpec.Api.Option.d.ts +3 -1
- package/FormSpec.FS/Interop/FormSpec.Api.Option.d.ts.map +1 -1
- package/FormSpec.FS/Provenance.d.ts +10 -0
- package/FormSpec.FS/Provenance.d.ts.map +1 -0
- package/FormSpec.FS/Renderers/FormSpecMarkdownRenderer.d.ts.map +1 -1
- package/FormSpec.TS/FormSpec.FS/BitmaskHelpers.js +56 -0
- package/FormSpec.TS/FormSpec.FS/BitmaskHelpers.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/BitmaskHelpers.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/BlueprintValidation.js +116 -0
- package/FormSpec.TS/FormSpec.FS/BlueprintValidation.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/BlueprintValidation.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Designer.js +2 -2
- package/FormSpec.TS/FormSpec.FS/Designer.js.map +1 -1
- package/FormSpec.TS/FormSpec.FS/Designer.ts.map +1 -1
- package/FormSpec.TS/FormSpec.FS/FormSpec.js +72 -3
- package/FormSpec.TS/FormSpec.FS/FormSpec.js.map +1 -1
- package/FormSpec.TS/FormSpec.FS/FormSpec.ts.map +1 -1
- package/FormSpec.TS/FormSpec.FS/FormSpecHelpers.js +201 -3
- package/FormSpec.TS/FormSpec.FS/FormSpecHelpers.js.map +1 -1
- package/FormSpec.TS/FormSpec.FS/FormSpecHelpers.ts.map +1 -1
- package/FormSpec.TS/FormSpec.FS/FormSpecValues.js +38 -3
- package/FormSpec.TS/FormSpec.FS/FormSpecValues.js.map +1 -1
- package/FormSpec.TS/FormSpec.FS/FormSpecValues.ts.map +1 -1
- package/FormSpec.TS/FormSpec.FS/Helpers.js +44 -27
- package/FormSpec.TS/FormSpec.FS/Helpers.js.map +1 -1
- package/FormSpec.TS/FormSpec.FS/Helpers.ts.map +1 -1
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRAdapter.js +45 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRAdapter.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRAdapter.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRElementTypeMap.js +145 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRElementTypeMap.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRElementTypeMap.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFieldTypeMapper.js +139 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFieldTypeMapper.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFieldTypeMapper.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFormSpecValidator.js +801 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFormSpecValidator.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFormSpecValidator.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSectioning.js +121 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSectioning.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSectioning.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSemanticReportBuilder.js +1380 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSemanticReportBuilder.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSemanticReportBuilder.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRStepsBuilder.js +29 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRStepsBuilder.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRStepsBuilder.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateToFormSpec.js +172 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateToFormSpec.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateToFormSpec.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.js +406 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.js +317 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRSourceMap.js +622 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRSourceMap.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRSourceMap.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/FormSpecToCoreMRInsert.js +448 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/FormSpecToCoreMRInsert.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/CorEMR/FormSpecToCoreMRInsert.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/FormSystemAdapter.js +198 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/FormSystemAdapter.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/FormSystemAdapter.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormAdapter.js +57 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormAdapter.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormAdapter.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormTypes.js +144 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormTypes.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormTypes.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/CorEMR/CorEmrTemplates.js +258 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/CorEMR/CorEmrTemplates.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/CorEMR/CorEmrTemplates.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/CorEMR/CoreMRTypes.js +1768 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/CorEMR/CoreMRTypes.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Integrations/CorEMR/CoreMRTypes.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Api.Helpers.js +22 -18
- package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Api.Helpers.js.map +1 -1
- package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Api.Helpers.ts.map +1 -1
- package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Api.Option.js +18 -6
- package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Api.Option.js.map +1 -1
- package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Api.Option.ts.map +1 -1
- package/FormSpec.TS/FormSpec.FS/PathwayExecutor.js +1 -1
- package/FormSpec.TS/FormSpec.FS/Provenance.js +41 -0
- package/FormSpec.TS/FormSpec.FS/Provenance.js.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Provenance.ts.map +1 -0
- package/FormSpec.TS/FormSpec.FS/Renderers/FormSpecMarkdownRenderer.js +36 -13
- package/FormSpec.TS/FormSpec.FS/Renderers/FormSpecMarkdownRenderer.js.map +1 -1
- package/FormSpec.TS/FormSpec.FS/Renderers/FormSpecMarkdownRenderer.ts.map +1 -1
- package/FormSpec.TS/FormSpec.FS/Renderers/PathwayRenderers.js +1 -1
- package/FormSpec.TS/PathwayExecutor.withPlugins.js +0 -5
- package/FormSpec.TS/PathwayExecutor.withPlugins.js.map +1 -1
- package/FormSpec.TS/PluginRegistration.js +2 -0
- package/FormSpec.TS/PluginRegistration.js.map +1 -1
- package/FormSpec.TS/PluginRegistration.ts.map +1 -1
- package/FormSpec.TS/fable_modules/Thoth.Json.10.4.1/Encode.fs.js.map +1 -1
- package/FormSpec.TS/fable_modules/Thoth.Json.10.4.1/Encode.fs.ts.map +1 -1
- package/FormSpec.TS/fable_modules/project_cracked.json +1 -1
- package/FormSpec.TS/plugins/demographics/src/DemographicsField.js +918 -0
- package/FormSpec.TS/plugins/demographics/src/DemographicsField.js.map +1 -0
- package/FormSpec.TS/plugins/demographics/src/DemographicsField.ts.map +1 -0
- package/FormSpec.TS/plugins/likert/src/LikertField.js +1 -1
- package/PathwayExecutor.withPlugins.d.ts +0 -5
- package/PathwayExecutor.withPlugins.d.ts.map +1 -1
- package/README.md +7 -7
- package/fable_modules/Thoth.Json.10.4.1/Extra.fs.d.ts +3 -0
- package/fable_modules/Thoth.Json.10.4.1/Extra.fs.d.ts.map +1 -0
- package/package.json +4 -4
- package/plugins/demographics/src/DemographicsField.d.ts +104 -0
- package/plugins/demographics/src/DemographicsField.d.ts.map +1 -0
- package/src/FormSpec.FS/BitmaskHelpers.ts +52 -0
- package/src/FormSpec.FS/BlueprintValidation.ts +108 -0
- package/src/FormSpec.FS/Designer.ts +2 -2
- package/src/FormSpec.FS/FormSpec.ts +39 -8
- package/src/FormSpec.FS/FormSpecHelpers.ts +190 -12
- package/src/FormSpec.FS/FormSpecValues.ts +42 -3
- package/src/FormSpec.FS/Helpers.ts +44 -27
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRAdapter.ts +37 -0
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRElementTypeMap.ts +103 -0
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFieldTypeMapper.ts +129 -0
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFormSpecValidator.ts +490 -0
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSectioning.ts +87 -0
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSemanticReportBuilder.ts +1046 -0
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRStepsBuilder.ts +26 -0
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateToFormSpec.ts +161 -0
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.ts +386 -0
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.ts +320 -0
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRSourceMap.ts +371 -0
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/FormSpecToCoreMRInsert.ts +372 -0
- package/src/FormSpec.FS/Integrations/Adapters/FormSystemAdapter.ts +92 -0
- package/src/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormAdapter.ts +51 -0
- package/src/FormSpec.FS/Integrations/Adapters/ReactHookForm/ReactHookFormTypes.ts +71 -0
- package/src/FormSpec.FS/Integrations/CorEMR/CorEmrTemplates.ts +15 -0
- package/src/FormSpec.FS/Integrations/CorEMR/CoreMRTypes.ts +825 -0
- package/src/FormSpec.FS/Interop/FormSpec.Api.Helpers.ts +19 -15
- package/src/FormSpec.FS/Interop/FormSpec.Api.Option.ts +13 -7
- package/src/FormSpec.FS/PathwayExecutor.ts +1 -1
- package/src/FormSpec.FS/Provenance.ts +19 -0
- package/src/FormSpec.FS/Renderers/FormSpecMarkdownRenderer.ts +32 -12
- package/src/FormSpec.FS/Renderers/PathwayRenderers.ts +1 -1
- package/src/PathwayExecutor.withPlugins.ts +0 -5
- package/src/PluginRegistration.ts +2 -0
- package/src/plugins/demographics/src/DemographicsField.ts +502 -0
- package/src/plugins/likert/src/LikertField.ts +1 -1
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
import { fromString, Auto_generateBoxedDecoder_Z6670B51 } from "../../../../fable_modules/Thoth.Json.10.4.1/Decode.fs.js";
|
|
2
|
+
import { CoreMRStepMap, CoreMRSourceMap, CoreMRSourceMap_$reflection, CoreMRFieldAnchor, CoreMRFieldAnchor_$reflection, CoreMRMatrixItemAnchor, CoreMRMatrixItemAnchor_$reflection, CoreMRChoiceAnchor, CoreMRChoiceAnchor_$reflection, ValueEncodingInfo, ValueEncodingInfo_$reflection } from "./CoreMRSourceMap.js";
|
|
3
|
+
import { FSharpResult$2_Ok, FSharpResult$2_Error, FSharpResult$2_$union } from "@fable-org/fable-library-js/Result.js";
|
|
4
|
+
import { ExtraCoders, ErrorReason_$union } from "../../../../fable_modules/Thoth.Json.10.4.1/Types.fs.js";
|
|
5
|
+
import { Spec_FormSpec$1, Spec_FormStep$1, Spec_FormField$1, Shared_PluginDataProperty, Shared_MatrixItemKey, Shared_MatrixAnswer, Shared_FieldAnswer, Shared_FieldValue, Shared_FieldValue_$union, Spec_FieldType_$union, Spec_MultiChoiceInfo, Spec_SingleChoiceInfo, Shared_FieldOption, Shared_FieldOptionKey, Shared_FieldKey, Shared_FieldKey_$reflection } from "../../../FormSpec.js";
|
|
6
|
+
import { toString, Auto_generateBoxedEncoder_437914C6 } from "../../../../fable_modules/Thoth.Json.10.4.1/Encode.fs.js";
|
|
7
|
+
import { newGuid } from "@fable-org/fable-library-js/Guid.js";
|
|
8
|
+
import { FSharpMap, ofList, tryFind as tryFind_1, add } from "@fable-org/fable-library-js/Map.js";
|
|
9
|
+
import { IOptionalGetter, IRequiredGetter, IGetters, list as list_9, bool, string, int, object } from "../../../../fable_modules/Thoth.Json.10.4.1/Decode.fs.js";
|
|
10
|
+
import { comparePrimitives, uncurry2 } from "@fable-org/fable-library-js/Util.js";
|
|
11
|
+
import { int32 } from "@fable-org/fable-library-js/Int32.js";
|
|
12
|
+
import { collect, exists, head, tail, map as map_1, isEmpty, choose, singleton, tryFind, empty, FSharpList } from "@fable-org/fable-library-js/List.js";
|
|
13
|
+
import { orElse, map, value as value_10, Option, bind, defaultArg } from "@fable-org/fable-library-js/Option.js";
|
|
14
|
+
import { empty as empty_1 } from "../../../../fable_modules/Thoth.Json.10.4.1/Extra.fs.js";
|
|
15
|
+
import { CoreMRAnswer, CoreMRFormInsertRequest, CoreMRFormInsertRequest_$reflection } from "./FormSpecToCoreMRInsert.js";
|
|
16
|
+
import { isNullOrWhiteSpace } from "@fable-org/fable-library-js/String.js";
|
|
17
|
+
import { toList, FSharpSet } from "@fable-org/fable-library-js/Set.js";
|
|
18
|
+
import { toInt32 } from "@fable-org/fable-library-js/BigInt.js";
|
|
19
|
+
import { computeBitmask } from "../../../BitmaskHelpers.js";
|
|
20
|
+
|
|
21
|
+
const sourceMapExtra: ExtraCoders = (() => {
|
|
22
|
+
let copyOfStruct: string;
|
|
23
|
+
const valueEncodingDecoder: ((arg0: string) => ((arg0: any) => FSharpResult$2_$union<ValueEncodingInfo, [string, ErrorReason_$union]>)) = Auto_generateBoxedDecoder_Z6670B51(ValueEncodingInfo_$reflection(), undefined, undefined);
|
|
24
|
+
const choiceAnchorDecoder: ((arg0: string) => ((arg0: any) => FSharpResult$2_$union<CoreMRChoiceAnchor, [string, ErrorReason_$union]>)) = Auto_generateBoxedDecoder_Z6670B51(CoreMRChoiceAnchor_$reflection(), undefined, undefined);
|
|
25
|
+
const fieldKeyDecoder: ((arg0: string) => ((arg0: any) => FSharpResult$2_$union<Shared_FieldKey, [string, ErrorReason_$union]>)) = Auto_generateBoxedDecoder_Z6670B51(Shared_FieldKey_$reflection(), undefined, undefined);
|
|
26
|
+
const matrixItemAnchorDecoder: ((arg0: string) => ((arg0: any) => FSharpResult$2_$union<CoreMRMatrixItemAnchor, [string, ErrorReason_$union]>)) = Auto_generateBoxedDecoder_Z6670B51(CoreMRMatrixItemAnchor_$reflection(), undefined, undefined);
|
|
27
|
+
const encoder: ((arg0: CoreMRFieldAnchor) => any) = Auto_generateBoxedEncoder_437914C6(CoreMRFieldAnchor_$reflection(), undefined, undefined, undefined);
|
|
28
|
+
return new ExtraCoders((copyOfStruct = newGuid(), copyOfStruct), add<string, [((arg0: any) => any), ((arg0: string) => ((arg0: any) => FSharpResult$2_$union<any, [string, ErrorReason_$union]>))]>("FormSpec.Integrations.CorEMR.CoreMRSourceMap.CoreMRFieldAnchor", [encoder, (path_8: string): ((arg0: any) => FSharpResult$2_$union<CoreMRFieldAnchor, [string, ErrorReason_$union]>) => ((v: any): FSharpResult$2_$union<CoreMRFieldAnchor, [string, ErrorReason_$union]> => object<CoreMRFieldAnchor>((get$: IGetters): CoreMRFieldAnchor => {
|
|
29
|
+
let objectArg: IRequiredGetter, objectArg_1: IRequiredGetter, objectArg_2: IRequiredGetter, objectArg_3: IRequiredGetter, objectArg_4: IRequiredGetter, objectArg_5: IRequiredGetter, objectArg_6: IOptionalGetter, objectArg_7: IOptionalGetter, objectArg_8: IOptionalGetter, objectArg_9: IOptionalGetter, objectArg_10: IRequiredGetter, objectArg_11: IRequiredGetter, objectArg_12: IRequiredGetter, objectArg_13: IOptionalGetter;
|
|
30
|
+
return new CoreMRFieldAnchor((objectArg = get$.Required, objectArg.Field<int32>("ItemId", uncurry2(int))), (objectArg_1 = get$.Required, objectArg_1.Field<int32>("ItemTypeId", uncurry2(int))), (objectArg_2 = get$.Required, objectArg_2.Field<int32>("Sequence", uncurry2(int))), (objectArg_3 = get$.Required, objectArg_3.Field<int32>("NestingLevel", uncurry2(int))), (objectArg_4 = get$.Required, objectArg_4.Field<string>("Label", string)), (objectArg_5 = get$.Required, objectArg_5.Field<boolean>("IsRequired", bool)), (objectArg_6 = get$.Optional, objectArg_6.Field<string>("SequenceText", string)), (objectArg_7 = get$.Optional, objectArg_7.Field<string>("Code", string)), (objectArg_8 = get$.Optional, objectArg_8.Field<string>("Uuid", string)), (objectArg_9 = get$.Optional, objectArg_9.Field<string>("GenderRequired", string)), (objectArg_10 = get$.Required, objectArg_10.Field<ValueEncodingInfo>("Encoding", uncurry2(valueEncodingDecoder))), (objectArg_11 = get$.Required, objectArg_11.Field<FSharpList<CoreMRChoiceAnchor>>("Choices", (path_6: string, value_6: any): FSharpResult$2_$union<FSharpList<CoreMRChoiceAnchor>, [string, ErrorReason_$union]> => list_9<CoreMRChoiceAnchor>(uncurry2(choiceAnchorDecoder), path_6, value_6))), (objectArg_12 = get$.Required, objectArg_12.Field<Shared_FieldKey>("FieldKey", uncurry2(fieldKeyDecoder))), defaultArg((objectArg_13 = get$.Optional, objectArg_13.Field<FSharpList<CoreMRMatrixItemAnchor>>("MatrixItemAnchors", (path_7: string, value_7: any): FSharpResult$2_$union<FSharpList<CoreMRMatrixItemAnchor>, [string, ErrorReason_$union]> => list_9<CoreMRMatrixItemAnchor>(uncurry2(matrixItemAnchorDecoder), path_7, value_7))), empty<CoreMRMatrixItemAnchor>()));
|
|
31
|
+
}, path_8, v))] as [((arg0: any) => any), ((arg0: string) => ((arg0: any) => FSharpResult$2_$union<any, [string, ErrorReason_$union]>))], empty_1.Coders));
|
|
32
|
+
})();
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Decode provenance payload using Thoth Auto — same type that was encoded by
|
|
36
|
+
* CoreMRSourceMap.convertWithMapAndProvenance (Encode.Auto.toString).
|
|
37
|
+
* Uses sourceMapExtra so MatrixItemAnchors defaults to [] when missing.
|
|
38
|
+
*/
|
|
39
|
+
export function tryDecodeSourceMap(payloadJson: string): FSharpResult$2_$union<CoreMRSourceMap, string> {
|
|
40
|
+
return fromString<CoreMRSourceMap>(uncurry2(Auto_generateBoxedDecoder_Z6670B51(CoreMRSourceMap_$reflection(), undefined, sourceMapExtra)), payloadJson);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Serialize CoreMRFormInsertRequest to JSON for bridge POST body
|
|
45
|
+
*/
|
|
46
|
+
export function serializeRequest(req: CoreMRFormInsertRequest): string {
|
|
47
|
+
return toString(0, Auto_generateBoxedEncoder_437914C6(CoreMRFormInsertRequest_$reflection(), undefined, undefined, undefined)(req));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function canonicalize(s: string): string {
|
|
51
|
+
if (isNullOrWhiteSpace(s)) {
|
|
52
|
+
return "";
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return s.trim().toLowerCase();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function getFieldKeyGuid(_arg: Shared_FieldKey): string {
|
|
60
|
+
return _arg.fields[0];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function getFieldOptionKeyGuid(_arg: Shared_FieldOptionKey): string {
|
|
64
|
+
return _arg.fields[0];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function getScoreFromOption(options: FSharpList<Shared_FieldOption>, selectedValue: string): Option<int32> {
|
|
68
|
+
const canonicalSelected: string = canonicalize(selectedValue);
|
|
69
|
+
return bind<Shared_FieldOption, int32>((opt_1: Shared_FieldOption): Option<int32> => opt_1.Score, tryFind<Shared_FieldOption>((opt: Shared_FieldOption): boolean => (canonicalize(opt.Value) === canonicalSelected), options));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function getOptionsFromFieldType(ft: Spec_FieldType_$union): FSharpList<Shared_FieldOption> {
|
|
73
|
+
let matchResult: int32, info: Spec_SingleChoiceInfo, info_1: Spec_MultiChoiceInfo;
|
|
74
|
+
switch (ft.tag) {
|
|
75
|
+
case /* Radio */ 12: {
|
|
76
|
+
matchResult = 0;
|
|
77
|
+
info = ft.fields[0];
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
case /* SingleChoice */ 13: {
|
|
81
|
+
matchResult = 0;
|
|
82
|
+
info = ft.fields[0];
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
case /* Dropdown */ 14: {
|
|
86
|
+
matchResult = 0;
|
|
87
|
+
info = ft.fields[0];
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
case /* TextAutoComplete */ 18: {
|
|
91
|
+
matchResult = 0;
|
|
92
|
+
info = ft.fields[0];
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
case /* MultiChoice */ 15: {
|
|
96
|
+
matchResult = 1;
|
|
97
|
+
info_1 = ft.fields[0];
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
case /* CheckboxList */ 16: {
|
|
101
|
+
matchResult = 1;
|
|
102
|
+
info_1 = ft.fields[0];
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
case /* TagList */ 17: {
|
|
106
|
+
matchResult = 1;
|
|
107
|
+
info_1 = ft.fields[0];
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
case /* Matrix */ 19: {
|
|
111
|
+
matchResult = 2;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
default:
|
|
115
|
+
matchResult = 3;
|
|
116
|
+
}
|
|
117
|
+
switch (matchResult) {
|
|
118
|
+
case 0:
|
|
119
|
+
return info!.Options;
|
|
120
|
+
case 1:
|
|
121
|
+
return info_1!.Options;
|
|
122
|
+
case 2:
|
|
123
|
+
return ft.fields[0].Options;
|
|
124
|
+
default:
|
|
125
|
+
return empty<Shared_FieldOption>();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function fieldToAnswers(field: Spec_FormField$1<Spec_FieldType_$union>, anchor: CoreMRFieldAnchor): FSharpList<CoreMRAnswer> {
|
|
130
|
+
let canonicalAnswer: string;
|
|
131
|
+
if (anchor.Encoding.IsSkip) {
|
|
132
|
+
return empty<CoreMRAnswer>();
|
|
133
|
+
}
|
|
134
|
+
else if (anchor.Encoding.IsScaffold) {
|
|
135
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, 2, undefined));
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
const matchValue: Option<Shared_FieldValue_$union> = field.Value;
|
|
139
|
+
if (matchValue != null) {
|
|
140
|
+
switch (value_10(matchValue).tag) {
|
|
141
|
+
case /* Multiple */ 1: {
|
|
142
|
+
const answers: FSharpSet<Shared_FieldAnswer> = (value_10(matchValue) as Shared_FieldValue<1>).fields[0];
|
|
143
|
+
if (anchor.Encoding.ValueEncoding !== "choice_score") {
|
|
144
|
+
return empty<CoreMRAnswer>();
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
const options_1: FSharpList<Shared_FieldOption> = getOptionsFromFieldType(field.FieldType);
|
|
148
|
+
const choicesWithBitPos: FSharpList<[string, int32]> = choose<CoreMRChoiceAnchor, [string, int32]>((c_2: CoreMRChoiceAnchor): Option<[string, int32]> => {
|
|
149
|
+
if (c_2.BitPosition != null) {
|
|
150
|
+
return [getFieldOptionKeyGuid(c_2.FieldOptionKey), value_10(c_2.BitPosition)] as [string, int32];
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
return undefined;
|
|
154
|
+
}
|
|
155
|
+
}, anchor.Choices);
|
|
156
|
+
if (isEmpty(choicesWithBitPos)) {
|
|
157
|
+
return empty<CoreMRAnswer>();
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, ~~toInt32(computeBitmask(choose<string, int32>((key: string): Option<int32> => map<[string, int32], int32>((tuple: [string, int32]): int32 => tuple[1], tryFind<[string, int32]>((tupledArg: [string, int32]): boolean => (tupledArg[0] === key), choicesWithBitPos)), choose<string, string>((valStr_1: string): Option<string> => map<Shared_FieldOption, string>((opt_2: Shared_FieldOption): string => getFieldOptionKeyGuid(opt_2.OptionKey), tryFind<Shared_FieldOption>((opt_1: Shared_FieldOption): boolean => (canonicalize(opt_1.Value) === canonicalize(valStr_1)), options_1)), map_1<Shared_FieldAnswer, string>((a: Shared_FieldAnswer): string => a.Value, toList<Shared_FieldAnswer>(answers)))))), undefined));
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
case /* Matrix */ 2: {
|
|
165
|
+
const matrixAnswer: Shared_MatrixAnswer = (value_10(matchValue) as Shared_FieldValue<2>).fields[0];
|
|
166
|
+
if (isEmpty(anchor.MatrixItemAnchors)) {
|
|
167
|
+
return empty<CoreMRAnswer>();
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
const options_2: FSharpList<Shared_FieldOption> = getOptionsFromFieldType(field.FieldType);
|
|
171
|
+
return choose<CoreMRMatrixItemAnchor, CoreMRAnswer>((rowAnchor: CoreMRMatrixItemAnchor): Option<CoreMRAnswer> => map<string, CoreMRAnswer>((selectedValue: string): CoreMRAnswer => (new CoreMRAnswer(rowAnchor.Sequence, defaultArg(getScoreFromOption(options_2, selectedValue), 0), undefined)), tryFind_1<Shared_MatrixItemKey, string>(rowAnchor.MatrixItemKey, matrixAnswer.Values)), anchor.MatrixItemAnchors);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
case /* PluginData */ 3: {
|
|
175
|
+
const props: FSharpList<Shared_PluginDataProperty> = (value_10(matchValue) as Shared_FieldValue<3>).fields[0];
|
|
176
|
+
let matchResult: int32, p_1: Shared_PluginDataProperty;
|
|
177
|
+
if (!isEmpty(props)) {
|
|
178
|
+
if (isEmpty(tail(props))) {
|
|
179
|
+
if (!isNullOrWhiteSpace(head(props).Value)) {
|
|
180
|
+
matchResult = 0;
|
|
181
|
+
p_1 = head(props);
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
matchResult = 1;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
matchResult = 1;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
matchResult = 1;
|
|
193
|
+
}
|
|
194
|
+
switch (matchResult) {
|
|
195
|
+
case 0:
|
|
196
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, 0, p_1!.Value));
|
|
197
|
+
default:
|
|
198
|
+
return empty<CoreMRAnswer>();
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
default: {
|
|
202
|
+
const answer: Shared_FieldAnswer = (value_10(matchValue) as Shared_FieldValue<0>).fields[0];
|
|
203
|
+
const options: FSharpList<Shared_FieldOption> = getOptionsFromFieldType(field.FieldType);
|
|
204
|
+
const matchValue_2: string = anchor.Encoding.ValueEncoding;
|
|
205
|
+
switch (matchValue_2) {
|
|
206
|
+
case "choice_score": {
|
|
207
|
+
const matchValue_3: Option<int32> = orElse(getScoreFromOption(options, answer.Value), (canonicalAnswer = canonicalize(answer.Value), map<CoreMRChoiceAnchor, int32>((c_1: CoreMRChoiceAnchor): int32 => c_1.Score, tryFind<CoreMRChoiceAnchor>((c: CoreMRChoiceAnchor): boolean => exists<Shared_FieldOption>((opt: Shared_FieldOption): boolean => {
|
|
208
|
+
if (getFieldOptionKeyGuid(opt.OptionKey) === getFieldOptionKeyGuid(c.FieldOptionKey)) {
|
|
209
|
+
return canonicalize(opt.Value) === canonicalAnswer;
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
}, options), anchor.Choices))));
|
|
215
|
+
if (matchValue_3 == null) {
|
|
216
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, 0, undefined));
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, value_10(matchValue_3), undefined));
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
case "1_yes_2_no": {
|
|
223
|
+
const valStr: string = canonicalize(answer.Value);
|
|
224
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, (((valStr === "yes") ? true : (valStr === "true")) ? true : (valStr === "1")) ? 1 : 2, undefined));
|
|
225
|
+
}
|
|
226
|
+
case "zero":
|
|
227
|
+
case "scaffold":
|
|
228
|
+
case "unknown":
|
|
229
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, 0, answer.Value));
|
|
230
|
+
default:
|
|
231
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, 0, answer.Value));
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
const matchValue_1: string = anchor.Encoding.ValueEncoding;
|
|
238
|
+
switch (matchValue_1) {
|
|
239
|
+
case "1_yes_2_no":
|
|
240
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, 2, undefined));
|
|
241
|
+
case "choice_score":
|
|
242
|
+
if (isEmpty(anchor.Choices)) {
|
|
243
|
+
return empty<CoreMRAnswer>();
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, 0, undefined));
|
|
247
|
+
}
|
|
248
|
+
case "zero":
|
|
249
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, 0, undefined));
|
|
250
|
+
default:
|
|
251
|
+
return empty<CoreMRAnswer>();
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
function buildFieldByKeyMap(spec: Spec_FormSpec$1<Spec_FieldType_$union>): FSharpMap<string, Spec_FormField$1<Spec_FieldType_$union>> {
|
|
258
|
+
return ofList<string, Spec_FormField$1<Spec_FieldType_$union>>(map_1<Spec_FormField$1<Spec_FieldType_$union>, [string, Spec_FormField$1<Spec_FieldType_$union>]>((f: Spec_FormField$1<Spec_FieldType_$union>): [string, Spec_FormField$1<Spec_FieldType_$union>] => ([getFieldKeyGuid(f.FieldKey), f] as [string, Spec_FormField$1<Spec_FieldType_$union>]), collect<Spec_FormStep$1<Spec_FieldType_$union>, Spec_FormField$1<Spec_FieldType_$union>>((step: Spec_FormStep$1<Spec_FieldType_$union>): FSharpList<Spec_FormField$1<Spec_FieldType_$union>> => step.Fields, spec.Steps)), {
|
|
259
|
+
Compare: comparePrimitives,
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
function anchorToAnswers(fieldMap: FSharpMap<string, Spec_FormField$1<Spec_FieldType_$union>>, anchor: CoreMRFieldAnchor): FSharpList<CoreMRAnswer> {
|
|
264
|
+
const field: Option<Spec_FormField$1<Spec_FieldType_$union>> = tryFind_1<string, Spec_FormField$1<Spec_FieldType_$union>>(getFieldKeyGuid(anchor.FieldKey), fieldMap);
|
|
265
|
+
if (anchor.Encoding.IsSkip) {
|
|
266
|
+
return empty<CoreMRAnswer>();
|
|
267
|
+
}
|
|
268
|
+
else if (anchor.Encoding.IsScaffold) {
|
|
269
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, 2, undefined));
|
|
270
|
+
}
|
|
271
|
+
else if (field != null) {
|
|
272
|
+
return fieldToAnswers(value_10(field), anchor);
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
const matchValue: string = anchor.Encoding.ValueEncoding;
|
|
276
|
+
switch (matchValue) {
|
|
277
|
+
case "1_yes_2_no":
|
|
278
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, 2, undefined));
|
|
279
|
+
case "choice_score":
|
|
280
|
+
if (isEmpty(anchor.Choices)) {
|
|
281
|
+
return empty<CoreMRAnswer>();
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, 0, undefined));
|
|
285
|
+
}
|
|
286
|
+
case "zero":
|
|
287
|
+
return singleton(new CoreMRAnswer(anchor.Sequence, 0, undefined));
|
|
288
|
+
default:
|
|
289
|
+
return empty<CoreMRAnswer>();
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Encode filled FormSpec to CoreMR form-insert payload.
|
|
296
|
+
* scaffoldMode: when true, omit answers (scaffold mode — all items get value=2).
|
|
297
|
+
* Iterates over provenance anchors (source of truth) so we never omit required items.
|
|
298
|
+
*/
|
|
299
|
+
export function encodeToFormAnswers(provenancePayload: string, filledFormSpec: Spec_FormSpec$1<Spec_FieldType_$union>, scaffoldMode: boolean, dryRun: boolean): FSharpResult$2_$union<CoreMRFormInsertRequest, string> {
|
|
300
|
+
let acc: FSharpList<CoreMRAnswer>;
|
|
301
|
+
const matchValue: FSharpResult$2_$union<CoreMRSourceMap, string> = tryDecodeSourceMap(provenancePayload);
|
|
302
|
+
if (matchValue.tag === /* Ok */ 0) {
|
|
303
|
+
const sourceMap: CoreMRSourceMap = matchValue.fields[0];
|
|
304
|
+
if (sourceMap.FormSpecId !== filledFormSpec.Id) {
|
|
305
|
+
return FSharpResult$2_Error<CoreMRFormInsertRequest, string>(`FormSpecId mismatch: provenance is for form ${sourceMap.FormSpecId} but data is from form ${filledFormSpec.Id}. This could cause patient data mixing!`);
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
let formName: string;
|
|
309
|
+
const value = `CORE-${sourceMap.FormId}`;
|
|
310
|
+
formName = defaultArg(orElse(sourceMap.FormName, isNullOrWhiteSpace(filledFormSpec.Title) ? undefined : filledFormSpec.Title), value);
|
|
311
|
+
const fieldMap: FSharpMap<string, Spec_FormField$1<Spec_FieldType_$union>> = buildFieldByKeyMap(filledFormSpec);
|
|
312
|
+
return FSharpResult$2_Ok<CoreMRFormInsertRequest, string>(new CoreMRFormInsertRequest(sourceMap.FormId, formName, scaffoldMode ? undefined : ((acc = collect<CoreMRFieldAnchor, CoreMRAnswer>((anchor: CoreMRFieldAnchor): FSharpList<CoreMRAnswer> => anchorToAnswers(fieldMap, anchor), collect<CoreMRStepMap, CoreMRFieldAnchor>((step: CoreMRStepMap): FSharpList<CoreMRFieldAnchor> => step.FieldAnchors, sourceMap.Steps)), isEmpty(acc) ? undefined : acc)), dryRun));
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
else {
|
|
316
|
+
return FSharpResult$2_Error<CoreMRFormInsertRequest, string>(`Invalid provenance payload: ${matchValue.fields[0]}`);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
//# sourceMappingURL=CoreMREncoder.ts.map
|