@f1studio/form-spec 5.0.0-alpha.168 → 5.0.0-alpha.169
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/BlueprintValidation.d.ts +6 -3
- package/FormSpec.FS/BlueprintValidation.d.ts.map +1 -1
- package/FormSpec.FS/BlueprintValidation.js +39 -15
- package/FormSpec.FS/BlueprintValidation.js.map +1 -1
- package/FormSpec.FS/Designer.d.ts.map +1 -1
- package/FormSpec.FS/Designer.js +1 -1
- package/FormSpec.FS/Designer.js.map +1 -1
- package/FormSpec.FS/FormSpec.d.ts +108 -58
- package/FormSpec.FS/FormSpec.d.ts.map +1 -1
- package/FormSpec.FS/FormSpec.js +319 -129
- package/FormSpec.FS/FormSpec.js.map +1 -1
- package/FormSpec.FS/FormSpecHelpers.d.ts.map +1 -1
- package/FormSpec.FS/FormSpecHelpers.js +1 -1
- package/FormSpec.FS/FormSpecHelpers.js.map +1 -1
- package/FormSpec.FS/FormSpecValues.d.ts.map +1 -1
- package/FormSpec.FS/FormSpecValues.js +5 -2
- package/FormSpec.FS/FormSpecValues.js.map +1 -1
- package/FormSpec.FS/Helpers.d.ts.map +1 -1
- package/FormSpec.FS/Helpers.js +14 -9
- package/FormSpec.FS/Helpers.js.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFieldTypeMapper.d.ts.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFieldTypeMapper.js +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFieldTypeMapper.js.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFormSpecValidator.d.ts +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFormSpecValidator.d.ts.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFormSpecValidator.js +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFormSpecValidator.js.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSectioning.d.ts +3 -3
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSectioning.d.ts.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSectioning.js +7 -5
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSectioning.js.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSemanticReportBuilder.d.ts.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSemanticReportBuilder.js +11 -10
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSemanticReportBuilder.js.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRStepsBuilder.d.ts.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRStepsBuilder.js +1 -9
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRStepsBuilder.js.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateMapper.d.ts +11 -4
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateMapper.d.ts.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateMapper.js +30 -28
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateMapper.js.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateToFormSpec.d.ts +3 -9
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateToFormSpec.d.ts.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateToFormSpec.js +4 -31
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateToFormSpec.js.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.d.ts.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.js +2 -6
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.js.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRImportPipeline.d.ts +45 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRImportPipeline.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRImportPipeline.js +141 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRImportPipeline.js.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRImporterAnalysis.d.ts +326 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRImporterAnalysis.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRImporterAnalysis.js +1743 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRImporterAnalysis.js.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRSourceMap.d.ts +8 -8
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRSourceMap.d.ts.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRSourceMap.js +6 -6
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRSourceMap.js.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRTriggerEnrichment.d.ts +21 -15
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRTriggerEnrichment.d.ts.map +1 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRTriggerEnrichment.js +83 -80
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRTriggerEnrichment.js.map +1 -1
- package/FormSpec.FS/Integrations/CorEMR/CoreMRPathwayMapper.d.ts +51 -0
- package/FormSpec.FS/Integrations/CorEMR/CoreMRPathwayMapper.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/CorEMR/CoreMRPathwayMapper.js +939 -0
- package/FormSpec.FS/Integrations/CorEMR/CoreMRPathwayMapper.js.map +1 -0
- package/FormSpec.FS/Integrations/CorEMR/CoreMRTypes.d.ts +2 -17
- package/FormSpec.FS/Integrations/CorEMR/CoreMRTypes.d.ts.map +1 -1
- package/FormSpec.FS/Integrations/CorEMR/CoreMRTypes.js +1 -66
- package/FormSpec.FS/Integrations/CorEMR/{TemplateManifestDecoder.d.ts → FormTemplateDecoder.d.ts} +53 -45
- package/FormSpec.FS/Integrations/CorEMR/FormTemplateDecoder.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/CorEMR/{TemplateManifestDecoder.js → FormTemplateDecoder.js} +544 -254
- package/FormSpec.FS/Integrations/CorEMR/FormTemplateDecoder.js.map +1 -0
- package/FormSpec.FS/Integrations/CorEMR/FormTemplateDomainDecoder.d.ts +7 -0
- package/FormSpec.FS/Integrations/CorEMR/FormTemplateDomainDecoder.d.ts.map +1 -0
- package/FormSpec.FS/Integrations/CorEMR/FormTemplateDomainDecoder.js +280 -0
- package/FormSpec.FS/Integrations/CorEMR/FormTemplateDomainDecoder.js.map +1 -0
- package/FormSpec.FS/Interop/FormSpec.Api.Helpers.d.ts +16 -4
- package/FormSpec.FS/Interop/FormSpec.Api.Helpers.d.ts.map +1 -1
- package/FormSpec.FS/Interop/FormSpec.Api.Helpers.js +63 -18
- package/FormSpec.FS/Interop/FormSpec.Api.Helpers.js.map +1 -1
- package/FormSpec.FS/Interop/FormSpec.Api.Option.d.ts +4 -4
- package/FormSpec.FS/Interop/FormSpec.Api.Option.d.ts.map +1 -1
- package/FormSpec.FS/Interop/FormSpec.Api.Option.js +2 -2
- package/FormSpec.FS/Interop/FormSpec.Api.Option.js.map +1 -1
- package/FormSpec.FS/PathwayDataExtractor.d.ts.map +1 -1
- package/FormSpec.FS/PathwayDataExtractor.js +39 -18
- package/FormSpec.FS/PathwayDataExtractor.js.map +1 -1
- package/FormSpec.FS/PathwayExecutor.d.ts +10 -10
- package/FormSpec.FS/PathwayExecutor.d.ts.map +1 -1
- package/FormSpec.FS/PathwayExecutor.js +14 -14
- package/FormSpec.FS/PathwayExecutor.js.map +1 -1
- package/FormSpec.FS/PathwayValidator.d.ts.map +1 -1
- package/FormSpec.FS/PathwayValidator.js +8 -5
- package/FormSpec.FS/PathwayValidator.js.map +1 -1
- package/FormSpec.FS/Renderers/FormSpecMarkdownRenderer.d.ts.map +1 -1
- package/FormSpec.FS/Renderers/FormSpecMarkdownRenderer.js +16 -7
- package/FormSpec.FS/Renderers/FormSpecMarkdownRenderer.js.map +1 -1
- package/FormSpec.FS/Renderers/MermaidRenderer.d.ts.map +1 -1
- package/FormSpec.FS/Renderers/MermaidRenderer.js +4 -8
- package/FormSpec.FS/Renderers/MermaidRenderer.js.map +1 -1
- package/FormSpec.FS/Renderers/PathwayRenderers.d.ts.map +1 -1
- package/FormSpec.FS/Renderers/PathwayRenderers.js +5 -4
- package/FormSpec.FS/Renderers/PathwayRenderers.js.map +1 -1
- package/FormSpec.FS/TriggerActionDto.d.ts +32 -21
- package/FormSpec.FS/TriggerActionDto.d.ts.map +1 -1
- package/FormSpec.FS/TriggerActionDto.js +247 -61
- package/FormSpec.FS/TriggerActionDto.js.map +1 -1
- package/README.md +7 -7
- package/Thoth.Json/packages/Thoth.Json/Encode.js.map +1 -1
- package/package.json +1 -1
- package/plugins/allergyfinder/src/AllergyFinderField.d.ts.map +1 -1
- package/plugins/allergyfinder/src/AllergyFinderField.js +2 -2
- package/plugins/allergyfinder/src/AllergyFinderField.js.map +1 -1
- package/plugins/bmi/src/BMIField.d.ts.map +1 -1
- package/plugins/bmi/src/BMIField.js +21 -15
- package/plugins/bmi/src/BMIField.js.map +1 -1
- package/plugins/demographics/src/DemographicsField.d.ts.map +1 -1
- package/plugins/demographics/src/DemographicsField.js +4 -4
- package/plugins/demographics/src/DemographicsField.js.map +1 -1
- package/plugins/likert/src/LikertField.d.ts.map +1 -1
- package/plugins/likert/src/LikertField.js +40 -35
- package/plugins/likert/src/LikertField.js.map +1 -1
- package/plugins/signature/src/SignatureField.d.ts.map +1 -1
- package/plugins/signature/src/SignatureField.js +4 -3
- package/plugins/signature/src/SignatureField.js.map +1 -1
- package/plugins/vitals/src/VitalsField.d.ts.map +1 -1
- package/plugins/vitals/src/VitalsField.js +4 -4
- package/plugins/vitals/src/VitalsField.js.map +1 -1
- package/src/FormSpec.FS/BlueprintValidation.ts +55 -24
- package/src/FormSpec.FS/Designer.ts +2 -2
- package/src/FormSpec.FS/FormSpec.ts +223 -100
- package/src/FormSpec.FS/FormSpecHelpers.ts +2 -2
- package/src/FormSpec.FS/FormSpecValues.ts +6 -3
- package/src/FormSpec.FS/Helpers.ts +16 -11
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFieldTypeMapper.ts +2 -2
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRFormSpecValidator.ts +3 -3
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSectioning.ts +10 -8
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRSemanticReportBuilder.ts +6 -5
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRStepsBuilder.ts +1 -10
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateMapper.ts +35 -30
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTemplateToFormSpec.ts +7 -26
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMREncoder.ts +2 -6
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRImportPipeline.ts +115 -0
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRImporterAnalysis.ts +1059 -0
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRSourceMap.ts +10 -10
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CoreMRTriggerEnrichment.ts +61 -88
- package/src/FormSpec.FS/Integrations/CorEMR/CoreMRPathwayMapper.ts +926 -0
- package/src/FormSpec.FS/Integrations/CorEMR/CoreMRTypes.ts +3 -37
- package/src/FormSpec.FS/Integrations/CorEMR/FormTemplateDecoder.ts +1284 -0
- package/src/FormSpec.FS/Integrations/CorEMR/FormTemplateDomainDecoder.ts +287 -0
- package/src/FormSpec.FS/Interop/FormSpec.Api.Helpers.ts +76 -25
- package/src/FormSpec.FS/Interop/FormSpec.Api.Option.ts +6 -6
- package/src/FormSpec.FS/PathwayDataExtractor.ts +40 -20
- package/src/FormSpec.FS/PathwayExecutor.ts +26 -26
- package/src/FormSpec.FS/PathwayValidator.ts +8 -5
- package/src/FormSpec.FS/Renderers/FormSpecMarkdownRenderer.ts +18 -8
- package/src/FormSpec.FS/Renderers/MermaidRenderer.ts +6 -10
- package/src/FormSpec.FS/Renderers/PathwayRenderers.ts +5 -5
- package/src/FormSpec.FS/TriggerActionDto.ts +247 -74
- package/src/plugins/allergyfinder/src/AllergyFinderField.ts +3 -3
- package/src/plugins/bmi/src/BMIField.ts +12 -5
- package/src/plugins/demographics/src/DemographicsField.ts +5 -5
- package/src/plugins/likert/src/LikertField.ts +16 -11
- package/src/plugins/signature/src/SignatureField.ts +4 -3
- package/src/plugins/vitals/src/VitalsField.ts +5 -5
- package/src/vye-os-contracts-fs/src/CoreMR/FormTemplate.ts +715 -0
- package/vye-os-contracts-fs/src/CoreMR/FormTemplate.d.ts +310 -0
- package/vye-os-contracts-fs/src/CoreMR/FormTemplate.d.ts.map +1 -0
- package/vye-os-contracts-fs/src/CoreMR/FormTemplate.js +1242 -0
- package/vye-os-contracts-fs/src/CoreMR/FormTemplate.js.map +1 -0
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.d.ts +0 -69
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.d.ts.map +0 -1
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.js +0 -447
- package/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.js.map +0 -1
- package/FormSpec.FS/Integrations/CorEMR/ItemTriggerConverter.d.ts +0 -19
- package/FormSpec.FS/Integrations/CorEMR/ItemTriggerConverter.d.ts.map +0 -1
- package/FormSpec.FS/Integrations/CorEMR/ItemTriggerConverter.js +0 -643
- package/FormSpec.FS/Integrations/CorEMR/ItemTriggerConverter.js.map +0 -1
- package/FormSpec.FS/Integrations/CorEMR/TemplateManifestDecoder.d.ts.map +0 -1
- package/FormSpec.FS/Integrations/CorEMR/TemplateManifestDecoder.js.map +0 -1
- package/src/FormSpec.FS/Integrations/Adapters/CorEMR/CorEMRTriggerConverter.ts +0 -412
- package/src/FormSpec.FS/Integrations/CorEMR/ItemTriggerConverter.ts +0 -588
- package/src/FormSpec.FS/Integrations/CorEMR/TemplateManifestDecoder.ts +0 -1054
|
@@ -8,7 +8,7 @@ import { bind, map, defaultArg, Option, value as value_3 } from "@fable-org/fabl
|
|
|
8
8
|
import { int64 } from "@fable-org/fable-library-js/BigInt.js";
|
|
9
9
|
import { Spec_FormClassification_General, 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, Spec_FormClassification_$reflection, Spec_FormClassification_$union, Shared_FieldKey_$reflection, Shared_FieldKey, Shared_MatrixItemKey_$reflection, Shared_MatrixItemKey, Shared_FieldOptionKey_$reflection, Shared_FieldOptionKey } from "../../../FormSpec.js";
|
|
10
10
|
import { tryFind as tryFind_1, choose, item as item_1, length, mapIndexed, sortBy, empty, FSharpList } from "@fable-org/fable-library-js/List.js";
|
|
11
|
-
import { FormScoring_$reflection, FormScoring, ItemTrigger_$reflection, ItemTrigger } from "../../CorEMR/
|
|
11
|
+
import { FormScoring_$reflection, FormScoring, ItemTrigger_$reflection, ItemTrigger } from "../../CorEMR/FormTemplateDecoder.js";
|
|
12
12
|
import { CoreMRFormData, CoreMRItem, CoreMRChoice, CoreMRTag_$reflection, CoreMRTrigger_$reflection, CoreMRTag, CoreMRTrigger } from "../../CorEMR/CoreMRTypes.js";
|
|
13
13
|
import { List_groupBy } from "@fable-org/fable-library-js/Seq2.js";
|
|
14
14
|
import { detectHeadings, groupItemsByHeadings, Section, HeadingItem } from "./CorEMRSectioning.js";
|
|
@@ -142,8 +142,8 @@ export function CoreMRFieldAnchor_$reflection(): TypeInfo {
|
|
|
142
142
|
export class CoreMRStepAnchor extends Record implements IEquatable<CoreMRStepAnchor>, IComparable<CoreMRStepAnchor> {
|
|
143
143
|
readonly HeadingItemId: Option<int32>;
|
|
144
144
|
readonly HeadingSequence: int32;
|
|
145
|
-
readonly HeadingLabel: string
|
|
146
|
-
constructor(HeadingItemId: Option<int32>, HeadingSequence: int32, HeadingLabel: string) {
|
|
145
|
+
readonly HeadingLabel: Option<string>;
|
|
146
|
+
constructor(HeadingItemId: Option<int32>, HeadingSequence: int32, HeadingLabel: Option<string>) {
|
|
147
147
|
super();
|
|
148
148
|
this.HeadingItemId = HeadingItemId;
|
|
149
149
|
this.HeadingSequence = (HeadingSequence | 0);
|
|
@@ -152,7 +152,7 @@ export class CoreMRStepAnchor extends Record implements IEquatable<CoreMRStepAnc
|
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
export function CoreMRStepAnchor_$reflection(): TypeInfo {
|
|
155
|
-
return record_type("FormSpec.Integrations.CorEMR.CoreMRSourceMap.CoreMRStepAnchor", [], CoreMRStepAnchor, () => [["HeadingItemId", option_type(int32_type)], ["HeadingSequence", int32_type], ["HeadingLabel", string_type]]);
|
|
155
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRSourceMap.CoreMRStepAnchor", [], CoreMRStepAnchor, () => [["HeadingItemId", option_type(int32_type)], ["HeadingSequence", int32_type], ["HeadingLabel", option_type(string_type)]]);
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
export class CoreMRAbsorbedItem extends Record implements IEquatable<CoreMRAbsorbedItem>, IComparable<CoreMRAbsorbedItem> {
|
|
@@ -195,7 +195,7 @@ export class CoreMRSourceMap extends Record implements IEquatable<CoreMRSourceMa
|
|
|
195
195
|
readonly FormId: int32;
|
|
196
196
|
readonly VersionId: int32;
|
|
197
197
|
readonly VersionNumber: int32;
|
|
198
|
-
readonly FormName:
|
|
198
|
+
readonly FormName: string;
|
|
199
199
|
readonly FormCode: string;
|
|
200
200
|
readonly FormCodeSource: string;
|
|
201
201
|
readonly Description: Option<string>;
|
|
@@ -213,7 +213,7 @@ export class CoreMRSourceMap extends Record implements IEquatable<CoreMRSourceMa
|
|
|
213
213
|
readonly Triggers: FSharpList<CoreMRTrigger>;
|
|
214
214
|
readonly Tags: FSharpList<CoreMRTag>;
|
|
215
215
|
readonly FormSpecId: string;
|
|
216
|
-
constructor(FormId: int32, VersionId: int32, VersionNumber: int32, FormName:
|
|
216
|
+
constructor(FormId: int32, VersionId: int32, VersionNumber: int32, FormName: string, FormCode: string, FormCodeSource: string, Description: Option<string>, RequiresSignature: boolean, IsIntake: boolean, Scoring: Option<FormScoring>, EncounterTypes: FSharpList<string>, Usage: Option<string>, Classification: Spec_FormClassification_$union, StructureHash: Option<string>, ClinicalHash: Option<string>, CosmeticHash: Option<string>, Steps: FSharpList<CoreMRStepMap>, AbsorbedItems: FSharpList<CoreMRAbsorbedItem>, Triggers: FSharpList<CoreMRTrigger>, Tags: FSharpList<CoreMRTag>, FormSpecId: string) {
|
|
217
217
|
super();
|
|
218
218
|
this.FormId = (FormId | 0);
|
|
219
219
|
this.VersionId = (VersionId | 0);
|
|
@@ -240,7 +240,7 @@ export class CoreMRSourceMap extends Record implements IEquatable<CoreMRSourceMa
|
|
|
240
240
|
}
|
|
241
241
|
|
|
242
242
|
export function CoreMRSourceMap_$reflection(): TypeInfo {
|
|
243
|
-
return record_type("FormSpec.Integrations.CorEMR.CoreMRSourceMap.CoreMRSourceMap", [], CoreMRSourceMap, () => [["FormId", int32_type], ["VersionId", int32_type], ["VersionNumber", int32_type], ["FormName",
|
|
243
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRSourceMap.CoreMRSourceMap", [], CoreMRSourceMap, () => [["FormId", int32_type], ["VersionId", int32_type], ["VersionNumber", int32_type], ["FormName", string_type], ["FormCode", string_type], ["FormCodeSource", string_type], ["Description", option_type(string_type)], ["RequiresSignature", bool_type], ["IsIntake", bool_type], ["Scoring", option_type(FormScoring_$reflection())], ["EncounterTypes", list_type(string_type)], ["Usage", option_type(string_type)], ["Classification", Spec_FormClassification_$reflection()], ["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")]]);
|
|
244
244
|
}
|
|
245
245
|
|
|
246
246
|
export class CoreMRConversionResult extends Record implements IEquatable<CoreMRConversionResult>, IComparable<CoreMRConversionResult> {
|
|
@@ -339,7 +339,7 @@ export function ListMetadata_$reflection(): TypeInfo {
|
|
|
339
339
|
* Build the complete SourceMap from raw CoreMR data and the resulting FormSpec.
|
|
340
340
|
* When listMetadata is Some (from the templates catalog during import), Scoring, EncounterTypes,
|
|
341
341
|
* Usage and Classification are populated. IsIntake always comes from formData.Metadata.
|
|
342
|
-
*
|
|
342
|
+
* `elementTypes`: `None` = the ENCODING comes from `CorEMRElementTypeMap`'s constant — FLIP-8's to replace (named, not hidden).
|
|
343
343
|
*/
|
|
344
344
|
export function buildSourceMap(elementTypes: Option<FSharpMap<int32, ElementTypeInfo>>, triggersByItemId: FSharpMap<int32, FSharpList<ItemTrigger>>, formData: CoreMRFormData, formSpec: Spec_FormSpec$1<Spec_FieldType_$union>, listMetadata: Option<ListMetadata>): CoreMRSourceMap {
|
|
345
345
|
const formCode: string = defaultArg(formSpec.Code, `CORE-${formData.Metadata.FormId}`);
|
|
@@ -378,7 +378,7 @@ export function buildSourceMap(elementTypes: Option<FSharpMap<int32, ElementType
|
|
|
378
378
|
* Convert CoreMR form data to FormSpec with full source mapping.
|
|
379
379
|
* When listMetadata is Some (from the templates catalog during import), Scoring, EncounterTypes,
|
|
380
380
|
* Usage and Classification are populated. IsIntake always comes from formData.Metadata.
|
|
381
|
-
*
|
|
381
|
+
* `elementTypes`: `None` = the ENCODING comes from `CorEMRElementTypeMap`'s constant — FLIP-8's to replace (named, not hidden).
|
|
382
382
|
*/
|
|
383
383
|
export function convertWithMap(formData: CoreMRFormData, listMetadata: Option<ListMetadata>, elementTypes: Option<FSharpMap<int32, ElementTypeInfo>>, triggersByItemId: FSharpMap<int32, FSharpList<ItemTrigger>>): CoreMRConversionResult {
|
|
384
384
|
const formSpec: Spec_FormSpec$1<Spec_FieldType_$union> = convertToFormSpec(bind<ListMetadata, FormScoring>((m: ListMetadata): Option<FormScoring> => m.Scoring, listMetadata), formData);
|
|
@@ -389,7 +389,7 @@ export function convertWithMap(formData: CoreMRFormData, listMetadata: Option<Li
|
|
|
389
389
|
* Convert CoreMR form data to FormSpec with Provenance attached (for persist on import).
|
|
390
390
|
* When listMetadata is Some (from the templates catalog during import), Scoring, EncounterTypes,
|
|
391
391
|
* Usage and Classification are populated. IsIntake always comes from formData.Metadata.
|
|
392
|
-
*
|
|
392
|
+
* `elementTypes`: `None` = the ENCODING comes from `CorEMRElementTypeMap`'s constant — FLIP-8's to replace (named, not hidden).
|
|
393
393
|
* ⭐ `origin` is REQUIRED. A blueprint imported without naming its tenant and database produces a
|
|
394
394
|
* provenance that cannot be resolved back — measured 2026-09-23: 228 of 228 imports were unresolvable.
|
|
395
395
|
*/
|
|
@@ -1,106 +1,79 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { TriggerAction as TriggerAction_1 } from "../../../../vye-os-contracts-fs/src/Clinical/TriggerAction.js";
|
|
11
|
-
import { convertActionsToBaseDtos } from "../../../TriggerActionDto.js";
|
|
12
|
-
import { IntegrationProvenance } from "../../../Provenance.js";
|
|
13
|
-
import { Auto_generateBoxedDecoder_Z6670B51, fromString } from "../../../../Thoth.Json/packages/Thoth.Json/Decode.js";
|
|
14
|
-
import { FSharpResult$2_$union } from "@fable-org/fable-library-js/Result.js";
|
|
15
|
-
import { Spec_FieldType_$union, Spec_FormSpec$1, ClinicalPathway_ActionInfo_$union } from "../../../FormSpec.js";
|
|
1
|
+
import { Record } from "@fable-org/fable-library-js/Types.js";
|
|
2
|
+
import { IComparable, IEquatable } from "@fable-org/fable-library-js/Util.js";
|
|
3
|
+
import { list_type, record_type, string_type, TypeInfo } from "@fable-org/fable-library-js/Reflection.js";
|
|
4
|
+
import { choose, map, FSharpList } from "@fable-org/fable-library-js/List.js";
|
|
5
|
+
import { TriggerAction_$reflection, TriggerAction } from "../../../../vye-os-contracts-fs/src/Clinical/TriggerAction.js";
|
|
6
|
+
import { ActionWrite_$union, convertActionToBaseDto } from "../../../TriggerActionDto.js";
|
|
7
|
+
import { ClinicalPathway_PathwayAction, ClinicalPathway_CoreMRTriggerRef, ClinicalPathway_ActionOrigin_$union } from "../../../FormSpec.js";
|
|
8
|
+
import { FSharpResult$2_$union, FSharpResult$2_Ok, FSharpResult$2_Error } from "@fable-org/fable-library-js/Result.js";
|
|
9
|
+
import { Option } from "@fable-org/fable-library-js/Option.js";
|
|
16
10
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
function tryParseInt(s: string): Option<int32> {
|
|
25
|
-
let matchValue: [boolean, int32];
|
|
26
|
-
let outArg = 0;
|
|
27
|
-
matchValue = ([tryParse(s, 511, false, 32, new FSharpRef<int32>((): int32 => outArg, (v: int32): void => {
|
|
28
|
-
outArg = (v | 0);
|
|
29
|
-
})), outArg] as [boolean, int32]);
|
|
30
|
-
if (matchValue[0]) {
|
|
31
|
-
return matchValue[1];
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
return undefined;
|
|
11
|
+
export class NotWrittenAction extends Record implements IEquatable<NotWrittenAction>, IComparable<NotWrittenAction> {
|
|
12
|
+
readonly Action: string;
|
|
13
|
+
readonly Reason: string;
|
|
14
|
+
constructor(Action: string, Reason: string) {
|
|
15
|
+
super();
|
|
16
|
+
this.Action = Action;
|
|
17
|
+
this.Reason = Reason;
|
|
35
18
|
}
|
|
36
19
|
}
|
|
37
20
|
|
|
38
|
-
function
|
|
39
|
-
return
|
|
40
|
-
if ((action.ActionType.toLowerCase() === dto.ActionType) ? true : ((dto.ActionType === "recurring_task") && (action.ActionType.toLowerCase() === "recurring_task"))) {
|
|
41
|
-
return defaultArg(tryPick<string, int32>((key: string): Option<int32> => bind<string, int32>(tryParseInt, tryFind_1<string, string>(key, action.Params)), ofArray(["id", "category_id", "cat_id", "problem_list_id", "medset_id"])), 0) === dto.CategoryId;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
}, trigger.Actions)), triggers);
|
|
21
|
+
export function NotWrittenAction_$reflection(): TypeInfo {
|
|
22
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRTriggerEnrichment.NotWrittenAction", [], NotWrittenAction, () => [["Action", string_type], ["Reason", string_type]]);
|
|
47
23
|
}
|
|
48
24
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return new TriggerAction_1(dto.ActionType, trigger.TriggerId, value_1(matchValue)[1].ActionId, dto.CategoryId, dto.CategoryName, dto.Priority, dto.Description, dto.DateStart, dto.AllDay, dto.ScheduleEnd, dto.ProblemListId, map<TriggerCondition, int32>((c: TriggerCondition): int32 => c.SourceFieldId, tryHead<TriggerCondition>(trigger.Conditions)), dto.TreatmentId, dto.ScheduleId, dto.ProviderId, dto.Signature, dto.SourceRelatedId, dto.RelatedType, dto.Chronic, dto.Severity, dto.Inflammation, dto.MedsetId, dto.PharmacyId);
|
|
25
|
+
export class CoreMRActionWrites extends Record implements IEquatable<CoreMRActionWrites>, IComparable<CoreMRActionWrites> {
|
|
26
|
+
readonly Written: FSharpList<TriggerAction>;
|
|
27
|
+
readonly NotWritten: FSharpList<NotWrittenAction>;
|
|
28
|
+
constructor(Written: FSharpList<TriggerAction>, NotWritten: FSharpList<NotWrittenAction>) {
|
|
29
|
+
super();
|
|
30
|
+
this.Written = Written;
|
|
31
|
+
this.NotWritten = NotWritten;
|
|
57
32
|
}
|
|
58
33
|
}
|
|
59
34
|
|
|
35
|
+
export function CoreMRActionWrites_$reflection(): TypeInfo {
|
|
36
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRTriggerEnrichment.CoreMRActionWrites", [], CoreMRActionWrites, () => [["Written", list_type(TriggerAction_$reflection())], ["NotWritten", list_type(NotWrittenAction_$reflection())]]);
|
|
37
|
+
}
|
|
38
|
+
|
|
60
39
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* DO NOT call convertActionsToBaseDtos directly for CoreMR publishing — you'll miss
|
|
65
|
-
* trigger IDs from provenance.
|
|
66
|
-
*
|
|
67
|
-
* What it does:
|
|
68
|
-
* 1. Converts ALL supported action types via convertActionsToBaseDtos (Task, Alert, Problem, Treatment, Medset)
|
|
69
|
-
* 2. Enriches DTOs with triggerId/triggerActionId/formItemId from provenance
|
|
70
|
-
* 3. Enriches problem DTOs with chronic flag from trigger params
|
|
71
|
-
*
|
|
72
|
-
* If no provenance (hand-authored pathway) → returns base DTOs with zeros (safe fallback).
|
|
40
|
+
* The CoreMR write of each executed pathway action, in order: WRITTEN with the identity its origin states, or
|
|
41
|
+
* NOT WRITTEN with the reason (no CoreMR home — `convertActionToBaseDto` — or `Authored`).
|
|
42
|
+
* Production callers: f1-api `FormSpecService` (publish-preview, filled-form export).
|
|
73
43
|
*/
|
|
74
|
-
export function convertActionsForCoreMR(actions: FSharpList<
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
matchResult = 1;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
matchResult = 1;
|
|
89
|
-
}
|
|
90
|
-
switch (matchResult) {
|
|
91
|
-
case 0: {
|
|
92
|
-
const matchValue_1: FSharpResult$2_$union<CoreMRSourceMap, string> = fromString<CoreMRSourceMap>(uncurry2(Auto_generateBoxedDecoder_Z6670B51(CoreMRSourceMap_$reflection(), undefined, undefined)), p_1!.Payload);
|
|
93
|
-
if (matchValue_1.tag === /* Error */ 1) {
|
|
94
|
-
return baseDtos;
|
|
44
|
+
export function convertActionsForCoreMR(actions: FSharpList<ClinicalPathway_PathwayAction>): CoreMRActionWrites {
|
|
45
|
+
const outcomes: FSharpList<FSharpResult$2_$union<TriggerAction, NotWrittenAction>> = map<ClinicalPathway_PathwayAction, FSharpResult$2_$union<TriggerAction, NotWrittenAction>>((pa: ClinicalPathway_PathwayAction): FSharpResult$2_$union<TriggerAction, NotWrittenAction> => {
|
|
46
|
+
const matchValue: ActionWrite_$union = convertActionToBaseDto(pa.Action);
|
|
47
|
+
if (matchValue.tag === /* Written */ 0) {
|
|
48
|
+
const dto: TriggerAction = matchValue.fields[0];
|
|
49
|
+
const matchValue_1: ClinicalPathway_ActionOrigin_$union = pa.Origin;
|
|
50
|
+
if (matchValue_1.tag === /* Authored */ 0) {
|
|
51
|
+
return FSharpResult$2_Error<TriggerAction, NotWrittenAction>(new NotWrittenAction(dto.ActionType, "hand-authored: it names no CoreMR trigger action, so CoreMR cannot record it"));
|
|
95
52
|
}
|
|
96
53
|
else {
|
|
97
|
-
const
|
|
98
|
-
return
|
|
54
|
+
const origin: ClinicalPathway_CoreMRTriggerRef = matchValue_1.fields[0];
|
|
55
|
+
return FSharpResult$2_Ok<TriggerAction, NotWrittenAction>(new TriggerAction(dto.ActionType, origin.TriggerId, origin.ActionId, dto.CategoryId, dto.CategoryName, dto.Priority, dto.Description, dto.DateStart, dto.AllDay, dto.ScheduleEnd, dto.ProblemListId, origin.SourceItem, dto.TreatmentId, dto.ScheduleId, dto.ProviderId, dto.Signature, dto.SourceRelatedId, dto.RelatedType, dto.Chronic, dto.Severity, dto.Inflammation, dto.MedsetId, dto.PharmacyId));
|
|
99
56
|
}
|
|
100
57
|
}
|
|
101
|
-
|
|
102
|
-
return
|
|
103
|
-
|
|
58
|
+
else {
|
|
59
|
+
return FSharpResult$2_Error<TriggerAction, NotWrittenAction>(new NotWrittenAction(matchValue.fields[0], matchValue.fields[1]));
|
|
60
|
+
}
|
|
61
|
+
}, actions);
|
|
62
|
+
return new CoreMRActionWrites(choose<FSharpResult$2_$union<TriggerAction, NotWrittenAction>, TriggerAction>((_arg: FSharpResult$2_$union<TriggerAction, NotWrittenAction>): Option<TriggerAction> => {
|
|
63
|
+
if (_arg.tag === /* Error */ 1) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
return _arg.fields[0];
|
|
68
|
+
}
|
|
69
|
+
}, outcomes), choose<FSharpResult$2_$union<TriggerAction, NotWrittenAction>, NotWrittenAction>((_arg_1: FSharpResult$2_$union<TriggerAction, NotWrittenAction>): Option<NotWrittenAction> => {
|
|
70
|
+
if (_arg_1.tag === /* Ok */ 0) {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
return _arg_1.fields[0];
|
|
75
|
+
}
|
|
76
|
+
}, outcomes));
|
|
104
77
|
}
|
|
105
78
|
|
|
106
79
|
//# sourceMappingURL=CoreMRTriggerEnrichment.ts.map
|