@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,371 @@
|
|
|
1
|
+
import { Record } from "@fable-org/fable-library-js/Types.js";
|
|
2
|
+
import { numberHash, comparePrimitives, IComparable, IEquatable } from "@fable-org/fable-library-js/Util.js";
|
|
3
|
+
import { class_type, list_type, option_type, int32_type, record_type, bool_type, string_type, TypeInfo } from "@fable-org/fable-library-js/Reflection.js";
|
|
4
|
+
import { getElementTypeInfo, ElementTypeInfo } from "./CorEMRElementTypeMap.js";
|
|
5
|
+
import { int32 } from "@fable-org/fable-library-js/Int32.js";
|
|
6
|
+
import { map, value as value_2, defaultArg, Option } from "@fable-org/fable-library-js/Option.js";
|
|
7
|
+
import { Spec_FormStep$1, Spec_FormField$1, Spec_MultiChoiceInfo, Spec_SingleChoiceInfo, Shared_FieldOption, Spec_FormSpec$1_$reflection, Spec_FieldType_$reflection, Spec_FieldType_$union, Spec_FormSpec$1, Shared_FieldKey_$reflection, Shared_FieldKey, Shared_MatrixItemKey_$reflection, Shared_MatrixItemKey, Shared_FieldOptionKey_$reflection, Shared_FieldOptionKey } from "../../../FormSpec.js";
|
|
8
|
+
import { tryFind, choose, item as item_1, length, mapIndexed, sortBy, empty, FSharpList } from "@fable-org/fable-library-js/List.js";
|
|
9
|
+
import { CoreMRFormData, CoreMRItem, CoreMRChoice, CoreMRTag_$reflection, CoreMRTrigger_$reflection, CoreMRTag, CoreMRTrigger } from "../../CorEMR/CoreMRTypes.js";
|
|
10
|
+
import { tryFind as tryFind_1, FSharpMap, ofList } from "@fable-org/fable-library-js/Map.js";
|
|
11
|
+
import { List_groupBy } from "@fable-org/fable-library-js/Seq2.js";
|
|
12
|
+
import { detectHeadings, groupItemsByHeadings, Section, HeadingItem } from "./CorEMRSectioning.js";
|
|
13
|
+
import { convertToFormSpec } from "./CorEMRTemplateToFormSpec.js";
|
|
14
|
+
import { Auto_generateBoxedEncoder_437914C6, toString } from "../../../../fable_modules/Thoth.Json.10.4.1/Encode.fs.js";
|
|
15
|
+
import { IntegrationProvenance } from "../../../Provenance.js";
|
|
16
|
+
|
|
17
|
+
export class ValueEncodingInfo extends Record implements IEquatable<ValueEncodingInfo>, IComparable<ValueEncodingInfo> {
|
|
18
|
+
readonly ValueEncoding: string;
|
|
19
|
+
readonly TextFieldRole: string;
|
|
20
|
+
readonly IsPlusNotes: boolean;
|
|
21
|
+
readonly IsScaffold: boolean;
|
|
22
|
+
readonly IsSkip: boolean;
|
|
23
|
+
constructor(ValueEncoding: string, TextFieldRole: string, IsPlusNotes: boolean, IsScaffold: boolean, IsSkip: boolean) {
|
|
24
|
+
super();
|
|
25
|
+
this.ValueEncoding = ValueEncoding;
|
|
26
|
+
this.TextFieldRole = TextFieldRole;
|
|
27
|
+
this.IsPlusNotes = IsPlusNotes;
|
|
28
|
+
this.IsScaffold = IsScaffold;
|
|
29
|
+
this.IsSkip = IsSkip;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function ValueEncodingInfo_$reflection(): TypeInfo {
|
|
34
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRSourceMap.ValueEncodingInfo", [], ValueEncodingInfo, () => [["ValueEncoding", string_type], ["TextFieldRole", string_type], ["IsPlusNotes", bool_type], ["IsScaffold", bool_type], ["IsSkip", bool_type]]);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function toValueEncodingInfo(e: ElementTypeInfo): ValueEncodingInfo {
|
|
38
|
+
return new ValueEncodingInfo(e.ValueEncoding, e.TextFieldRole, e.IsPlusNotes, e.IsScaffold, e.IsSkip);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function getValueEncoding(itemTypeId: int32): ValueEncodingInfo {
|
|
42
|
+
return toValueEncodingInfo(getElementTypeInfo(itemTypeId));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export class CoreMRChoiceAnchor extends Record implements IEquatable<CoreMRChoiceAnchor>, IComparable<CoreMRChoiceAnchor> {
|
|
46
|
+
readonly ChoiceId: int32;
|
|
47
|
+
readonly Sequence: int32;
|
|
48
|
+
readonly Text: string;
|
|
49
|
+
readonly Score: int32;
|
|
50
|
+
readonly BitPosition: Option<int32>;
|
|
51
|
+
readonly Code: Option<string>;
|
|
52
|
+
readonly FieldOptionKey: Shared_FieldOptionKey;
|
|
53
|
+
constructor(ChoiceId: int32, Sequence: int32, Text$: string, Score: int32, BitPosition: Option<int32>, Code: Option<string>, FieldOptionKey: Shared_FieldOptionKey) {
|
|
54
|
+
super();
|
|
55
|
+
this.ChoiceId = (ChoiceId | 0);
|
|
56
|
+
this.Sequence = (Sequence | 0);
|
|
57
|
+
this.Text = Text$;
|
|
58
|
+
this.Score = (Score | 0);
|
|
59
|
+
this.BitPosition = BitPosition;
|
|
60
|
+
this.Code = Code;
|
|
61
|
+
this.FieldOptionKey = FieldOptionKey;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function CoreMRChoiceAnchor_$reflection(): TypeInfo {
|
|
66
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRSourceMap.CoreMRChoiceAnchor", [], CoreMRChoiceAnchor, () => [["ChoiceId", int32_type], ["Sequence", int32_type], ["Text", string_type], ["Score", int32_type], ["BitPosition", option_type(int32_type)], ["Code", option_type(string_type)], ["FieldOptionKey", Shared_FieldOptionKey_$reflection()]]);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export class CoreMRMatrixItemAnchor extends Record implements IEquatable<CoreMRMatrixItemAnchor>, IComparable<CoreMRMatrixItemAnchor> {
|
|
70
|
+
readonly MatrixItemKey: Shared_MatrixItemKey;
|
|
71
|
+
readonly ItemId: int32;
|
|
72
|
+
readonly Sequence: int32;
|
|
73
|
+
constructor(MatrixItemKey: Shared_MatrixItemKey, ItemId: int32, Sequence: int32) {
|
|
74
|
+
super();
|
|
75
|
+
this.MatrixItemKey = MatrixItemKey;
|
|
76
|
+
this.ItemId = (ItemId | 0);
|
|
77
|
+
this.Sequence = (Sequence | 0);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function CoreMRMatrixItemAnchor_$reflection(): TypeInfo {
|
|
82
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRSourceMap.CoreMRMatrixItemAnchor", [], CoreMRMatrixItemAnchor, () => [["MatrixItemKey", Shared_MatrixItemKey_$reflection()], ["ItemId", int32_type], ["Sequence", int32_type]]);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export class CoreMRFieldAnchor extends Record implements IEquatable<CoreMRFieldAnchor>, IComparable<CoreMRFieldAnchor> {
|
|
86
|
+
readonly ItemId: int32;
|
|
87
|
+
readonly ItemTypeId: int32;
|
|
88
|
+
readonly Sequence: int32;
|
|
89
|
+
readonly NestingLevel: int32;
|
|
90
|
+
readonly Label: string;
|
|
91
|
+
readonly IsRequired: boolean;
|
|
92
|
+
readonly SequenceText: Option<string>;
|
|
93
|
+
readonly Code: Option<string>;
|
|
94
|
+
readonly Uuid: Option<string>;
|
|
95
|
+
readonly GenderRequired: Option<string>;
|
|
96
|
+
readonly Encoding: ValueEncodingInfo;
|
|
97
|
+
readonly Choices: FSharpList<CoreMRChoiceAnchor>;
|
|
98
|
+
readonly FieldKey: Shared_FieldKey;
|
|
99
|
+
readonly MatrixItemAnchors: FSharpList<CoreMRMatrixItemAnchor>;
|
|
100
|
+
constructor(ItemId: int32, ItemTypeId: int32, Sequence: int32, NestingLevel: int32, Label: string, IsRequired: boolean, SequenceText: Option<string>, Code: Option<string>, Uuid: Option<string>, GenderRequired: Option<string>, Encoding: ValueEncodingInfo, Choices: FSharpList<CoreMRChoiceAnchor>, FieldKey: Shared_FieldKey, MatrixItemAnchors: FSharpList<CoreMRMatrixItemAnchor>) {
|
|
101
|
+
super();
|
|
102
|
+
this.ItemId = (ItemId | 0);
|
|
103
|
+
this.ItemTypeId = (ItemTypeId | 0);
|
|
104
|
+
this.Sequence = (Sequence | 0);
|
|
105
|
+
this.NestingLevel = (NestingLevel | 0);
|
|
106
|
+
this.Label = Label;
|
|
107
|
+
this.IsRequired = IsRequired;
|
|
108
|
+
this.SequenceText = SequenceText;
|
|
109
|
+
this.Code = Code;
|
|
110
|
+
this.Uuid = Uuid;
|
|
111
|
+
this.GenderRequired = GenderRequired;
|
|
112
|
+
this.Encoding = Encoding;
|
|
113
|
+
this.Choices = Choices;
|
|
114
|
+
this.FieldKey = FieldKey;
|
|
115
|
+
this.MatrixItemAnchors = MatrixItemAnchors;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export function CoreMRFieldAnchor_$reflection(): TypeInfo {
|
|
120
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRSourceMap.CoreMRFieldAnchor", [], CoreMRFieldAnchor, () => [["ItemId", int32_type], ["ItemTypeId", int32_type], ["Sequence", int32_type], ["NestingLevel", int32_type], ["Label", string_type], ["IsRequired", bool_type], ["SequenceText", option_type(string_type)], ["Code", option_type(string_type)], ["Uuid", option_type(string_type)], ["GenderRequired", option_type(string_type)], ["Encoding", ValueEncodingInfo_$reflection()], ["Choices", list_type(CoreMRChoiceAnchor_$reflection())], ["FieldKey", Shared_FieldKey_$reflection()], ["MatrixItemAnchors", list_type(CoreMRMatrixItemAnchor_$reflection())]]);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export class CoreMRStepAnchor extends Record implements IEquatable<CoreMRStepAnchor>, IComparable<CoreMRStepAnchor> {
|
|
124
|
+
readonly HeadingItemId: Option<int32>;
|
|
125
|
+
readonly HeadingSequence: int32;
|
|
126
|
+
readonly HeadingLabel: string;
|
|
127
|
+
constructor(HeadingItemId: Option<int32>, HeadingSequence: int32, HeadingLabel: string) {
|
|
128
|
+
super();
|
|
129
|
+
this.HeadingItemId = HeadingItemId;
|
|
130
|
+
this.HeadingSequence = (HeadingSequence | 0);
|
|
131
|
+
this.HeadingLabel = HeadingLabel;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export function CoreMRStepAnchor_$reflection(): TypeInfo {
|
|
136
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRSourceMap.CoreMRStepAnchor", [], CoreMRStepAnchor, () => [["HeadingItemId", option_type(int32_type)], ["HeadingSequence", int32_type], ["HeadingLabel", string_type]]);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export class CoreMRAbsorbedItem extends Record implements IEquatable<CoreMRAbsorbedItem>, IComparable<CoreMRAbsorbedItem> {
|
|
140
|
+
readonly ItemId: int32;
|
|
141
|
+
readonly ItemTypeId: int32;
|
|
142
|
+
readonly Sequence: int32;
|
|
143
|
+
readonly Text: string;
|
|
144
|
+
readonly AbsorbedIntoFieldKey: Shared_FieldKey;
|
|
145
|
+
constructor(ItemId: int32, ItemTypeId: int32, Sequence: int32, Text$: string, AbsorbedIntoFieldKey: Shared_FieldKey) {
|
|
146
|
+
super();
|
|
147
|
+
this.ItemId = (ItemId | 0);
|
|
148
|
+
this.ItemTypeId = (ItemTypeId | 0);
|
|
149
|
+
this.Sequence = (Sequence | 0);
|
|
150
|
+
this.Text = Text$;
|
|
151
|
+
this.AbsorbedIntoFieldKey = AbsorbedIntoFieldKey;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export function CoreMRAbsorbedItem_$reflection(): TypeInfo {
|
|
156
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRSourceMap.CoreMRAbsorbedItem", [], CoreMRAbsorbedItem, () => [["ItemId", int32_type], ["ItemTypeId", int32_type], ["Sequence", int32_type], ["Text", string_type], ["AbsorbedIntoFieldKey", Shared_FieldKey_$reflection()]]);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export class CoreMRStepMap extends Record implements IEquatable<CoreMRStepMap>, IComparable<CoreMRStepMap> {
|
|
160
|
+
readonly StepOrder: int32;
|
|
161
|
+
readonly Heading: CoreMRStepAnchor;
|
|
162
|
+
readonly FieldAnchors: FSharpList<CoreMRFieldAnchor>;
|
|
163
|
+
constructor(StepOrder: int32, Heading: CoreMRStepAnchor, FieldAnchors: FSharpList<CoreMRFieldAnchor>) {
|
|
164
|
+
super();
|
|
165
|
+
this.StepOrder = (StepOrder | 0);
|
|
166
|
+
this.Heading = Heading;
|
|
167
|
+
this.FieldAnchors = FieldAnchors;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export function CoreMRStepMap_$reflection(): TypeInfo {
|
|
172
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRSourceMap.CoreMRStepMap", [], CoreMRStepMap, () => [["StepOrder", int32_type], ["Heading", CoreMRStepAnchor_$reflection()], ["FieldAnchors", list_type(CoreMRFieldAnchor_$reflection())]]);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export class CoreMRSourceMap extends Record implements IEquatable<CoreMRSourceMap>, IComparable<CoreMRSourceMap> {
|
|
176
|
+
readonly FormId: int32;
|
|
177
|
+
readonly VersionId: int32;
|
|
178
|
+
readonly VersionNumber: int32;
|
|
179
|
+
readonly FormName: Option<string>;
|
|
180
|
+
readonly FormCode: string;
|
|
181
|
+
readonly FormCodeSource: string;
|
|
182
|
+
readonly Description: Option<string>;
|
|
183
|
+
readonly IsIntake: boolean;
|
|
184
|
+
readonly RequiresSignature: boolean;
|
|
185
|
+
readonly IsScored: Option<boolean>;
|
|
186
|
+
readonly EncounterTypes: FSharpList<string>;
|
|
187
|
+
readonly Usage: Option<string>;
|
|
188
|
+
readonly StructureHash: Option<string>;
|
|
189
|
+
readonly ClinicalHash: Option<string>;
|
|
190
|
+
readonly CosmeticHash: Option<string>;
|
|
191
|
+
readonly Steps: FSharpList<CoreMRStepMap>;
|
|
192
|
+
readonly AbsorbedItems: FSharpList<CoreMRAbsorbedItem>;
|
|
193
|
+
readonly Triggers: FSharpList<CoreMRTrigger>;
|
|
194
|
+
readonly Tags: FSharpList<CoreMRTag>;
|
|
195
|
+
readonly FormSpecId: string;
|
|
196
|
+
constructor(FormId: int32, VersionId: int32, VersionNumber: int32, FormName: Option<string>, FormCode: string, FormCodeSource: string, Description: Option<string>, IsIntake: boolean, RequiresSignature: boolean, IsScored: Option<boolean>, EncounterTypes: FSharpList<string>, Usage: Option<string>, StructureHash: Option<string>, ClinicalHash: Option<string>, CosmeticHash: Option<string>, Steps: FSharpList<CoreMRStepMap>, AbsorbedItems: FSharpList<CoreMRAbsorbedItem>, Triggers: FSharpList<CoreMRTrigger>, Tags: FSharpList<CoreMRTag>, FormSpecId: string) {
|
|
197
|
+
super();
|
|
198
|
+
this.FormId = (FormId | 0);
|
|
199
|
+
this.VersionId = (VersionId | 0);
|
|
200
|
+
this.VersionNumber = (VersionNumber | 0);
|
|
201
|
+
this.FormName = FormName;
|
|
202
|
+
this.FormCode = FormCode;
|
|
203
|
+
this.FormCodeSource = FormCodeSource;
|
|
204
|
+
this.Description = Description;
|
|
205
|
+
this.IsIntake = IsIntake;
|
|
206
|
+
this.RequiresSignature = RequiresSignature;
|
|
207
|
+
this.IsScored = IsScored;
|
|
208
|
+
this.EncounterTypes = EncounterTypes;
|
|
209
|
+
this.Usage = Usage;
|
|
210
|
+
this.StructureHash = StructureHash;
|
|
211
|
+
this.ClinicalHash = ClinicalHash;
|
|
212
|
+
this.CosmeticHash = CosmeticHash;
|
|
213
|
+
this.Steps = Steps;
|
|
214
|
+
this.AbsorbedItems = AbsorbedItems;
|
|
215
|
+
this.Triggers = Triggers;
|
|
216
|
+
this.Tags = Tags;
|
|
217
|
+
this.FormSpecId = FormSpecId;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export function CoreMRSourceMap_$reflection(): TypeInfo {
|
|
222
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRSourceMap.CoreMRSourceMap", [], CoreMRSourceMap, () => [["FormId", int32_type], ["VersionId", int32_type], ["VersionNumber", int32_type], ["FormName", option_type(string_type)], ["FormCode", string_type], ["FormCodeSource", string_type], ["Description", option_type(string_type)], ["IsIntake", bool_type], ["RequiresSignature", bool_type], ["IsScored", option_type(bool_type)], ["EncounterTypes", list_type(string_type)], ["Usage", option_type(string_type)], ["StructureHash", option_type(string_type)], ["ClinicalHash", option_type(string_type)], ["CosmeticHash", option_type(string_type)], ["Steps", list_type(CoreMRStepMap_$reflection())], ["AbsorbedItems", list_type(CoreMRAbsorbedItem_$reflection())], ["Triggers", list_type(CoreMRTrigger_$reflection())], ["Tags", list_type(CoreMRTag_$reflection())], ["FormSpecId", class_type("System.Guid")]]);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
export class CoreMRConversionResult extends Record implements IEquatable<CoreMRConversionResult>, IComparable<CoreMRConversionResult> {
|
|
226
|
+
readonly FormSpec: Spec_FormSpec$1<Spec_FieldType_$union>;
|
|
227
|
+
readonly SourceMap: CoreMRSourceMap;
|
|
228
|
+
constructor(FormSpec: Spec_FormSpec$1<Spec_FieldType_$union>, SourceMap: CoreMRSourceMap) {
|
|
229
|
+
super();
|
|
230
|
+
this.FormSpec = FormSpec;
|
|
231
|
+
this.SourceMap = SourceMap;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
export function CoreMRConversionResult_$reflection(): TypeInfo {
|
|
236
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRSourceMap.CoreMRConversionResult", [], CoreMRConversionResult, () => [["FormSpec", Spec_FormSpec$1_$reflection(Spec_FieldType_$reflection())], ["SourceMap", CoreMRSourceMap_$reflection()]]);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
function getFieldOptions(field: Spec_FormField$1<Spec_FieldType_$union>): FSharpList<Shared_FieldOption> {
|
|
240
|
+
const matchValue: Spec_FieldType_$union = field.FieldType;
|
|
241
|
+
let matchResult: int32, info_1: Spec_SingleChoiceInfo, info_2: Spec_MultiChoiceInfo;
|
|
242
|
+
switch (matchValue.tag) {
|
|
243
|
+
case /* Dropdown */ 14: {
|
|
244
|
+
matchResult = 0;
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
case /* Radio */ 12: {
|
|
248
|
+
matchResult = 1;
|
|
249
|
+
info_1 = matchValue.fields[0];
|
|
250
|
+
break;
|
|
251
|
+
}
|
|
252
|
+
case /* SingleChoice */ 13: {
|
|
253
|
+
matchResult = 1;
|
|
254
|
+
info_1 = matchValue.fields[0];
|
|
255
|
+
break;
|
|
256
|
+
}
|
|
257
|
+
case /* MultiChoice */ 15: {
|
|
258
|
+
matchResult = 2;
|
|
259
|
+
info_2 = matchValue.fields[0];
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
case /* CheckboxList */ 16: {
|
|
263
|
+
matchResult = 2;
|
|
264
|
+
info_2 = matchValue.fields[0];
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
case /* TagList */ 17: {
|
|
268
|
+
matchResult = 2;
|
|
269
|
+
info_2 = matchValue.fields[0];
|
|
270
|
+
break;
|
|
271
|
+
}
|
|
272
|
+
default:
|
|
273
|
+
matchResult = 3;
|
|
274
|
+
}
|
|
275
|
+
switch (matchResult) {
|
|
276
|
+
case 0:
|
|
277
|
+
return matchValue.fields[0].Options;
|
|
278
|
+
case 1:
|
|
279
|
+
return info_1!.Options;
|
|
280
|
+
case 2:
|
|
281
|
+
return info_2!.Options;
|
|
282
|
+
default:
|
|
283
|
+
return empty<Shared_FieldOption>();
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Build a FieldAnchor from a CoreMR item and its mapped FormField
|
|
289
|
+
*/
|
|
290
|
+
export function buildFieldAnchor(item: CoreMRItem, choices: FSharpList<CoreMRChoice>, field: Spec_FormField$1<Spec_FieldType_$union>): CoreMRFieldAnchor {
|
|
291
|
+
const encoding: ValueEncodingInfo = getValueEncoding(item.ItemTypeId);
|
|
292
|
+
const sortedChoices: FSharpList<CoreMRChoice> = sortBy<CoreMRChoice, int32>((c: CoreMRChoice): int32 => c.Sequence, choices, {
|
|
293
|
+
Compare: comparePrimitives,
|
|
294
|
+
});
|
|
295
|
+
const fieldOptions: FSharpList<Shared_FieldOption> = getFieldOptions(field);
|
|
296
|
+
return new CoreMRFieldAnchor(item.ItemId, item.ItemTypeId, item.Sequence, item.NestingLevel, item.Label, item.IsRequired, item.SequenceText, item.Code, item.Uuid, item.GenderRequired, encoding, mapIndexed<CoreMRChoice, CoreMRChoiceAnchor>((i: int32, choice: CoreMRChoice): CoreMRChoiceAnchor => (new CoreMRChoiceAnchor(choice.ChoiceId, choice.Sequence, choice.Text, choice.Score, choice.BitPosition, choice.Code, (i < length(fieldOptions)) ? item_1(i, fieldOptions).OptionKey : (new Shared_FieldOptionKey("00000000-0000-0000-0000-000000000000")))), sortedChoices), field.FieldKey, empty<CoreMRMatrixItemAnchor>());
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
export class ListMetadata extends Record implements IEquatable<ListMetadata>, IComparable<ListMetadata> {
|
|
300
|
+
readonly IsIntake: Option<boolean>;
|
|
301
|
+
readonly IsScored: Option<boolean>;
|
|
302
|
+
readonly EncounterTypes: FSharpList<string>;
|
|
303
|
+
constructor(IsIntake: Option<boolean>, IsScored: Option<boolean>, EncounterTypes: FSharpList<string>) {
|
|
304
|
+
super();
|
|
305
|
+
this.IsIntake = IsIntake;
|
|
306
|
+
this.IsScored = IsScored;
|
|
307
|
+
this.EncounterTypes = EncounterTypes;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
export function ListMetadata_$reflection(): TypeInfo {
|
|
312
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRSourceMap.ListMetadata", [], ListMetadata, () => [["IsIntake", option_type(bool_type)], ["IsScored", option_type(bool_type)], ["EncounterTypes", list_type(string_type)]]);
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Build the complete SourceMap from raw CoreMR data and the resulting FormSpec.
|
|
317
|
+
* When listMetadata is Some (from FormListItem during import), IsScored and EncounterTypes are populated.
|
|
318
|
+
*/
|
|
319
|
+
export function buildSourceMap(formData: CoreMRFormData, formSpec: Spec_FormSpec$1<Spec_FieldType_$union>, listMetadata: Option<ListMetadata>): CoreMRSourceMap {
|
|
320
|
+
let matchValue: Option<boolean>;
|
|
321
|
+
const formCode: string = defaultArg(formSpec.Code, `CORE-${formData.Metadata.FormId}`);
|
|
322
|
+
const choicesByItem: FSharpMap<int32, FSharpList<CoreMRChoice>> = ofList<int32, FSharpList<CoreMRChoice>>(List_groupBy<CoreMRChoice, int32>((c: CoreMRChoice): int32 => c.ItemId, formData.Choices, {
|
|
323
|
+
Equals: (x: int32, y: int32): boolean => (x === y),
|
|
324
|
+
GetHashCode: numberHash,
|
|
325
|
+
}), {
|
|
326
|
+
Compare: comparePrimitives,
|
|
327
|
+
});
|
|
328
|
+
let stepOrder = 0;
|
|
329
|
+
const stepMaps: FSharpList<CoreMRStepMap> = choose<Section, CoreMRStepMap>((section: Section): Option<CoreMRStepMap> => {
|
|
330
|
+
stepOrder = ((stepOrder + 1) | 0);
|
|
331
|
+
const formStep: Option<Spec_FormStep$1<Spec_FieldType_$union>> = tryFind<Spec_FormStep$1<Spec_FieldType_$union>>((s: Spec_FormStep$1<Spec_FieldType_$union>): boolean => (s.StepOrder === stepOrder), formSpec.Steps);
|
|
332
|
+
if (formStep != null) {
|
|
333
|
+
const step: Spec_FormStep$1<Spec_FieldType_$union> = value_2(formStep);
|
|
334
|
+
if (length(section.Items) !== length(step.Fields)) {
|
|
335
|
+
throw new Error(`CoreMR section mismatch: step ${stepOrder} has ${length(section.Items)} section items but ${length(step.Fields)} fields. Lengths must match.`);
|
|
336
|
+
}
|
|
337
|
+
const fieldAnchors: FSharpList<CoreMRFieldAnchor> = mapIndexed<CoreMRItem, CoreMRFieldAnchor>((i: int32, item: CoreMRItem): CoreMRFieldAnchor => {
|
|
338
|
+
const field: Spec_FormField$1<Spec_FieldType_$union> = item_1(i, step.Fields);
|
|
339
|
+
return buildFieldAnchor(item, defaultArg(tryFind_1<int32, FSharpList<CoreMRChoice>>(item.ItemId, choicesByItem), empty<CoreMRChoice>()), field);
|
|
340
|
+
}, section.Items);
|
|
341
|
+
const headingItemId: Option<int32> = map<HeadingItem, int32>((h: HeadingItem): int32 => h.ItemId, section.Heading);
|
|
342
|
+
return new CoreMRStepMap(stepOrder, new CoreMRStepAnchor(headingItemId, section.HeadingSequence, section.HeadingLabel), fieldAnchors);
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
return undefined;
|
|
346
|
+
}
|
|
347
|
+
}, groupItemsByHeadings(detectHeadings(formData.Items), formData.Items));
|
|
348
|
+
const listMeta: ListMetadata = defaultArg<ListMetadata>(listMetadata, new ListMetadata(undefined, undefined, empty<string>()));
|
|
349
|
+
return new CoreMRSourceMap(formData.Metadata.FormId, formData.Metadata.VersionId, formData.Metadata.VersionNumber, formData.Metadata.FormName, formCode, "name", formData.Metadata.Description, (matchValue = listMeta.IsIntake, (matchValue == null) ? formData.Metadata.IsIntake : value_2(matchValue)), formData.Metadata.RequiresSignature, listMeta.IsScored, listMeta.EncounterTypes, undefined, undefined, undefined, undefined, stepMaps, empty<CoreMRAbsorbedItem>(), formData.Triggers, formData.Tags, formSpec.Id);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Convert CoreMR form data to FormSpec with full source mapping.
|
|
354
|
+
* When listMetadata is Some (from FormListItem during import), IsScored and EncounterTypes are populated in the SourceMap.
|
|
355
|
+
*/
|
|
356
|
+
export function convertWithMap(formData: CoreMRFormData, listMetadata: Option<ListMetadata>): CoreMRConversionResult {
|
|
357
|
+
const formSpec: Spec_FormSpec$1<Spec_FieldType_$union> = convertToFormSpec(formData);
|
|
358
|
+
return new CoreMRConversionResult(formSpec, buildSourceMap(formData, formSpec, listMetadata));
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* Convert CoreMR form data to FormSpec with Provenance attached (for persist on import).
|
|
363
|
+
* When listMetadata is Some (from FormListItem during import), IsScored and EncounterTypes are populated.
|
|
364
|
+
*/
|
|
365
|
+
export function convertWithMapAndProvenance(formData: CoreMRFormData, listMetadata: Option<ListMetadata>): Spec_FormSpec$1<Spec_FieldType_$union> {
|
|
366
|
+
const result: CoreMRConversionResult = convertWithMap(formData, listMetadata);
|
|
367
|
+
const bind$0040: Spec_FormSpec$1<Spec_FieldType_$union> = result.FormSpec;
|
|
368
|
+
return new Spec_FormSpec$1(bind$0040.Id, bind$0040.Code, bind$0040.Title, bind$0040.Abstract, bind$0040.Version, bind$0040.FormSpecVersion, bind$0040.Steps, bind$0040.CategoryTags, bind$0040.Score, bind$0040.AssociatedCodes, bind$0040.RequiresReview, bind$0040.RequiresReviewAndApproval, bind$0040.ClinicalPathway, bind$0040.Lifecycle, bind$0040.FilledMeta, bind$0040.CustomData, new IntegrationProvenance("coremr", toString(0, Auto_generateBoxedEncoder_437914C6(CoreMRSourceMap_$reflection(), undefined, undefined, undefined)(result.SourceMap))));
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
//# sourceMappingURL=CoreMRSourceMap.ts.map
|