reneco-advanced-input-module 0.0.1-beta.1 → 0.0.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/loader/cdn.js +1 -0
  2. package/loader/index.cjs.js +1 -0
  3. package/loader/index.d.ts +24 -0
  4. package/loader/index.es2017.js +1 -0
  5. package/loader/index.js +2 -0
  6. package/package.json +6 -2
  7. package/www/build/index.esm.js +2 -0
  8. package/www/build/index.esm.js.map +1 -0
  9. package/www/build/loader.esm.js.map +1 -0
  10. package/www/build/ocr-file-uploader.voice-input-module.entry.esm.js.map +1 -0
  11. package/www/build/p-52e59129.entry.js +2 -0
  12. package/www/build/p-52e59129.entry.js.map +1 -0
  13. package/www/build/p-DQuL1Twl.js +2 -0
  14. package/www/build/p-DQuL1Twl.js.map +1 -0
  15. package/www/build/p-jmc2yzBp.js +3 -0
  16. package/www/build/p-jmc2yzBp.js.map +1 -0
  17. package/www/build/voice-input-module.esm.js +2 -0
  18. package/www/build/voice-input-module.esm.js.map +1 -0
  19. package/www/build/voice-input-module.js +33 -0
  20. package/www/host.config.json +15 -0
  21. package/www/index.html +922 -0
  22. package/.editorconfig +0 -15
  23. package/.prettierrc.json +0 -13
  24. package/api-key-inject.js +0 -46
  25. package/env-config.js +0 -4
  26. package/inject-env.js +0 -20
  27. package/src/components/ocr-file-uploader/ocr-file-uploader.css +0 -26
  28. package/src/components/ocr-file-uploader/ocr-file-uploader.tsx +0 -100
  29. package/src/components/ocr-file-uploader/readme.md +0 -31
  30. package/src/components/voice-input-module/readme.md +0 -114
  31. package/src/components/voice-input-module/voice-input-module.css +0 -286
  32. package/src/components/voice-input-module/voice-input-module.tsx +0 -778
  33. package/src/components.d.ts +0 -158
  34. package/src/index.html +0 -1015
  35. package/src/index.ts +0 -12
  36. package/src/services/audio-recorder.service.ts +0 -74
  37. package/src/services/llm.service.ts +0 -221
  38. package/src/services/speech-to-text.service.ts +0 -70
  39. package/src/types/form-schema.types.ts +0 -78
  40. package/src/types/service-providers.types.ts +0 -22
  41. package/src/utils/schema-converter.ts +0 -494
  42. package/stencil.config.ts +0 -24
  43. package/tsconfig.json +0 -30
package/src/index.html DELETED
@@ -1,1015 +0,0 @@
1
- <!DOCTYPE html>
2
- <html dir="ltr" lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0" />
6
- <title>Voice Input Module Demo</title>
7
- <script type="module" src="/build/voice-input-module.esm.js"></script>
8
- <script nomodule src="/build/voice-input-module.js"></script>
9
- <style>
10
- body {
11
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
12
- margin: 0;
13
- padding: 2rem;
14
- background: #f8fafc;
15
- line-height: 1.6;
16
- }
17
- .container {
18
- max-width: 1000px;
19
- margin: 0 auto;
20
- background: white;
21
- padding: 2rem;
22
- border-radius: 1rem;
23
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
24
- }
25
- h1 {
26
- color: #1e293b;
27
- margin-bottom: 1rem;
28
- }
29
- textarea {
30
- width:800px;
31
- height:300px;
32
- }
33
- .description {
34
- color: #64748b;
35
- margin-bottom: 2rem;
36
- }
37
- .demo-section {
38
- margin: 2rem 0;
39
- padding: 1.5rem;
40
- background: #f8fafc;
41
- border-radius: 0.5rem;
42
- border: 1px solid #e2e8f0;
43
- }
44
- .demo-title {
45
- font-weight: 600;
46
- color: #374151;
47
- margin-bottom: 1rem;
48
- }
49
- .schema-example {
50
- background: #1e293b;
51
- color: #e2e8f0;
52
- padding: 1rem;
53
- border-radius: 0.375rem;
54
- font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
55
- font-size: 0.875rem;
56
- overflow-x: auto;
57
- margin: 1rem 0;
58
- }
59
- .result-display {
60
- margin-top: 1rem;
61
- padding: 1rem;
62
- background: #f0f9ff;
63
- border: 1px solid #0ea5e9;
64
- border-radius: 0.375rem;
65
- }
66
- .setup-note {
67
- background: #fef3c7;
68
- border: 1px solid #f59e0b;
69
- border-radius: 0.375rem;
70
- padding: 1rem;
71
- margin-bottom: 2rem;
72
- color: #92400e;
73
- }
74
-
75
- .toggle-section {
76
- margin: 1rem 0;
77
- }
78
-
79
- .toggle-button {
80
- background: #3b82f6;
81
- color: white;
82
- border: none;
83
- padding: 0.5rem 1rem;
84
- border-radius: 0.375rem;
85
- cursor: pointer;
86
- font-size: 0.875rem;
87
- display: flex;
88
- align-items: center;
89
- gap: 0.5rem;
90
- margin-bottom: 0.5rem;
91
- }
92
-
93
- .toggle-button:hover {
94
- background: #2563eb;
95
- }
96
-
97
- .toggle-content {
98
- display: none;
99
- padding: 1rem;
100
- background: white;
101
- border: 1px solid #e5e7eb;
102
- border-radius: 0.375rem;
103
- }
104
-
105
- .toggle-content.visible {
106
- display: block;
107
- }
108
-
109
- .editable-schema {
110
- min-height: 200px;
111
- padding: 1rem;
112
- border: 1px solid #d1d5db;
113
- border-radius: 0.375rem;
114
- font-family: 'Monaco', 'Menlo', monospace;
115
- font-size: 0.875rem;
116
- white-space: pre-wrap;
117
- background: #f9fafb;
118
- width: 100%;
119
- box-sizing: border-box;
120
- resize: vertical;
121
- }
122
-
123
- .editable-schema:focus {
124
- outline: none;
125
- border-color: #3b82f6;
126
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
127
- }
128
-
129
- .debug-title {
130
- font-weight: 600;
131
- color: #374151;
132
- margin-bottom: 0.5rem;
133
- }
134
-
135
- .debug-content {
136
- background: #1e293b;
137
- color: #e2e8f0;
138
- padding: 1rem;
139
- border-radius: 0.375rem;
140
- font-family: 'Monaco', 'Menlo', monospace;
141
- font-size: 0.875rem;
142
- overflow-x: auto;
143
- white-space: pre-wrap;
144
- }
145
- </style>
146
- </head>
147
- <body>
148
- <div class="container">
149
- <h1>Voice Input Module Component</h1>
150
- <div class="setup-note">
151
- <strong>Setup Required:</strong> This component requires OpenAI API key to be passed in options.
152
- </div>
153
-
154
- <div class="demo-section">
155
- <div class="demo-title">NG component</div>
156
- <voice-input-module
157
- id="demo3"
158
- form-json='{"ID":1003,"System_Name":"Adoption_End","Type":"Container","Settings":{"ID":1003,"Flex_Direction":"row","Flex_Wrap":"wrap","Align_Items":"flex-start","Field_Width":8,"Label_Translation_ID":{"fr":"Adoption_End","en":"Adoption_End"},"Description_Translation_ID":{"fr":"Adoption_End","en":"Adoption_End"},"Label":"Root"},"Children":[{"ID":2016,"System_Name":"Individual_ID","Type":"InputAutocomplete","Settings":{"Autocomplete_Start":0,"Operator":"contains","Field_Width":4,"Source_View":"Individuals","Source_Field":["Adult_ID","Egg_ID"],"Trigger_Min_Length":3,"Label_Translation_ID":{"fr":"Individual_ID","en":"Individual_ID"},"Description_Translation_ID":{"fr":"Individual_ID","en":"Individual_ID"},"Label":"Individual_ID"},"Children":[],"Is_Virtual":false,"Required":true},{"ID":2017,"System_Name":"ID","Type":"InputInteger","Settings":{"ID":1005,"Min":null,"Max":null,"Default_Value":null,"Unit":null,"Field_Width":4,"Label_Translation_ID":{"fr":"ID","en":"ID"},"Description_Translation_ID":{"fr":"ID","en":"ID"},"Label":"ID"},"Children":[],"Is_Virtual":false,"Required":true},{"ID":2018,"System_Name":"End_Of_Adoption_Cause","Type":"InputInteger","Settings":{"ID":1006,"Min":null,"Max":null,"Default_Value":null,"Unit":null,"Field_Width":4,"Label_Translation_ID":{"fr":"End_Of_Adoption_Cause","en":"End_Of_Adoption_Cause"},"Description_Translation_ID":{"fr":"End_Of_Adoption_Cause","en":"End_Of_Adoption_Cause"},"Label":"End_Of_Adoption_Cause"},"Children":[],"Is_Virtual":false,"Required":false},{"ID":2019,"System_Name":"New_Position","Type":"InputInteger","Settings":{"ID":1007,"Min":null,"Max":null,"Default_Value":null,"Unit":null,"Field_Width":4,"Label_Translation_ID":{"fr":"New_Position","en":"New_Position"},"Description_Translation_ID":{"fr":"New_Position","en":"New_Position"},"Label":"New_Position"},"Children":[],"Is_Virtual":false,"Required":true},{"ID":2020,"System_Name":"Comment","Type":"InputTextArea","Settings":{"ID":1005,"Min_Length":null,"Max_Length":null,"Default_Value":null,"Field_Width":4,"Label_Translation_ID":{"fr":"Comment","en":"Comment"},"Description_Translation_ID":{"fr":"Comment","en":"Comment"},"Label":"Comment"},"Children":[],"Is_Virtual":false,"Required":false},{"ID":2021,"System_Name":"Former_Adoptive_Father","Type":"InputTextArea","Settings":{"ID":1006,"Min_Length":null,"Max_Length":null,"Default_Value":null,"Field_Width":4,"Label_Translation_ID":{"fr":"Former Adoptive Father","en":"Former_Adoptive_Father"},"Description_Translation_ID":{"fr":"Former_Adoptive_Father","en":"Former_Adoptive_Father"},"Label":"Former_Adoptive_Father"},"Children":[],"Is_Virtual":false,"Required":false},{"ID":2022,"System_Name":"Former_Adoptive_Mother","Type":"InputTextArea","Settings":{"ID":1007,"Min_Length":null,"Max_Length":null,"Default_Value":null,"Field_Width":4,"Label_Translation_ID":{"fr":"Former_Adoptive_Mother","en":"Former_Adoptive_Mother"},"Description_Translation_ID":{"fr":"Former_Adoptive_Mother","en":"Former_Adoptive_Mother"},"Label":"Former_Adoptive_Mother"},"Children":[],"Is_Virtual":false,"Required":false},{"ID":2023,"System_Name":"Start_Date","Type":"InputDateTimePicker","Settings":{"ID":1003,"Format":null,"Default_Value":null,"Field_Width":4,"Is_Default_Value_Now":null,"Has_Future_Date":null,"Label_Translation_ID":{"fr":"Start Date","en":"Start Date"},"Description_Translation_ID":{"fr":"Start Date","en":"Start Date"},"Label":"Start_Date"},"Children":[],"Is_Virtual":false,"Required":true},{"ID":2024,"System_Name":"Test_Decimal","Type":"InputDecimal","Settings":{"ID":1003,"Min":null,"Max":null,"Default_Value":null,"Unit":null,"Field_Width":4,"Number_Of_Decimal":3,"Label_Translation_ID":{"fr":"Test_Decimal","en":"Test_Decimal"},"Description_Translation_ID":{"fr":"Test_Decimal","en":"Test_Decimal"},"Label":"Test_Decimal"},"Children":[],"Is_Virtual":false,"Required":false},{"ID":2025,"System_Name":"Test_Classap","Type":"InputClassification","Settings":{"ID":1003,"Start_Node_ID":222957,"Default_Value":null,"Is_Fullpath_Used":null,"Is_Multiple":null,"Field_Width":4,"Type":"thesaurus","Label_Translation_ID":{"fr":"Test_Classap","en":"Test_Classap"},"Description_Translation_ID":{"fr":"Test_Classap","en":"Test_Classap"},"Label":"Test_Classap"},"Children":["hello","world"],"Is_Virtual":false,"Required":false},{"ID":2026,"System_Name":"Test_Checkbox","Type":"InputCheckbox","Settings":{"ID":2,"Default_Value":null,"Field_Width":4,"Label_Translation_ID":{"fr":"Test_Checkbox","en":"Test_Checkbox"},"Description_Translation_ID":{"fr":"Test_Checkbox","en":"Test_Checkbox"},"Label":"Test_Checkbox"},"Children":[],"Is_Virtual":false,"Required":true},{"ID":2027,"System_Name":"Test_Translation_ID","Type":"InputTextTranslation","Settings":{"ID":2,"Min_Length":null,"Max_Length":null,"Default_Value":null,"Field_Width":4,"Label_Translation_ID":{"fr":"Test_Translation_ID","en":"Test_Translation_ID"},"Description_Translation_ID":{"fr":"Test_Translation_ID","en":"Test_Translation_ID"},"Label":"Test_Translation_ID"},"Children":[],"Is_Virtual":false,"Required":false}],"Is_Virtual":false,"Required":false,"Meta":{"ID":3,"System_Name":"Protocol"},"Object_Type":{"ID":81,"System_Name":"Adoption_End"}}'
159
- api-key="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"
160
- render-form="true"
161
- display-status="true"
162
- debug="true"
163
- context="ng"
164
- classification-root-url="http://localhost:8888"
165
- voice-or-ocr="both"
166
- >
167
- </voice-input-module>
168
- </div>
169
-
170
- <!-- NOTE STEP 1 -->
171
- <div class="demo-section">
172
- <div class="demo-title">Ecoll component</div>
173
- <voice-input-module
174
- id="demo2"
175
- form-json='[{"name":"general informations","label":"Informations générales de l&apos;événement","role":"main","class":"general-infos","items":[{"type":"number","name":"Event_ID","label":"ID","readonly":true,"disabled":false},{"type":"text","name":"Subject","label":"Sujet","readonly":true,"tooltip_value":"M19N08550","disabled":false},{"type":"date","name":"Start_Date","label":"Date de l&apos;événement","required":true,"disabled":false},{"type":"text","name":"TUse_Login","label":"Opérateur","readonly":true,"disabled":false}]},{"name":"eventdetails","label":"Détails de l&apos;événement","role":"event-details","class":"event-details","items":[{"name":"Sample_Status","label":"Statut","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":2014257,"StartNodeID":2014257,"lng":"fr","Reach":[2014257]},"multiple":false,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":true,"defaultValue":["2014257"]}},"dynprop":{"ID":1792,"Name":"Sample_Status","Label_EN":"Status","Label_FR":"Statut","Type":"thesaurus","Is_Required":true,"Is_Readonly":true,"Min_Value":0,"Default_Value":"2014257","External_Info":2014257,"Linked_Entity":"Sample","Linked_Field":"Sample_Status","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":true,"readonly":true,"editable":true,"extraction_field":false,"hide":false,"disabled":false},{"name":"Sample_Type","label":"Type d&apos;échantillon","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":"2014261","StartNodeID":"2014261","lng":"fr"},"multiple":false,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":false}},"dynprop":{"ID":1793,"Name":"Sample_Type","Label_EN":"Sample type","Label_FR":"Type d&apos;échantillon","Type":"thesaurus","Is_Required":true,"Is_Readonly":false,"Min_Value":0,"External_Info":"2014261","Linked_Entity":"Sample","Linked_Field":"Sample_Type","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":true,"readonly":false,"editable":true,"extraction_field":false,"hide":false,"disabled":false},{"name":"Context","label":"Contexte","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":"2014303","StartNodeID":"2014303","lng":"fr"},"multiple":false,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":false}},"dynprop":{"ID":1794,"Name":"Context","Label_EN":"Context","Label_FR":"Contexte","Type":"thesaurus","Is_Required":true,"Is_Readonly":false,"Min_Value":0,"External_Info":"2014303","Linked_Entity":"Sample","Linked_Field":"Context","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":true,"readonly":false,"editable":true,"extraction_field":false,"hide":false,"disabled":false},{"name":"Purpose","label":"But","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":"168027","StartNodeID":"168027","lng":"fr"},"multiple":false,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":false}},"dynprop":{"ID":1795,"Name":"Purpose","Label_EN":"Purpose","Label_FR":"But","Type":"thesaurus","Is_Required":true,"Is_Readonly":false,"Min_Value":0,"External_Info":"168027","Linked_Entity":"Sample","Linked_Field":"Purpose","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":true,"readonly":false,"editable":true,"extraction_field":false,"hide":false,"disabled":false},{"name":"Position","label":"Position","icon":"reneco-localtion","type":"position","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Position","language":"fr","options":{"IsDeprecated":false,"startNode":213847,"StartNodeID":213847,"lng":"fr","Reach":[213847]},"multiple":false,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":true,"defaultValue":["213847"]}},"dynprop":{"ID":1796,"Name":"Position","Label_EN":"Location","Label_FR":"Position","Type":"position","Is_Required":true,"Is_Readonly":true,"Min_Value":0,"Default_Value":"213847","External_Info":213847,"Linked_Entity":"Sample","Linked_Field":"Position","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":true,"readonly":true,"editable":true,"extraction_field":false,"hide":false,"disabled":false},{"name":"Analysis_Request","label":"Demande d&apos;analyse","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":"81768","StartNodeID":"81768","lng":"fr"},"multiple":true,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":false}},"dynprop":{"ID":1797,"Name":"Analysis_Request","Label_EN":"Analysis request","Label_FR":"Demande d&apos;analyse","Type":"thesaurus","Is_Required":true,"Is_Readonly":false,"Min_Value":0,"External_Info":"start_node_id=81768|multiple=true","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":true,"readonly":false,"editable":true,"extraction_field":false,"hide":false,"disabled":false},{"name":"Targeted_Pathogen","label":"Pathogène ciblé","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":"87227","StartNodeID":"87227","lng":"fr"},"multiple":true,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":false}},"dynprop":{"ID":1798,"Name":"Targeted_Pathogen","Label_EN":"Targeted pathogen","Label_FR":"Pathogène ciblé","Type":"thesaurus","Is_Required":false,"Is_Readonly":false,"Min_Value":0,"External_Info":"start_node_id=87227|multiple=true","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":false,"readonly":false,"editable":true,"extraction_field":false,"hide":false,"disabled":false},{"name":"Anatomy","label":"Anatomie","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":"78255","StartNodeID":"78255","lng":"fr"},"multiple":true,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":false}},"dynprop":{"ID":1799,"Name":"Anatomy","Label_EN":"Anatomy","Label_FR":"Anatomie","Type":"thesaurus","Is_Required":false,"Is_Readonly":false,"Min_Value":0,"External_Info":"start_node_id=78255|multiple=true","Required_When":"{input:Sample_Type|op:like|value:Organ}|{input:Sample_Type|op:like|value:FTA}|{input:Sample_Type|op:like|value:Swab}|{input:Sample_Type|op:like|value:Prepared slide}|{input:Sample_Type|op:=|value:DNA}|{input:Sample_Type|op:like|value:RNA}","Hide_When":"{input:Sample_Type|op:notlike|value:Organ}|{input:Sample_Type|op:notlike|value:FTA}|{input:Sample_Type|op:notlike|value:Swab}|{input:Sample_Type|op:notlike|value:Prepared slide}|{input:Sample_Type|op:notlike|value:Faeces}|{input:Sample_Type|op:!=|value:DNA}|{input:Sample_Type|op:notlike|value:RNA}|{input:Sample_Type|op:notlike|value:Blood}","Disabled_When":"{input:Sample_Type|op:like|value:Faeces}|{input:Sample_Type|op:like|value:Blood}","Default_Value_When":"{input:Sample_Type|op:like|value:Faeces|default_value:81126}|{input:Sample_Type|op:like|value:Blood|default_value:2017986}","Linked_Entity":"Sample","Linked_Field":"Anatomy","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":false,"readonly":false,"editable":true,"extraction_field":false,"required_when":[{"input":"Sample_Type","op":"like","value":"Organ"},{"input":"Sample_Type","op":"like","value":"FTA"},{"input":"Sample_Type","op":"like","value":"Swab"},{"input":"Sample_Type","op":"like","value":"Prepared slide"},{"input":"Sample_Type","op":"=","value":"DNA"},{"input":"Sample_Type","op":"like","value":"RNA"}],"hide_when":[{"input":"Sample_Type","op":"notlike","value":"Organ"},{"input":"Sample_Type","op":"notlike","value":"FTA"},{"input":"Sample_Type","op":"notlike","value":"Swab"},{"input":"Sample_Type","op":"notlike","value":"Prepared slide"},{"input":"Sample_Type","op":"notlike","value":"Faeces"},{"input":"Sample_Type","op":"!=","value":"DNA"},{"input":"Sample_Type","op":"notlike","value":"RNA"},{"input":"Sample_Type","op":"notlike","value":"Blood"}],"disabled_when":[{"input":"Sample_Type","op":"like","value":"Faeces"},{"input":"Sample_Type","op":"like","value":"Blood"}],"default_value_when":[{"input":"Sample_Type","op":"like","value":"Faeces","default_value":"81126"},{"input":"Sample_Type","op":"like","value":"Blood","default_value":"2017986"}],"hide":true,"disabled":false},{"name":"FTA_Card_Code","label":"Code de carte FTA","icon":"","type":"text","dynprop":{"ID":1800,"Name":"FTA_Card_Code","Label_EN":"FTA card code","Label_FR":"Code de carte FTA","Type":"string","Is_Required":false,"Is_Readonly":false,"Min_Value":0,"Required_When":"{input:Sample_Type|op:like|value:FTA}","Hide_When":"{input:Sample_Type|op:notlike|value:FTA}","Linked_Entity":"Sample","Linked_Field":"FTA_Card_Code","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":false,"readonly":false,"editable":true,"extraction_field":false,"required_when":[{"input":"Sample_Type","op":"like","value":"FTA"}],"hide_when":[{"input":"Sample_Type","op":"notlike","value":"FTA"}],"hide":true,"disabled":false},{"name":"FTA_Card_Position","label":"Emplacement sur la carte","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":"2014322","StartNodeID":"2014322","lng":"fr"},"multiple":false,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":false}},"dynprop":{"ID":1801,"Name":"FTA_Card_Position","Label_EN":"Position in card","Label_FR":"Emplacement sur la carte","Type":"thesaurus","Is_Required":false,"Is_Readonly":false,"Min_Value":0,"External_Info":"2014322","Required_When":"{input:Sample_Type|op:like|value:FTA}","Hide_When":"{input:Sample_Type|op:notlike|value:FTA}","Linked_Entity":"Sample","Linked_Field":"FTA_Card_Position","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":false,"readonly":false,"editable":true,"extraction_field":false,"required_when":[{"input":"Sample_Type","op":"like","value":"FTA"}],"hide_when":[{"input":"Sample_Type","op":"notlike","value":"FTA"}],"hide":true,"disabled":false},{"name":"Comment","label":"Notes","icon":"","type":"textarea","dynprop":{"ID":1802,"Name":"Comment","Label_EN":"Comment","Label_FR":"Notes","Type":"textarea","Is_Required":false,"Is_Readonly":false,"Min_Value":0,"Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":false,"readonly":false,"editable":true,"extraction_field":false,"hide":false,"disabled":false}]},{"Event_ID": null}]'
176
- api-key="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"
177
- render-form="true"
178
- display-status="true"
179
- debug="true"
180
- context="ecoll-veto"
181
- language="fr"
182
- classification-root-url="http://localhost:8888"
183
- >
184
- </voice-input-module>
185
- </div>
186
-
187
- <!-- NOTE STEP 2 -->
188
- <div class="demo-section">
189
- <div class="demo-title">Ecoteka component</div>
190
- <voice-input-module
191
- id="demo4"
192
- form-json='
193
- {
194
- "Children":[
195
- {
196
- "System_Name": "Diagnosis date",
197
- "Type": "date",
198
- "Required": "true",
199
- "Settings": {
200
- "Label": "Date de passage",
201
- "Default_Value": null
202
- }
203
- },
204
- {
205
- "System_Name": "Diagnosis type",
206
- "Type": "text",
207
- "Required": "true",
208
- "Settings": {
209
- "Label": "Type de diagnostic",
210
- "Default_Value": null
211
- }
212
- },
213
- {
214
- "System_Name": "Tree condition",
215
- "Type": "select",
216
- "Required": "true",
217
- "Settings": {
218
- "Label": "Etat physiologique",
219
- "Default_Value": null
220
- },
221
- "Children": [{
222
- "Label": "Bonne"
223
- },{
224
- "Label": "Moyenne"
225
- },{
226
- "Label": "Faible"
227
- }]
228
- },
229
- {
230
- "System_Name": "Tree vigor",
231
- "Type": "select",
232
- "Required": "false",
233
- "Settings": {
234
- "Label": "Vigueur du sujet",
235
- "Default_Value": null
236
- },
237
- "Children": [{
238
- "Label": "Sain"
239
- },{
240
- "Label": "Stressé"
241
- },{
242
- "Label": "Résilient"
243
- },{
244
- "Label": "En dépérissement irréversible"
245
- },{
246
- "Label": "En descente de cime"
247
- },{
248
- "Label": "En repli"
249
- },{
250
- "Label": "Non lisible"
251
- }]
252
- },
253
- {
254
- "System_Name": "Root condition",
255
- "Type": "select",
256
- "Required": "false",
257
- "Settings": {
258
- "Label": "Etat des racines",
259
- "Default_Value": null
260
- },
261
- "Children": [{
262
- "Label": "Racines saines"
263
- },{
264
- "Label": "Racines sectionnées (travaux)"
265
- },{
266
- "Label": "Pollution"
267
- },{
268
- "Label": "Dépôt de matériaux"
269
- },{
270
- "Label": "Tassement du sol"
271
- },{
272
- "Label": "Racines de surface dégradées"
273
- },{
274
- "Label": "Mauvais état non défini"
275
- }]
276
- },
277
- {
278
- "System_Name": "Collar condition",
279
- "Type": "select",
280
- "Required": "false",
281
- "Settings": {
282
- "Label": "Etat du collet",
283
- "Default_Value": null
284
- },
285
- "Children": [{
286
- "Label": "Arrachement"
287
- },{
288
- "Label": "Plaie légère"
289
- },{
290
- "Label": "Carpophore"
291
- },{
292
- "Label": "Cavité interne"
293
- },{
294
- "Label": "Cavité ouverte"
295
- },{
296
- "Label": "Chancre"
297
- },{
298
- "Label": "Corps étranger"
299
- }]
300
- },
301
- {
302
- "System_Name": "Trunk condition",
303
- "Type": "select",
304
- "Required": "false",
305
- "Settings": {
306
- "Label": "Etat du tronc",
307
- "Default_Value": null
308
- },
309
- "Children": [{
310
- "Label": "Fissure longitudinale"
311
- },{
312
- "Label": "Fissure tangentielle"
313
- },{
314
- "Label": "Blessure profonde (creux)"
315
- },{
316
- "Label": "Plaie de taille"
317
- },{
318
- "Label": "Bois mort en quantité anormale"
319
- },{
320
- "Label": "Brin à écorce incluse"
321
- }]
322
- },
323
- {
324
- "System_Name": "Crown condition",
325
- "Type": "select",
326
- "Required": "false",
327
- "Settings": {
328
- "Label": "Etat du houppier",
329
- "Default_Value": null
330
- },
331
- "Children": [{
332
- "Label": "Flambage"
333
- },{
334
- "Label": "Fil torse"
335
- },{
336
- "Label": "Foudroyé"
337
- },{
338
- "Label": "Fourche à écorce incluse"
339
- },{
340
- "Label": "Fourche ou axe à écorce incluse"
341
- },{
342
- "Label": "Instabilité"
343
- }]
344
- },
345
- {
346
- "System_Name": "Tree is dangerous",
347
- "Type": "checkbox",
348
- "Required": "false",
349
- "Settings": {
350
- "Label": "Arbre dangereux",
351
- "Default_Value": null
352
- }
353
- },
354
- {
355
- "System_Name": "Maintenance expectancy",
356
- "Type": "select",
357
- "Required": "false",
358
- "Settings": {
359
- "Label": "Esperance de maintient",
360
- "Default_Value": null
361
- },
362
- "Children": [{
363
- "Label": "Normale"
364
- },{
365
- "Label": "Acceptable"
366
- },{
367
- "Label": "Faible"
368
- },{
369
- "Label": "Très faible"
370
- },{
371
- "Label": "Aucune"
372
- },{
373
- "Label": "À définir"
374
- }]
375
- },
376
- {
377
- "System_Name": "Detailed diagnosis is recommended",
378
- "Type": "checkbox",
379
- "Required": "false",
380
- "Settings": {
381
- "Label": "Diagnostic approfondi recommande",
382
- "Default_Value": null
383
- }
384
- },
385
- {
386
- "System_Name": "Next diagnosis date recommendation",
387
- "Type": "select",
388
- "Required": "false",
389
- "Settings": {
390
- "Label": "Date recommandee pour le prochain diagnostic",
391
- "Default_Value": null
392
- },
393
- "Children": [{
394
- "Label": "Cette année"
395
- },{
396
- "Label": "Dans 2 ans"
397
- },{
398
- "Label": "Dans 3 ans"
399
- },{
400
- "Label": "Dans 5 ans"
401
- },{
402
- "Label": "Dans 10 ans"
403
- },{
404
- "Label": "Dans 15 ans"
405
- },{
406
- "Label": "Dans 20 ans"
407
- }]
408
- },
409
- {
410
- "System_Name": "Collar pathogen",
411
- "Type": "select",
412
- "Required": "false",
413
- "Settings": {
414
- "Label": "Pathogene collet",
415
- "Default_Value": null
416
- },
417
- "Children": [{
418
- "Label": "Maladie fongique non définie"
419
- },{
420
- "Label": "Criblure du laurier"
421
- },{
422
- "Label": "Armillaria mellea"
423
- },{
424
- "Label": "Armillaria ostoyae"
425
- },{
426
- "Label": "Armillaria tabescens"
427
- }]
428
- },
429
- {
430
- "System_Name": "Trunk pathogen",
431
- "Type": "select",
432
- "Required": "false",
433
- "Settings": {
434
- "Label": "Pathogene tronc",
435
- "Default_Value": null
436
- },
437
- "Children": [{
438
- "Label": "Maladie fongique non définie"
439
- },{
440
- "Label": "Criblure du laurier"
441
- },{
442
- "Label": "Armillaria mellea"
443
- },{
444
- "Label": "Armillaria ostoyae"
445
- },{
446
- "Label": "Armillaria tabescens"
447
- }]
448
- },
449
- {
450
- "System_Name": "Crown pathogen",
451
- "Type": "select",
452
- "Required": "false",
453
- "Settings": {
454
- "Label": "Pathogene houppier",
455
- "Default_Value": null
456
- },
457
- "Children": [{
458
- "Label": "Maladie fongique non définie"
459
- },{
460
- "Label": "Criblure du laurier"
461
- },{
462
- "Label": "Armillaria mellea"
463
- },{
464
- "Label": "Armillaria ostoyae"
465
- },{
466
- "Label": "Armillaria tabescens"
467
- }]
468
- },
469
- {
470
- "System_Name": "Undefined organ pathogen",
471
- "Type": "select",
472
- "Required": "false",
473
- "Settings": {
474
- "Label": "Pathogene organe non defini",
475
- "Default_Value": null
476
- },
477
- "Children": [{
478
- "Label": "Maladie fongique non définie"
479
- },{
480
- "Label": "Criblure du laurier"
481
- },{
482
- "Label": "Armillaria mellea"
483
- },{
484
- "Label": "Armillaria ostoyae"
485
- },{
486
- "Label": "Armillaria tabescens"
487
- }]
488
- },
489
- {
490
- "System_Name": "Note",
491
- "Type": "text",
492
- "Required": "false",
493
- "Settings": {
494
- "Label": "Remarque",
495
- "Default_Value": null
496
- }
497
- },
498
- {
499
- "System_Name": "Recommandation",
500
- "Type": "select",
501
- "Required": "false",
502
- "Settings": {
503
- "Label": "Recommandation",
504
- "Default_Value": null
505
- },
506
- "Children": [{
507
- "Label": "Plantation et suivi - Autres"
508
- },{
509
- "Label": "Taille d entretien"
510
- },{
511
- "Label": "Taille spécifique"
512
- },{
513
- "Label": "Taille sanitaire"
514
- },{
515
- "Label": "Taille de formation"
516
- },{
517
- "Label": "Taille - Autres"
518
- },{
519
- "Label": "Traitement - contrôle"
520
- }]
521
- }
522
- ]
523
- }'
524
- api-key="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"
525
- render-form="true"
526
- display-status="true"
527
- debug="true"
528
- context="ecoteka"
529
- language="fr"
530
- >
531
- </voice-input-module>
532
- </div>
533
-
534
- <div id="result2" class="result-display" style="display: none;">
535
- <strong>Form Filled Result:</strong>
536
- <pre id="result2-content"></pre>
537
- </div>
538
-
539
- <div class="demo-section">
540
- <div class="demo-title">Demo XML Conversion Utilities</div>
541
- <p>The component also provides XML ⟷ JSON conversion utilities:</p>
542
- <button onclick="testXmlConversion()">Test XML Conversion</button>
543
- <div id="xml-result" style="display: none; margin-top: 1rem;">
544
- <div class="schema-example" id="xml-content"></div>
545
- </div>
546
- </div>
547
-
548
-
549
- <div class="demo-section">
550
- <div class="demo-title">TRACK Legacy XML demo</div>
551
- <button onclick="testTrackXmlConversion()">Test TRACK Legacy XML Conversion</button>
552
- <div id="track-xml-result" style="display: none; margin-top: 1rem;">
553
- <div class="schema-example" id="track-xml-content"></div>
554
- </div>
555
- </div>
556
-
557
- </div>
558
-
559
- <script>
560
-
561
- // Handle form filled events
562
- document.getElementById('demo2').addEventListener('formFilled', (event) => {
563
- const result = event.detail;
564
- const resultDiv = document.getElementById('result2');
565
- const resultContent = document.getElementById('result2-content');
566
-
567
- resultContent.textContent = JSON.stringify(result, null, 2);
568
- resultDiv.style.display = 'block';
569
- console.log('Demo 2 Form Filled:', result);
570
-
571
- // Update debug information if available
572
- if (result.debugInfo) {
573
- const debugContent = document.getElementById('debug2');
574
- debugContent.innerHTML = `
575
- <div class="debug-title">Debug Information:</div>
576
- <pre class="debug-content">${JSON.stringify(result.debugInfo, null, 2)}</pre>
577
- `;
578
- }
579
- });
580
-
581
- document.getElementById('demo3').addEventListener('formFilled', (event) => {
582
- const result = event.detail;
583
- console.log('Raw Component Demo Form Filled:', result);
584
- });
585
-
586
- document.getElementById('demo4').addEventListener('formFilled', (event) => {
587
- const result = event.detail;
588
- console.log('Raw Component Demo Form Filled:', result);
589
- });
590
-
591
- //-----------------------------------
592
- // Test XML conversion
593
- function testXmlConversion() {
594
- console.log("testXmlConversion");
595
- const xmlForm = `
596
- <form title="Sample Form">
597
- <input name="name" type="text" title="Full Name" required="true" />
598
- <input name="age" type="number" title="Age" min="18" max="100" />
599
- <input name="subscribe" type="checkbox" title="Subscribe to Newsletter" />
600
- <select name="country" title="Country">
601
- <option value="us">United States</option>
602
- <option value="ca">Canada</option>
603
- <option value="uk">United Kingdom</option>
604
- </select>
605
- </form>
606
- `;
607
-
608
- const component = document.getElementById('demo2');
609
- try {
610
- component.convertXmlToJsonLegacy(xmlForm).then((jsonresult) => {
611
- const backToXml = component.convertJsonToXmlLegacy(jsonresult).then((xmlresult) => {
612
- const resultDiv = document.getElementById('xml-result');
613
- const xmlContent = document.getElementById('xml-content');
614
-
615
- xmlContent.innerHTML = `
616
- <strong>Original XML:</strong>
617
- ${xmlForm}
618
- <br />
619
-
620
- <strong>Converted to JSON:</strong>
621
- ${JSON.stringify(jsonresult, null, 2)}
622
- <br />
623
- <br />
624
-
625
- <strong>Back to XML:</strong>
626
- ${xmlresult}
627
- <br />
628
-
629
- <div>To Component Result:</div>
630
- <voice-input-module
631
- id="fromxml"
632
- form-json='${JSON.stringify(jsonresult, null, 2)}'
633
- api-key="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"
634
- render-form="true"
635
- display-status="true"
636
- debug="true"
637
- context="track"
638
- classification-root-url="http://localhost:8888"
639
- >
640
- </voice-input-module>
641
-
642
- <div id='toxmlaftervoice'></div>
643
- `;
644
-
645
- resultDiv.style.display = 'block';
646
-
647
- document.getElementById('fromxml').addEventListener('formFilled', (event) => {
648
- const result = event.detail;
649
- console.log('fromxml Demo Form Filled:', result);
650
-
651
- component.convertJsonToXmlLegacy(result.data).then((finalxmlresult) => {
652
- const finalxmlContent = document.getElementById('toxmlaftervoice');
653
- console.log("finalxmlContent", finalxmlContent);
654
-
655
- finalxmlContent.innerHTML = `
656
- ${finalxmlresult}
657
- `
658
- });
659
- });
660
- });
661
- });
662
-
663
- } catch (error) {
664
- alert('Conversion error: ' + error.message);
665
- }
666
- }
667
-
668
- // Handle recording state changes
669
- document.addEventListener('recordingStateChanged', (event) => {
670
- console.log('Recording state changed:', event.detail);
671
- });
672
-
673
- //-----------------------------------
674
- // TRACK Legacy XML conversion
675
-
676
- function testTrackXmlConversion() {
677
- // const xmlForm = `
678
- // <Xforms>
679
- // <Fields>
680
- // <ID>input_10802764</ID>
681
- // <TFie_PK_ID>1865032</TFie_PK_ID>
682
- // <TVal_PK_ID>10802764</TVal_PK_ID>
683
- // <TFIn_PK_ID>645682</TFIn_PK_ID>
684
- // <isForm>Form</isForm>
685
- // <LabelText>Poids</LabelText>
686
- // <SystemName>Weight</SystemName>
687
- // <CssStyle>cssHeader</CssStyle>
688
- // <ControlType>Header</ControlType>
689
- // <TFie_Fullpath> Poids</TFie_Fullpath>
690
- // <TVal_FK_Parent_ID>0</TVal_FK_Parent_ID>
691
- // </Fields>
692
- // <Fields>
693
- // <ID>input_10802765</ID>
694
- // <TFie_PK_ID>1865032</TFie_PK_ID>
695
- // <TVal_PK_ID>10802765</TVal_PK_ID>
696
- // <TFIn_PK_ID>645682</TFIn_PK_ID>
697
- // <isForm>Form Item</isForm>
698
- // <LabelText>Poids</LabelText>
699
- // <SystemName>Weight</SystemName>
700
- // <CssStyle>cssHeader</CssStyle>
701
- // <ControlType>Header</ControlType>
702
- // <TFie_Fullpath> Poids Poids</TFie_Fullpath>
703
- // <TVal_FK_Parent_ID>10802764</TVal_FK_Parent_ID>
704
- // </Fields>
705
- // <Fields>
706
- // <ID>input_10802766</ID>
707
- // <TFie_PK_ID>1865033</TFie_PK_ID>
708
- // <TVal_PK_ID>10802766</TVal_PK_ID>
709
- // <TFIn_PK_ID>645682</TFIn_PK_ID>
710
- // <Enabled>True</Enabled>
711
- // <isForm>Field</isForm>
712
- // <LabelText>Poids</LabelText>
713
- // <SystemName>Weight</SystemName>
714
- // <HelpText/>
715
- // <CssStyle>cssNormal</CssStyle>
716
- // <Value/>
717
- // <ControlType>RealPicker</ControlType>
718
- // <ValidationRequired>Required</ValidationRequired>
719
- // <ValidationMin>10</ValidationMin>
720
- // <ValidationMax>3500</ValidationMax>
721
- // <Mask/>
722
- // <TypeId>5519</TypeId>
723
- // <Unit>gramme(s)</Unit>
724
- // <TFie_Fullpath> Poids Poids</TFie_Fullpath>
725
- // <TVal_FK_Parent_ID>10802765</TVal_FK_Parent_ID>
726
- // <DefaultValue/>
727
- // </Fields>
728
- // <Fields>
729
- // <ID>input_10802767</ID>
730
- // <TFie_PK_ID>1865034</TFie_PK_ID>
731
- // <TVal_PK_ID>10802767</TVal_PK_ID>
732
- // <TFIn_PK_ID>645682</TFIn_PK_ID>
733
- // <Enabled>True</Enabled>
734
- // <isForm>Field</isForm>
735
- // <LabelText>Notes</LabelText>
736
- // <SystemName>Comment</SystemName>
737
- // <HelpText/>
738
- // <CssStyle>cssNormal</CssStyle>
739
- // <Value/>
740
- // <ControlType>Multiline</ControlType>
741
- // <ValidationRequired>Not Required</ValidationRequired>
742
- // <ValidationMin/>
743
- // <ValidationMax/>
744
- // <Mask/>
745
- // <TypeId>4231</TypeId>
746
- // <Unit/>
747
- // <TFie_Fullpath> Poids Notes</TFie_Fullpath>
748
- // <TVal_FK_Parent_ID>10802765</TVal_FK_Parent_ID>
749
- // <DefaultValue/>
750
- // </Fields>
751
- // </Xforms>`;
752
- const xmlForm = `
753
- <Xforms>
754
- <Fields>
755
- <ID>input_10804074</ID>
756
- <TFie_PK_ID>1892825</TFie_PK_ID>
757
- <TVal_PK_ID>10804074</TVal_PK_ID>
758
- <TFIn_PK_ID>645940</TFIn_PK_ID>
759
- <isForm>Form</isForm>
760
- <LabelText>Mort</LabelText>
761
- <SystemName>Death</SystemName>
762
- <CssStyle>cssHeader</CssStyle>
763
- <ControlType>Header</ControlType>
764
- <TFie_Fullpath> Mort</TFie_Fullpath>
765
- <TVal_FK_Parent_ID>0</TVal_FK_Parent_ID>
766
- </Fields>
767
- <Fields>
768
- <ID>input_10804075</ID>
769
- <TFie_PK_ID>1892825</TFie_PK_ID>
770
- <TVal_PK_ID>10804075</TVal_PK_ID>
771
- <TFIn_PK_ID>645940</TFIn_PK_ID>
772
- <isForm>Form Item</isForm>
773
- <LabelText>Mort</LabelText>
774
- <SystemName>Death</SystemName>
775
- <CssStyle>cssHeader</CssStyle>
776
- <ControlType>Header</ControlType>
777
- <TFie_Fullpath> Mort Mort</TFie_Fullpath>
778
- <TVal_FK_Parent_ID>10804074</TVal_FK_Parent_ID>
779
- </Fields>
780
- <Fields>
781
- <ID>input_10804076</ID>
782
- <TFie_PK_ID>1892826</TFie_PK_ID>
783
- <TVal_PK_ID>10804076</TVal_PK_ID>
784
- <TFIn_PK_ID>645940</TFIn_PK_ID>
785
- <Enabled>True</Enabled>
786
- <isForm>Field</isForm>
787
- <LabelText>Statut de sortie</LabelText>
788
- <SystemName>Exit status</SystemName>
789
- <HelpText></HelpText>
790
- <CssStyle>cssNormal</CssStyle>
791
- <Value>Death status>Dead</Value>
792
- <ControlType>ThesaurusPicker</ControlType>
793
- <ValidationRequired>Required</ValidationRequired>
794
- <ValidationMin></ValidationMin>
795
- <ValidationMax></ValidationMax>
796
- <Mask></Mask>
797
- <TypeId>2013199</TypeId>
798
- <Unit></Unit>
799
- <TFie_Fullpath> Mort Statut de sortie</TFie_Fullpath>
800
- <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
801
- <DefaultValue>Death status>Dead</DefaultValue>
802
- </Fields>
803
- <Fields>
804
- <ID>input_10804077</ID>
805
- <TFie_PK_ID>1892827</TFie_PK_ID>
806
- <TVal_PK_ID>10804077</TVal_PK_ID>
807
- <TFIn_PK_ID>645940</TFIn_PK_ID>
808
- <Enabled>True</Enabled>
809
- <isForm>Field</isForm>
810
- <LabelText>Date de sortie</LabelText>
811
- <SystemName>Exit date</SystemName>
812
- <HelpText></HelpText>
813
- <CssStyle>cssNormal</CssStyle>
814
- <Value></Value>
815
- <ControlType>DatePicker</ControlType>
816
- <ValidationRequired>Required</ValidationRequired>
817
- <ValidationMin></ValidationMin>
818
- <ValidationMax></ValidationMax>
819
- <Mask></Mask>
820
- <TypeId>4383</TypeId>
821
- <Unit></Unit>
822
- <TFie_Fullpath> Mort Date de sortie</TFie_Fullpath>
823
- <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
824
- <DefaultValue></DefaultValue>
825
- </Fields>
826
- <Fields>
827
- <ID>input_10804078</ID>
828
- <TFie_PK_ID>1892828</TFie_PK_ID>
829
- <TVal_PK_ID>10804078</TVal_PK_ID>
830
- <TFIn_PK_ID>645940</TFIn_PK_ID>
831
- <Enabled>False</Enabled>
832
- <isForm>Field</isForm>
833
- <LabelText>Position</LabelText>
834
- <SystemName>Location</SystemName>
835
- <HelpText></HelpText>
836
- <CssStyle>cssNormal</CssStyle>
837
- <Value></Value>
838
- <ControlType>TermPicker</ControlType>
839
- <ValidationRequired>Required</ValidationRequired>
840
- <ValidationMin></ValidationMin>
841
- <ValidationMax></ValidationMax>
842
- <Mask></Mask>
843
- <TypeId>80713</TypeId>
844
- <Unit></Unit>
845
- <TFie_Fullpath> Mort Position</TFie_Fullpath>
846
- <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
847
- <DefaultValue></DefaultValue>
848
- </Fields>
849
- <Fields>
850
- <ID>input_10804079</ID>
851
- <TFie_PK_ID>1892829</TFie_PK_ID>
852
- <TVal_PK_ID>10804079</TVal_PK_ID>
853
- <TFIn_PK_ID>645940</TFIn_PK_ID>
854
- <Enabled>True</Enabled>
855
- <isForm>Field</isForm>
856
- <LabelText>Type de mort</LabelText>
857
- <SystemName>Death type</SystemName>
858
- <HelpText></HelpText>
859
- <CssStyle>cssNormal</CssStyle>
860
- <Value></Value>
861
- <ControlType>ThesaurusPicker</ControlType>
862
- <ValidationRequired>Required</ValidationRequired>
863
- <ValidationMin></ValidationMin>
864
- <ValidationMax></ValidationMax>
865
- <Mask></Mask>
866
- <TypeId>167303</TypeId>
867
- <Unit></Unit>
868
- <TFie_Fullpath> Mort Type de mort</TFie_Fullpath>
869
- <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
870
- <DefaultValue></DefaultValue>
871
- </Fields>
872
- <Fields>
873
- <ID>input_10804080</ID>
874
- <TFie_PK_ID>1892830</TFie_PK_ID>
875
- <TVal_PK_ID>10804080</TVal_PK_ID>
876
- <TFIn_PK_ID>645940</TFIn_PK_ID>
877
- <Enabled>True</Enabled>
878
- <isForm>Field</isForm>
879
- <LabelText>Poids</LabelText>
880
- <SystemName>Weight</SystemName>
881
- <HelpText></HelpText>
882
- <CssStyle>cssNormal</CssStyle>
883
- <Value></Value>
884
- <ControlType>RealPicker</ControlType>
885
- <ValidationRequired>Not Required</ValidationRequired>
886
- <ValidationMin>10</ValidationMin>
887
- <ValidationMax>3500</ValidationMax>
888
- <Mask></Mask>
889
- <TypeId>5519</TypeId>
890
- <Unit>gramme(s)</Unit>
891
- <TFie_Fullpath> Mort Poids</TFie_Fullpath>
892
- <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
893
- <DefaultValue></DefaultValue>
894
- </Fields>
895
- <Fields>
896
- <ID>input_10804081</ID>
897
- <TFie_PK_ID>1892831</TFie_PK_ID>
898
- <TVal_PK_ID>10804081</TVal_PK_ID>
899
- <TFIn_PK_ID>645940</TFIn_PK_ID>
900
- <Enabled>False</Enabled>
901
- <isForm>Field</isForm>
902
- <LabelText>Sentinelle</LabelText>
903
- <SystemName>Sentinel</SystemName>
904
- <HelpText></HelpText>
905
- <CssStyle>cssNormal</CssStyle>
906
- <Value>Yes/No>No</Value>
907
- <ControlType>ThesaurusPicker</ControlType>
908
- <ValidationRequired>Required</ValidationRequired>
909
- <ValidationMin></ValidationMin>
910
- <ValidationMax></ValidationMax>
911
- <Mask></Mask>
912
- <TypeId>167278</TypeId>
913
- <Unit></Unit>
914
- <TFie_Fullpath> Mort Sentinelle</TFie_Fullpath>
915
- <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
916
- <DefaultValue>Yes/No>No</DefaultValue>
917
- </Fields>
918
- <Fields>
919
- <ID>input_10804082</ID>
920
- <TFie_PK_ID>1892832</TFie_PK_ID>
921
- <TVal_PK_ID>10804082</TVal_PK_ID>
922
- <TFIn_PK_ID>645940</TFIn_PK_ID>
923
- <Enabled>True</Enabled>
924
- <isForm>Field</isForm>
925
- <LabelText>Notes</LabelText>
926
- <SystemName>Comment</SystemName>
927
- <HelpText></HelpText>
928
- <CssStyle>cssNormal</CssStyle>
929
- <Value></Value>
930
- <ControlType>Multiline</ControlType>
931
- <ValidationRequired>Not Required</ValidationRequired>
932
- <ValidationMin></ValidationMin>
933
- <ValidationMax></ValidationMax>
934
- <Mask></Mask>
935
- <TypeId>4231</TypeId>
936
- <Unit></Unit>
937
- <TFie_Fullpath> Mort Notes</TFie_Fullpath>
938
- <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
939
- <DefaultValue></DefaultValue>
940
- </Fields>
941
- </Xforms>
942
- `;
943
-
944
- const component = document.getElementById('demo2');
945
- try {
946
- component.convertXmlToJson(xmlForm).then((jsonresult) => {
947
- const jsonresultsaved = JSON.parse(JSON.stringify(jsonresult));
948
- const jsonresultSTR = JSON.stringify(jsonresult, null, 2).replace("'", "");
949
- const backToXml = component.convertJsonToXml(jsonresult).then((xmlresult) => {
950
- const resultDiv = document.getElementById('track-xml-result');
951
- const xmlContent = document.getElementById('track-xml-content');
952
-
953
- xmlContent.innerHTML = `
954
- <strong>Original XML:</strong>
955
- <br />
956
- <textarea>
957
- ${xmlForm}
958
- </textarea>
959
- <br />
960
-
961
- <strong>Converted to JSON:</strong>
962
- ${jsonresultSTR}
963
- <br />
964
- <br />
965
-
966
- <strong>Back to XML:</strong>
967
- <br />
968
- <textarea>
969
- ${xmlresult}
970
- </textarea>
971
- <br />
972
-
973
- <div>To Component Result:</div>
974
- <voice-input-module
975
- id="fromxml"
976
- form-json='${jsonresultSTR}'
977
- api-key="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"
978
- render-form="true"
979
- display-status="true"
980
- debug="true"
981
- context="track"
982
- language="fr"
983
- classification-root-url="http://localhost:8888"
984
- >
985
- </voice-input-module>
986
- <br/><br/>
987
- <textarea id='toxmlaftervoice'></textarea>
988
- `;
989
-
990
- resultDiv.style.display = 'block';
991
-
992
- document.getElementById('fromxml').addEventListener('formFilled', (event) => {
993
- const result = event.detail;
994
- console.log('fromxml Demo Form Filled:', result);
995
-
996
- component.convertJsonToXml(result.data).then((finalxmlresult) => {
997
- const finalxmlContent = document.getElementById('toxmlaftervoice');
998
- console.log("finalxmlContent", finalxmlContent);
999
-
1000
- finalxmlContent.innerHTML = `
1001
- ${finalxmlresult}
1002
- `
1003
- });
1004
- });
1005
- });
1006
- });
1007
-
1008
- } catch (error) {
1009
- alert('Conversion error: ' + error.message);
1010
- }
1011
- }
1012
-
1013
- </script>
1014
- </body>
1015
- </html>