@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
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { FSharpResult$2_Error, FSharpResult$2_$union, FSharpResult$2_Ok } from "@fable-org/fable-library-js/Result.js";
|
|
2
|
+
import { Record } from "@fable-org/fable-library-js/Types.js";
|
|
3
|
+
import { defaultArg, bind, map, value as value_2, Option } from "@fable-org/fable-library-js/Option.js";
|
|
4
|
+
import { tryFind, ofList, empty, FSharpMap } from "@fable-org/fable-library-js/Map.js";
|
|
5
|
+
import { EncounterTypes, TemplateItem, ItemTrigger, ReleaseAvailability_readList, ReleaseAvailability_statedTrue, TemplateForm, FormTemplateServed, ScoringCatalog, ReleaseAvailability$1_$reflection, InstrumentMapEntry_$reflection, ElementTypeEntry_$reflection, ReleaseAvailability$1_$union, InstrumentMapEntry, ElementTypeEntry } from "../../CorEMR/FormTemplateDecoder.js";
|
|
6
|
+
import { collect, cons, empty as empty_2, isEmpty, filter, map as map_1, singleton, FSharpList } from "@fable-org/fable-library-js/List.js";
|
|
7
|
+
import { Trigger_$reflection, Trigger } from "../../../../vye-os-contracts-fs/src/CoreMR/FormTemplate.js";
|
|
8
|
+
import { int32ToString, comparePrimitives, IComparable, IEquatable } from "@fable-org/fable-library-js/Util.js";
|
|
9
|
+
import { record_type, list_type, option_type, class_type, string_type, TypeInfo } from "@fable-org/fable-library-js/Reflection.js";
|
|
10
|
+
import { int32 } from "@fable-org/fable-library-js/Int32.js";
|
|
11
|
+
import { toCoreMRFormData, mapFormClassification } from "./CorEMRTemplateMapper.js";
|
|
12
|
+
import { Shared_FieldKey, Spec_FieldType_$union, Spec_FormSpec$1, Spec_FormClassification_$union } from "../../../FormSpec.js";
|
|
13
|
+
import { CoreMRFormData } from "../../CorEMR/CoreMRTypes.js";
|
|
14
|
+
import { empty as empty_1, singleton as singleton_1, append, delay, toList } from "@fable-org/fable-library-js/Seq.js";
|
|
15
|
+
import { CoreMRSourceMap_$reflection, CoreMRStepMap, CoreMRFieldAnchor, CoreMRConversionResult, convertWithMap, CoreMRSourceMap, ListMetadata } from "./CoreMRSourceMap.js";
|
|
16
|
+
import { convertFormTriggersToPathway } from "../../CorEMR/CoreMRPathwayMapper.js";
|
|
17
|
+
import { ImportOrigin, ImportOriginModule_provenance } from "../../../Provenance.js";
|
|
18
|
+
import { Auto_generateBoxedEncoder_437914C6, toString } from "../../../../Thoth.Json/packages/Thoth.Json/Encode.js";
|
|
19
|
+
|
|
20
|
+
function ok<$a, $b>(v: $a): FSharpResult$2_$union<$a, $b> {
|
|
21
|
+
return FSharpResult$2_Ok<$a, $b>(v);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function err<$a, $b>(v: $a): FSharpResult$2_$union<$b, $a> {
|
|
25
|
+
return FSharpResult$2_Error<$b, $a>(v);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export class ServedFacts extends Record implements IEquatable<ServedFacts>, IComparable<ServedFacts> {
|
|
29
|
+
readonly ElementTypes: Option<FSharpMap<string, ElementTypeEntry>>;
|
|
30
|
+
readonly Instruments: FSharpMap<string, InstrumentMapEntry>;
|
|
31
|
+
readonly Triggers: ReleaseAvailability$1_$union<FSharpList<Trigger>>;
|
|
32
|
+
constructor(ElementTypes: Option<FSharpMap<string, ElementTypeEntry>>, Instruments: FSharpMap<string, InstrumentMapEntry>, Triggers: ReleaseAvailability$1_$union<FSharpList<Trigger>>) {
|
|
33
|
+
super();
|
|
34
|
+
this.ElementTypes = ElementTypes;
|
|
35
|
+
this.Instruments = Instruments;
|
|
36
|
+
this.Triggers = Triggers;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export function ServedFacts_$reflection(): TypeInfo {
|
|
41
|
+
return record_type("FormSpec.Integrations.CorEMR.CoreMRImportPipeline.ServedFacts", [], ServedFacts, () => [["ElementTypes", option_type(class_type("Microsoft.FSharp.Collections.FSharpMap`2", [string_type, ElementTypeEntry_$reflection()]))], ["Instruments", class_type("Microsoft.FSharp.Collections.FSharpMap`2", [string_type, InstrumentMapEntry_$reflection()])], ["Triggers", ReleaseAvailability$1_$reflection(list_type(Trigger_$reflection()))]]);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The instrument map conduit states, keyed by form id. ⛔ A release that states no scoring (9704) yields an
|
|
46
|
+
* empty map — the reason travels on the catalog's `Scoring`, not here.
|
|
47
|
+
*/
|
|
48
|
+
export function instrumentsOfScoring(scoring: ReleaseAvailability$1_$union<ScoringCatalog>): FSharpMap<string, InstrumentMapEntry> {
|
|
49
|
+
switch (scoring.tag) {
|
|
50
|
+
case /* NotInRelease */ 1:
|
|
51
|
+
case /* NotReadYet */ 2:
|
|
52
|
+
return empty<string, InstrumentMapEntry>({
|
|
53
|
+
Compare: comparePrimitives,
|
|
54
|
+
});
|
|
55
|
+
default:
|
|
56
|
+
return scoring.fields[0].InstrumentMap;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* From ONE served form template — its own vocabulary entries, at most its own instrument entry, its triggers.
|
|
62
|
+
* ⭐ Equivalent for THIS form: `classificationOf` looks up only `string form.FormId`, and the converter
|
|
63
|
+
* looks up only the codes this form's items carry, which is exactly what conduit sent.
|
|
64
|
+
*/
|
|
65
|
+
export function ServedFactsModule_ofServed(served: FormTemplateServed): ServedFacts {
|
|
66
|
+
let matchValue: ReleaseAvailability$1_$union<Option<InstrumentMapEntry>>, entry: InstrumentMapEntry;
|
|
67
|
+
return new ServedFacts(served.ElementTypes, (matchValue = served.Instrument, (matchValue.tag === /* NotInRelease */ 1) ? empty<string, InstrumentMapEntry>({
|
|
68
|
+
Compare: comparePrimitives,
|
|
69
|
+
}) : ((matchValue.tag === /* NotReadYet */ 2) ? empty<string, InstrumentMapEntry>({
|
|
70
|
+
Compare: comparePrimitives,
|
|
71
|
+
}) : ((matchValue.fields[0] == null) ? empty<string, InstrumentMapEntry>({
|
|
72
|
+
Compare: comparePrimitives,
|
|
73
|
+
}) : ((entry = value_2(matchValue.fields[0]), ofList<string, InstrumentMapEntry>(singleton([int32ToString(served.Form.FormId), entry] as [string, InstrumentMapEntry]), {
|
|
74
|
+
Compare: comparePrimitives,
|
|
75
|
+
})))))), served.TriggerReads);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* A form's classification: intake, a clinical instrument (CoreMR declares a `form_scores` row for it),
|
|
80
|
+
* or general. ⭐ Extracted from `runPipeline` unchanged so the rule has a test of its own
|
|
81
|
+
* (`FormSpec.FS.Tests` → "CoreMR classification"); the import baseline proves the extraction changed no byte.
|
|
82
|
+
*/
|
|
83
|
+
export function classificationOf(instruments: FSharpMap<string, InstrumentMapEntry>, form: TemplateForm): Spec_FormClassification_$union {
|
|
84
|
+
const preferredMapping: Option<InstrumentMapEntry> = tryFind<string, InstrumentMapEntry>(int32ToString(form.FormId), instruments);
|
|
85
|
+
return mapFormClassification(form.IsIntake ? "intake" : ((preferredMapping != null) ? "clinical_instrument" : undefined), map<InstrumentMapEntry, string>((m: InstrumentMapEntry): string => m.InstrumentType, preferredMapping), bind<InstrumentMapEntry, int32>((m_1: InstrumentMapEntry): Option<int32> => m_1.MaxScore, preferredMapping));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* ⭐ `origin` is REQUIRED — the tenant and database this import is read FROM. ⛔ This is Studio's OWN
|
|
90
|
+
* provenance builder, a SECOND one beside `CoreMRSourceMap.convertWithMapAndProvenance`; both now take
|
|
91
|
+
* an origin, so neither can produce a blueprint that cannot be resolved back.
|
|
92
|
+
* ⭐ `importedAt` — the import's ONE clock read, taken by the CALLER at its edge (CTA-013): a pathway's
|
|
93
|
+
* `CreatedDate`. ⛔ Nothing below reads a clock.
|
|
94
|
+
*/
|
|
95
|
+
export function runPipeline(origin: ImportOrigin, importedAt: Date, facts: ServedFacts, form: TemplateForm): FSharpResult$2_$union<[Spec_FormSpec$1<Spec_FieldType_$union>, CoreMRSourceMap], FSharpList<string>> {
|
|
96
|
+
let enc: EncounterTypes, bind$0040: Spec_FormSpec$1<Spec_FieldType_$union>;
|
|
97
|
+
const formData: CoreMRFormData = toCoreMRFormData(defaultArg(facts.ElementTypes, empty<string, ElementTypeEntry>({
|
|
98
|
+
Compare: comparePrimitives,
|
|
99
|
+
})), form);
|
|
100
|
+
const listMetadata: ListMetadata = new ListMetadata(form.Scoring, (enc = form.EncounterTypes, toList<string>(delay<string>((): Iterable<string> => append<string>(enc.Medical ? singleton_1<string>("medical") : empty_1<string>(), delay<string>((): Iterable<string> => append<string>(enc.Mental ? singleton_1<string>("mental") : empty_1<string>(), delay<string>((): Iterable<string> => append<string>(enc.Dental ? singleton_1<string>("dental") : empty_1<string>(), delay<string>((): Iterable<string> => (ReleaseAvailability_statedTrue(enc.Other) ? singleton_1<string>("other") : empty_1<string>())))))))))), form.Usage, classificationOf(facts.Instruments, form));
|
|
101
|
+
const triggersByItemId: FSharpMap<int32, FSharpList<ItemTrigger>> = ofList<int32, FSharpList<ItemTrigger>>(map_1<TemplateItem, [int32, FSharpList<ItemTrigger>]>((i_1: TemplateItem): [int32, FSharpList<ItemTrigger>] => ([i_1.ItemId, ReleaseAvailability_readList<ItemTrigger>(i_1.Triggers)] as [int32, FSharpList<ItemTrigger>]), filter<TemplateItem>((i: TemplateItem): boolean => !isEmpty(ReleaseAvailability_readList<ItemTrigger>(i.Triggers)), form.Items)), {
|
|
102
|
+
Compare: comparePrimitives,
|
|
103
|
+
});
|
|
104
|
+
try {
|
|
105
|
+
const result: CoreMRConversionResult = convertWithMap(formData, listMetadata, undefined, triggersByItemId);
|
|
106
|
+
return ok<[Spec_FormSpec$1<Spec_FieldType_$union>, CoreMRSourceMap], FSharpList<string>>([(bind$0040 = result.FormSpec, 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.VendorScore, bind$0040.AssociatedCodes, bind$0040.RequiresReview, bind$0040.RequiresReviewAndApproval, convertFormTriggersToPathway(importedAt, form, facts.Triggers, ofList<int32, Shared_FieldKey>(map_1<CoreMRFieldAnchor, [int32, Shared_FieldKey]>((anchor: CoreMRFieldAnchor): [int32, Shared_FieldKey] => ([anchor.ItemId, anchor.FieldKey] as [int32, Shared_FieldKey]), collect<CoreMRStepMap, CoreMRFieldAnchor>((step: CoreMRStepMap): FSharpList<CoreMRFieldAnchor> => step.FieldAnchors, result.SourceMap.Steps)), {
|
|
107
|
+
Compare: comparePrimitives,
|
|
108
|
+
})), bind$0040.Lifecycle, bind$0040.FilledMeta, bind$0040.CustomData, ImportOriginModule_provenance(origin, toString(0, Auto_generateBoxedEncoder_437914C6(CoreMRSourceMap_$reflection(), undefined, undefined, undefined)(result.SourceMap))), result.SourceMap.Classification)), result.SourceMap] as [Spec_FormSpec$1<Spec_FieldType_$union>, CoreMRSourceMap]);
|
|
109
|
+
}
|
|
110
|
+
catch (ex: any) {
|
|
111
|
+
return err<FSharpList<string>, [Spec_FormSpec$1<Spec_FieldType_$union>, CoreMRSourceMap]>(cons("CorEMR conversion failed: " + ex.message, (ex.stack == null) ? empty_2<string>() : singleton(" Stack: " + ex.stack)));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
//# sourceMappingURL=CoreMRImportPipeline.ts.map
|