GSaha567/seq_level_training_data
052
1text,length,is_long_context,metric_val,label_metric2"<%@ Page Title="""" Language=""C#"" MasterPageFile=""~/Views/Shared/Site.MVC.Master"" Inherits=""System.Web.Mvc.ViewPage<Trifolia.Web.Models.TemplateManagement.EditModel>"" %>3 4<asp:Content ID=""Content2"" ContentPlaceHolderID=""HeadContent"" runat=""server"">5 <link rel=""stylesheet"" type=""text/css"" href=""/Styles/templateEditor.css"" />6</asp:Content>7 8<asp:Content ID=""Content3"" ContentPlaceHolderID=""KeyboardShortcuts"" runat=""server"">9 <div class=""row"">10 <div class=""col-md-2"">Ctrl + S</div>11 <div class=""col-md-10"">Save and Continue</div>12 </div>13 <div class=""row"">14 <div class=""col-md-2"">Alt + M</div>15 <div class=""col-md-10"">Template/Profile Tab</div>16 </div>17 <div class=""row"">18 <div class=""col-md-2"">Alt + O</div>19 <div class=""col-md-10"">Constraints Tab</div>20 </div>21 <div class=""row"">22 <div class=""col-md-2"">Alt + P</div>23 <div class=""col-md-10"">Preview Tab</div>24 </div>25 <div class=""row"">26 <div class=""col-md-2"">Alt + L</div>27 <div class=""col-md-10"">Validation Tab</div>28 </div>29 <div class=""row"">30 <div class=""col-md-2"">Alt + A</div>31 <div class=""col-md-10"">Analyst View Mode</div>32 </div>33 <div class=""row"">34 <div class=""col-md-2"">Alt + I</div>35 <div class=""col-md-10"">Editor View Mode</div>36 </div>37 <div class=""row"">38 <div class=""col-md-2"">Alt + G</div>39 <div class=""col-md-10"">Engineer View Mode</div>40 </div>41</asp:Content>42 43<asp:Content ID=""Content1"" ContentPlaceHolderID=""MainContent"" runat=""server"">44 <script type=""text/javascript"" src=""/Scripts/lib/jquery/jquery.cookie.js""></script>45 <script type=""text/javascript"" src=""/Scripts/utils.js?<%= ViewContext.Controller.GetType().Assembly.GetName().Version %>""></script>46 <script type=""text/javascript"" src=""/Scripts/TemplateEdit/templateEditGlobals.js?<%= ViewContext.Controller.GetType().Assembly.GetName().Version %>""></script>47 <script type=""text/javascript"" src=""/Scripts/TemplateEdit/templateEditViewModel.js?<%= ViewContext.Controller.GetType().Assembly.GetName().Version %>""></script>48 <script type=""text/javascript"" src=""/Scripts/TemplateEdit/templateEditModels.js?<%= ViewContext.Controller.GetType().Assembly.GetName().Version %>""></script>49 50 <div id=""TemplateEditor"">51 <h3><span data-bind=""if: IsModified()"">*</span> <span data-bind=""text: Template().Name""></span></h3>52 <h4><span data-bind=""text: Template().Oid""></span></h4>53 54 <!-- ko if: Template().Locked -->55 <div class=""alert alert-warning"" style=""margin-top: 5px;"">This template/profile is locked. <a href=""#"" data-bind=""click: function () { Template().Locked(false); }"">Unlock the template/profile</a> to edit.</div>56 <!-- /ko -->57 58 <div style=""float: left; width: 100%; padding-bottom: 60px; padding-top: 10px;"">59 <ul class=""nav nav-tabs"" id=""templateEditorTabs"">60 <li class=""active""><a href=""#template"" data-toggle=""tab"">Template/Profile</a></li>61 <!-- ko if: DisableConstraints() -->62 <li class=""disabled""><a>Constraints</a></li>63 <!-- /ko -->64 <!-- ko if: !DisableConstraints() -->65 <li data-bind=""click: function () { setTimeout(ApplyWidths, 200); }""><a id=""constraintsTabButton"" href=""#constraints"" data-toggle=""tab"">Constraints</a></li>66 <!-- /ko -->67 <li><a href=""#preview"" data-toggle=""tab"">Preview</a></li>68 <li>69 <a href=""#validation"" data-toggle=""tab"">70 Validation 71 <!-- ko if: Template().ValidationErrors().length > 0 -->72 (<span data-bind=""text: Template().ValidationErrors().length""></span>)73 <!-- /ko -->74 </a>75 </li>76 </ul>77 78 <div class=""tab-content"">79 <!-- Template/Profile Meta Data-->80 <div id=""template"" class=""tab-pane active"" data-bind=""with: Template, validationOptions: { messagesOnModified: false, insertMessages: false }"">81 <div class=""row"">82 <div class=""col-md-8"">83 84 <div data-bind=""if: !Id()"">85 <div class=""input-group implementation-guide-field"">86 <div class=""input-group-addon"">87 <span data-bind=""html: Trifolia.Web.TemplateEditorMetaDataImplementationGuideField""></span>88 <div data-bind=""helpTooltip: { title: Trifolia.Web.TemplateEditorImplementationGuideTooltip, placement: 'right' }""></div>89 </div>90 <select id=""igCombo"" class=""form-control"" data-bind=""options: $parent.ImplementationGuides, optionsText: 'Name', optionsValue: 'Id', optionsCaption: 'Select', value: OwningImplementationGuideId, disable: DisableTypeFields, event: { change: $parent.ImplementationGuideChanged }"">91 </select>92 </div>93 <span class=""templateMetaDataError"" data-bind=""validationMessage: OwningImplementationGuideId""></span>94 95 <!-- ko if: OwningImplementationGuideId() -->96 <div class=""input-group template-type-field"">97 <div class=""input-group-addon"">98 <span data-bind=""html: Trifolia.Web.TemplateEditorMetaDataTemplateTypeField""></span>99 <div data-bind=""helpTooltip: { title: Trifolia.Web.TemplateEditorTemplateTypeTooltip, placement: 'right' }""></div>100 </div>101 <select id=""templateTypeId"" class=""form-control"" data-bind=""options: $parent.TemplateTypes, optionsText: 'FullName', optionsValue: 'Id', optionsCaption: 'Select', value: TemplateTypeId, disable: DisableTypeFields, event: { change: $parent.TemplateTypeChanged }""></select>102 </div>103 <span class=""templateMetaDataError"" data-bind=""validationMessage: TemplateTypeId""></span>104 <!-- /ko -->105 106 <!-- ko if: TemplateTypeId() -->107 <div class=""input-group applies-to-field"" style=""width: 100%"">108 <div class=""input-group-addon"">109 <span data-bind=""html: Trifolia.Web.TemplateEditorMetaDataAppliesToField""></span>110 <div data-bind=""helpTooltip: { title: Trifolia.Web.TemplateEditorAppliesToTooltip, placement: 'right' }""></div>111 </div>112 <input type=""text"" class=""form-control"" data-bind=""value: PrimaryContext"" style=""width: 50%;"" readonly=""readonly"" /> 113 <input type=""text"" class=""form-control"" data-bind=""value: PrimaryContextType"" style=""width: 50%;"" readonly=""readonly"" /> 114 <div class=""input-group-btn"">115 <button type=""button"" class=""btn btn-primary"" data-bind=""disable: DisableAppliesToButton, click: function () { $('#appliesToDialog').modal('show'); }"">...</button>116 </div>117 </div>118 <span class=""templateMetaDataError"" data-bind=""validationMessage: PrimaryContext""></span>119 <span class=""templateMetaDataError"" data-bind=""validationMessage: PrimaryContextType""></span>120 <!-- /ko -->121 </div>122 123 <div data-bind=""visible: TemplateTypeId()"">124 <div class=""input-group name-field"">125 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorMetaDataNameField""></div>126 <input type=""text"" class=""form-control"" data-bind=""value: Name, disable: DisableFields, event: { change: $parent.NameChanged }"" autofocus />127 </div>128 <span class=""templateMetaDataError"" data-bind=""validationMessage: Name""></span>129 130 <div class=""input-group identifier-field"">131 <div class=""input-group-addon"">132 <span data-bind=""html: Trifolia.Web.TemplateEditorMetaDataOidField""></span>133 <div data-bind=""helpTooltip: { title: Trifolia.Web.TemplateEditorOidTooltip, placement: 'right' }""></div>134 </div>135 <input type=""text"" class=""form-control"" data-bind=""value: IdentifierPrefix, disable: DisableOidField"" />136 <div class=""input-group-btn"">137 <button type=""button"" class=""dropdown-toggle btn btn-default"" data-toggle=""dropdown"" href=""#"" data-bind=""disable: DisableOidField"">138 <span class=""caret""></span>139 </button>140 <ul class=""dropdown-menu pull-right"">141 <li><a href=""#"" data-bind=""click: function () { IdentifierPrefix($root.ImplementationGuideBaseIdentifier()) }, text: $root.ImplementationGuideBaseIdentifier""></a></li>142 <li><a href=""#"" data-bind=""click: function () { IdentifierPrefix(location.origin + '/api/FHIR2/StructureDefinition/') }, text: location.origin + '/api/FHIR2/StructureDefinition'""></a></li>143 <li><a href=""#"" data-bind=""click: function () { IdentifierPrefix('http://hl7.org/fhir/StructureDefinition/') }"">http://hl7.org/fhir/StructureDefinition/</a></li>144 <!-- ko if: !$parent.IsFhir() -->145 <li><a href=""#"" data-bind=""click: function () { IdentifierPrefix('urn:oid:') }"">urn:oid:</a></li>146 <li><a href=""#"" data-bind=""click: function () { IdentifierPrefix('urn:hl7ii:') }"">urn:hl7ii:</a></li>147 <!-- /ko -->148 </ul>149 </div>150 <input type=""text"" class=""form-control"" data-bind=""value: IdentifierAfix, disable: DisableOidField"" />151 </div>152 <span class=""templateMetaDataError"" data-bind=""validationMessage: IdentifierPrefix""></span>153 <span class=""templateMetaDataError"" data-bind=""validationMessage: IdentifierAfix""></span>154 <span class=""templateMetaDataError"" data-bind=""validationMessage: Oid""></span>155 156 <div class=""input-group bookmark-field"">157 <div class=""input-group-addon"">158 <span data-bind=""html: Trifolia.Web.TemplateEditorMetaDataBookmarkField""></span>159 <div data-bind=""helpTooltip: { title: Trifolia.Web.TemplateEditorBookmarkTooltip, placement: 'right' }""></div>160 </div>161 <input type=""text"" class=""form-control"" data-bind=""value: Bookmark, disable: DisableEngineerFields"" />162 </div>163 <span class=""templateMetaDataError"" data-bind=""validationMessage: Bookmark""></span>164 165 <!-- ko if: TemplateTypeId() -->166 <div class=""implied-template-field"" data-bind=""templateSelect: ImpliedTemplateId, oid: Oid, disable: $parent.DisableImpliedTemplate, filterContextType: PrimaryContextType, label: 'Implied Template/Profile:', canTypeAhead: true""></div>167 <span class=""templateMetaDataError"" data-bind=""validationMessage: ImpliedTemplateId""></span>168 <!-- /ko -->169 170 <div class=""input-group is-open-field"">171 <div class=""input-group-addon"">172 <span data-bind=""html: Trifolia.Web.TemplateEditorMetaDataExtensibilityField""></span>173 <div data-bind=""helpTooltip: { title: Trifolia.Web.TemplateEditorExtensibilityTooltip, placement: 'right' }""></div>174 </div>175 <select class=""form-control"" data-bind=""value: IsOpenString, disable: DisableFields"">176 <option value=""true"">Open</option>177 <option value=""false"">Closed</option>178 </select>179 </div>180 <span data-bind=""validationMessage: IsOpen""></span>181 182 <!-- ko if: OwningImplementationGuideId() -->183 <div class=""input-group publish-status-field"">184 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorMetaDataStatusField""></div>185 <select class=""form-control"" data-bind=""options: $parent.PublishStatuses, optionsText: 'Name', optionsValue: 'Id', optionsCaption: 'Select', value: StatusId, disable: DisableFields, event: { change: $parent.StatusChanged }""></select>186 </div>187 <!-- /ko -->188 189 <div class=""input-group description-field"">190 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorMetaDataDescriptionField""></div>191 <textarea class=""form-control"" style=""height: 100px;"" data-bind=""markdown: Description, implementationGuideId: OwningImplementationGuideId, disable: DisableEngineerFields""></textarea>192 </div>193 194 <div class=""input-group notes-field"">195 <div class=""input-group-addon"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorNotesTooltip }, html: Trifolia.Web.TemplateEditorMetaDataNotesField""></div>196 <textarea class=""form-control"" style=""height: 100px;"" data-bind=""markdown: Notes, implementationGuideId: OwningImplementationGuideId, disable: DisableEngineerFields""></textarea>197 </div>198 199 <!-- ko if: $parent.IsFhir() -->200 <div class=""panel panel-default extensions-panel"" style=""margin-top: 10px;"">201 <div class=""panel-heading"">Extensions</div>202 <div class=""panel-body"">203 <div class=""table-responsive"">204 <table class=""table"">205 <thead>206 <tr>207 <th>Identifier</th>208 <th>Type</th>209 <th>Value</th>210 <th> </th>211 </tr>212 </thead>213 <tbody>214 <!-- ko foreach: Extensions -->215 <tr>216 <td>217 <div class=""input-group extension-identifier-field"">218 <input type=""text"" class=""form-control"" data-bind=""value: Identifier"" placeholder=""URI (ex: http[s]://XXX/yy/zz)"" />219 <span class=""help-block"" data-bind=""validationMessage: Identifier""></span>220 </div>221 </td>222 <td data-bind=""text: Type""></td>223 <td>224 <div class=""input-group extension-value-field"">225 <!-- ko if: Type() != 'Boolean' && Type() != 'Coding' && Type() != 'CodeableConcept' -->226 <input type=""text"" class=""form-control"" data-bind=""value: Value"" />227 <!-- /ko -->228 229 <!-- ko if: Type() == 'Boolean' -->230 <select class=""form-control"" data-bind=""value: Value"">231 <option value=""true"">True</option>232 <option value=""false"">False</option>233 </select>234 <!-- /ko -->235 236 <!-- ko if: (Type() == 'Coding' || Type() == 'CodeableConcept') -->237 <input type=""text"" class=""form-control"" style=""width: 33%"" placeholder=""code"" data-bind=""value: ValueCodingCode"" />238 <input type=""text"" class=""form-control"" style=""width: 33%"" placeholder=""display"" data-bind=""value: ValueCodingDisplay"" />239 <input type=""text"" class=""form-control"" style=""width: 34%"" placeholder=""system"" data-bind=""value: ValueCodingSystem"" />240 <!-- /ko -->241 242 <span class=""help-block"" data-bind=""validationMessage: Value""></span>243 </div>244 </td>245 <td>246 <button type=""button"" class=""btn btn-default"" data-bind=""click: function() { $parent.RemoveExtension($index()); }"">Remove</button>247 </td>248 </tr>249 <!-- /ko -->250 </tbody>251 <tfoot>252 <tr data-bind=""with: NewExtension"">253 <td>254 <div class=""input-group new-extension-identifier-field"">255 <input type=""text"" class=""form-control"" data-bind=""value: Identifier"" placeholder=""URI (ex: http[s]://XXX/yy/zz)"" />256 <span class=""help-block"" data-bind=""validationMessage: Identifier""></span>257 </div>258 </td>259 <td>260 <div class=""input-group new-extension-type-field"">261 <select class=""form-control"" data-bind=""value: Type"">262 <option>String</option>263 <option>Integer</option>264 <option>Boolean</option>265 <option>Date</option>266 <option>DateTime</option>267 <option>Code</option>268 <option>Coding</option>269 <option>CodeableConcept</option>270 </select>271 <span class=""help-block"" data-bind=""validationMessage: Type""></span>272 </div>273 </td>274 <td>275 <div class=""input-group new-extension-value-field"">276 <!-- ko if: Type() != 'Boolean' && Type() != 'Coding' && Type() != 'CodeableConcept' -->277 <input type=""text"" class=""form-control"" data-bind=""value: Value"" />278 <!-- /ko -->279 280 <!-- ko if: Type() == 'Boolean' -->281 <select class=""form-control"" data-bind=""value: Value"">282 <option value=""true"">True</option>283 <option value=""false"">False</option>284 </select>285 <!-- /ko -->286 287 <!-- ko if: (Type() == 'Coding' || Type() == 'CodeableConcept') -->288 <input type=""text"" class=""form-control"" style=""width: 33%"" placeholder=""code"" data-bind=""value: ValueCodingCode"" />289 <input type=""text"" class=""form-control"" style=""width: 33%"" placeholder=""display"" data-bind=""value: ValueCodingDisplay"" />290 <input type=""text"" class=""form-control"" style=""width: 34%"" placeholder=""system"" data-bind=""value: ValueCodingSystem"" />291 <!-- /ko -->292 293 <span class=""help-block"" data-bind=""validationMessage: Value""></span>294 </div>295 </td>296 <td><button type=""button"" class=""btn btn-default new-extension-add-button"" data-bind=""click: $parent.AddExtension, enable: IsValid"">Add</button></td>297 </tr>298 </tfoot>299 </table>300 </div>301 </div>302 </div>303 <!-- /ko -->304 </div>305 </div>306 <div class=""col-md-4"">307 <div data-bind=""if: Id()"">308 <div class=""input-group"">309 <span class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorMetaDataImplementationGuideField""></span>310 <input type=""text"" class=""form-control"" readonly=""readonly"" data-bind=""value: $parent.GetImplementationGuideDisplay()"" />311 </div>312 313 <div class=""input-group"">314 <span class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorMetaDataTemplateTypeField""></span>315 <input type=""text"" class=""form-control"" readonly=""readonly"" data-bind=""value: $parent.GetTemplateTypeDisplay()"" />316 </div>317 318 <div class=""input-group"">319 <span class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorMetaDataAppliesToField""></span>320 <input type=""text"" class=""form-control"" style=""width: 50%"" readonly=""readonly"" data-bind=""value: PrimaryContext"" />321 <input type=""text"" class=""form-control"" style=""width: 50%"" readonly=""readonly"" data-bind=""value: PrimaryContextType"" />322 </div>323 324 <!-- ko if: Id() && containerViewModel.HasSecurable(['TemplateMove']) -->325 <div class=""row"">326 <div class=""col-md-12"">327 <a data-bind=""attr: { href: MoveUrl }"">Move</a> the template/profile to change the Implementation Guide, Type, or Applies To fields.328 </div>329 </div>330 <!-- /ko -->331 </div>332 333 <!-- ko if: Author() -->334 <div class=""input-group"">335 <span class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorMetaDataAuthoredByField""></span>336 <!--input type=""text"" class=""form-control"" data-bind=""value: Author""/-->337 <select class=""form-control"" data-bind=""options: permittedTemplateUsers(Id()),338 optionsText: 'Name',339 optionsValue: 'Id',340 value: AuthorId,341 disable: $parent.Template().Locked()"" />342 </div>343 <!-- /ko -->344 345 <!-- ko if: OrganizationName() -->346 <div class=""input-group"">347 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorMetaDataOrganizationField""></div>348 <input type=""text"" class=""form-control"" readonly=""readonly"" data-bind=""value: OrganizationName"" />349 </div>350 <!-- /ko -->351 352 <!-- ko if: PreviousVersionLink() -->353 <div class=""input-group"">354 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorMetaDataNewVersionOfField""></div>355 <input type=""text"" class=""form-control"" readonly=""readonly"" data-bind=""value: PreviousVersionName"" />356 <div class=""input-group-btn"">357 <button type=""button"" class=""btn btn-default"" data-bind=""click: function () { location.href = PreviousVersionLink(); }"">View</button>358 </div>359 </div>360 <!-- /ko -->361 </div>362 </div>363 </div>364 365 <!-- Constraints -->366 <div id=""constraints"" class=""tab-pane"" style=""overflow: auto; padding: 20px; float: left; "">367 368 <div id=""constraintsTree"" class=""constraintTree"">369 <div class=""constraintRow constraintHeader"">370 <div class=""constraintColumn"" style=""width: 15px;""> </div>371 <div class=""constraintColumn constraintContext"" data-bind=""html: Trifolia.Web.TemplateEditorContextHeading""></div>372 <div class=""constraintColumn constraintNumber"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorConstraintNumberHeadingTooltip }"">373 <input type=""text"" class=""searchConstraintText"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorSearchConstraintTooltip }, event: { keypress: SearchConstraintKeyPress }, value: SearchConstraintNumber, valueUpdate: 'afterkeydown'"" placeholder=""CONF#""/>374 <div class=""glyphicon glyphicon-search"" data-bind=""click: function () { FindConstraintNode(SearchConstraintNumber()); }""></div>375 </div>376 <div class=""constraintColumn constraintBranch"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorBranchIdentifierHeadingTooltip }, html: Trifolia.Web.TemplateEditorBranchIdentifierHeading""></div>377 <div class=""constraintColumn constraintConformance"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorConformanceHeadingTooltip }, html: Trifolia.Web.TemplateEditorConformanceHeadingTooltip""></div>378 <div class=""constraintColumn constraintCardinality"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorCardinalityHeadingTooltip }, html: Trifolia.Web.TemplateEditorCardinalityHeading""></div>379 <div class=""constraintColumn constraintDataType"" data-bind=""html: Trifolia.Web.TemplateEditorDataTypeHeading""></div>380 <div class=""constraintColumn constraintValue"">381 Value382 <!-- ko if: (IsAnalyst() && !Template().Locked()) -->383 <a href=""#"" style=""text-align: right"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorAddTopLevelPrimitiveTooltip }, click: function () { AddPrimitive(); }""><span class=""glyphicon glyphicon-text-width"" style=""padding-right: 5px; float: right; margin-top: 9px;""></span></a>384 <!-- /ko -->385 </div>386 </div>387 388 <div data-bind=""template: { name: 'constraintTreeTemplate', data: GetNodes(null) }""></div>389 </div>390 391 <div class=""constraintEditor panel panel-default"" data-bind=""visible: CurrentNode(), with: CurrentNode"">392 <!-- Constraint Editor Header -->393 <div class=""panel-heading"" style=""padding: 2px;"">394 <table class=""table"" style=""margin-bottom: 0px;"">395 <tr>396 <td>397 <span class=""glyphicon glyphicon-resize-full"" style=""cursor: pointer;"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorExpandCollapseConstraintEditorTooltip }, click: function () { $parent.IsEditorMaximized(!$parent.IsEditorMaximized()); }""></span>398 </td>399 <td>400 <span data-bind=""text: DisplayContext""></span>401 </td>402 <td>403 <!-- ko if: (Constraint() && $parent.IsAnalyst() && !$parent.Template().Locked() && $parent.IsEditorMaximized()) -->404 <span data-bind=""text: ComputedNumber""></span>405 <a class=""clickable"" data-bind=""click: function () { $('#constraintNumberEdit').slideToggle(); }"" title=""Edit Constraint Number""><i class=""glyphicon glyphicon-pencil""></i></a>406 407 <div id=""constraintNumberEdit"" class=""popover fade bottom in"">408 <div class=""arrow""></div>409 410 <div class=""form-group"">411 <label>Unique Number</label> <span class=""glyphicon glyphicon-question-sign"" data-bind=""tooltip: 'A unique number is always required. The unique number is used by default for conformance numbers in exports unless a display number is specified. This number must be unique across all constraints in the implementation guide that the template/profile is associated with.'""></span>412 <div class=""input-group"">413 <input type=""text"" class=""form-control input-sm"" data-bind=""spinedit: Constraint().Number, treatZeroAsNull: true"" />414 </div>415 </div>416 417 <div class=""form-group"">418 <label>Display Number</label> <span class=""glyphicon glyphicon-question-sign"" data-bind=""tooltip: 'Optional. The display number is used to override the conformance number format used by default in exports (MS Word, Schematron, etc.). The display number can contain any character (including dashes, underlines, semi-colons, etc.)'""></span>419 <input type=""text"" class=""form-control"" data-bind=""value: Constraint().DisplayNumber"" />420 </div>421 422 <button type=""button"" class=""btn btn-primary"" style=""width: 100%;"" data-bind=""click: $parent.ConformanceNumberChanged"">OK</button>423 </div>424 <!-- /ko -->425 <!-- ko if: (Constraint() && (!$parent.IsAnalyst() || $parent.Template().Locked() || !$parent.IsEditorMaximized())) -->426 <span data-bind=""text: Constraint().Number""></span>427 <!-- /ko -->428 </td>429 <td>430 <div data-bind=""visible: $parent.isDuplicateNode()"">431 <div class=""btn-group btn-group-sm"">432 <button class=""btn btn-default"" data-bind=""visible: $parent.showMoveUp(), click: $parent.moveUp""><i class=""glyphicon glyphicon-chevron-up""></i></button>433 <button class=""btn btn-default"" data-bind=""visible: $parent.showMoveDown(), click: $parent.moveDown""><i class=""glyphicon glyphicon-chevron-down""></i></button>434 </div>435 </div>436 </td>437 <td>438 <div class=""pull-right"">439 <div class=""btn-group btn-group-sm"">440 <!-- ko if: ($parent.IsAnalyst() && !$parent.Template().Locked() && $parent.IsEditorMaximized()) -->441 442 <!-- ko if: !Constraint() -->443 <button type=""button"" class=""btn btn-default"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorCreateComputableTooltip }, click: CreateComputable""><i class=""glyphicon glyphicon-plus""></i></button>444 <!-- /ko -->445 446 <button type=""button"" class=""btn btn-default"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorAddChildPrimitiveTooltip }, click: function () { $parent.AddPrimitive($data); }, disable: $parent.DisableAddChildPrimitive()""><i class=""glyphicon glyphicon-text-width""></i></button>447 448 <!-- ko if: Constraint() -->449 <button type=""button"" class=""btn btn-default"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorDuplicateTooltip }, click: function () { $parent.DuplicateConstraint($data); }, disable: $parent.DisableDuplicateConstraint()""><i class=""glyphicon glyphicon-repeat""></i></button>450 <button type=""button"" class=""btn btn-default"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorEditNoteTooltip }, click: $parent.EditNote""><i class=""glyphicon glyphicon-comment""></i></button>451 <button type=""button"" class=""btn btn-default"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorRemoveTooltip }, click: function () { $parent.RemoveConstraint($data); }, disable: $parent.DisableConstraintRemove()""><i class=""glyphicon glyphicon-trash""></i></button>452 <!-- /ko -->453 454 <!-- /ko -->455 </div>456 </div>457 </td>458 </tr>459 </table>460 </div>461 462 <div class=""panel-body"" style=""overflow-y: scroll; max-height: 325px;"">463 <!-- ko with: Constraint -->464 <div data-bind=""template: { name: 'constraintEditorBody' }, validationOptions: { messagesOnModified: false, insertMessages: false }""></div>465 <!-- /ko -->466 467 <!-- ko if: !Constraint() && $parent.IsFhir() && Context() == 'extension' -->468 <div data-bind=""template: { name: 'constraintExtension' }""></div>469 <!-- /ko -->470 </div>471 472 <div class=""panel-footer"" data-bind=""with: Constraint, visible: $parent.IsEditorMaximized"">473 <div data-bind=""html: NarrativeProseHtml""></div>474 </div>475 </div>476 </div>477 478 <!-- Preview -->479 <div id=""preview"" class=""tab-pane"">480 <div style=""position: relative"">481 <div data-bind=""template: { name: 'constraintPreviewTemplate', data: Constraints() }""></div>482 </div>483 </div>484 485 <!-- Validation -->486 <div id=""validation"" class=""tab-pane"">487 <div class=""row"">488 <!-- ko if: Template().ValidationErrors().length > 0 -->489 <div class=""col-md-6"">490 <h3 data-bind=""html: Trifolia.Web.TemplateEditorValidationErrors""></h3>491 <table class=""table"">492 <thead>493 <tr>494 <th>CONF</th>495 <th>Message</th>496 </tr>497 </thead>498 <tbody data-bind=""foreach: Template().ValidationErrors()"">499 <tr>500 <td data-bind=""text: ConstraintNumber""></td>501 <td data-bind=""text: Message""></td>502 </tr>503 </tbody>504 </table>505 </div>506 <!-- /ko -->507 <!-- ko if: Template().ValidationWarnings().length > 0 -->508 <div class=""col-md-6"">509 <h3 data-bind=""html: Trifolia.Web.TemplateEditorValidationWarnings""></h3>510 <table class=""table"">511 <thead>512 <tr>513 <th>CONF</th>514 <th>Message</th>515 </tr>516 </thead>517 <tbody data-bind=""foreach: Template().ValidationWarnings()"">518 <tr>519 <td data-bind=""text: ConstraintNumber""></td>520 <td data-bind=""text: Message""></td>521 </tr>522 </tbody>523 </table>524 </div>525 <!-- /ko -->526 527 <!-- ko if: Template().ValidationResults().length == 0 -->528 <div class=""col-md-12"">529 <span style=""font-style: italic"" data-bind=""html: Trifolia.Web.TemplateEditorValidationNoMessages""></span>530 </div>531 <!-- /ko -->532 </div>533 534 <!-- ko if: Template().ImpliedByTemplates().length > 0 || Template().ContainedByTemplates().length > 0 -->535 <div class=""alert alert-warning"" style=""margin-top: 20px; margin-bottom: -5px;"">Modifying this template/profile may impact one or more of the following templates which contain/imply this template/profile.</div>536 <!-- /ko -->537 538 <div class=""row"">539 <!-- ko if: Template().ImpliedByTemplates().length > 0 -->540 <div class=""col-md-6"">541 <h3>Implied By</h3>542 <ul data-bind=""foreach: Template().ImpliedByTemplates"">543 <li><span data-bind=""text: Name""></span> [<a data-bind=""attr: { href: ViewUrl }"">View</a> | <a data-bind=""attr: { href: EditUrl }"">Edit</a>]<br />544 <span data-bind=""text: ImplementationGuide""></span></li>545 </ul>546 </div>547 <!-- /ko -->548 <!-- ko if: Template().ContainedByTemplates().length > 0 -->549 <div class=""col-md-6"">550 <h3>Contained By</h3>551 <ul data-bind=""foreach: Template().ContainedByTemplates"">552 <li><span data-bind=""text: Name""></span> [<a data-bind=""attr: { href: ViewUrl }"">View</a> | <a data-bind=""attr: { href: EditUrl }"">Edit</a>]<br />553 <span data-bind=""text: ImplementationGuide""></span></li>554 </ul>555 </div>556 <!-- /ko -->557 </div>558 </div>559 </div>560 </div>561 562 <div id=""footer"">563 <div class=""row"">564 <div class=""col-md-2"">565 <!-- ko with: Template -->566 <div class=""btn-group dropup"">567 <button type=""button"" class=""btn btn-default dropdown-toggle"" data-toggle=""dropdown"" data-bind=""css: { 'disabled': !IsValid() || Locked() }"">Save <b class=""caret""></b></button>568 <ul class=""dropdown-menu"" role=""menu"">569 <li><a href=""#"" data-bind=""click: function () { $parent.Save(); }"">and Continue</a></li>570 <li><a href=""#"" data-bind=""click: function () { $parent.Save('publishSettings'); }"">and Publish Settings</a></li>571 <li><a href=""#"" data-bind=""click: function () { $parent.Save('list'); }"">and List</a></li>572 <li><a href=""#"" data-bind=""click: function () { $parent.Save('view'); }"">and View</a></li>573 </ul>574 </div>575 <!-- /ko -->576 <div class=""btn-group dropup"">577 <button type=""button"" class=""btn btn-default dropdown-toggle"" data-toggle=""dropdown"">Cancel <b class=""caret""></b></button>578 <ul class=""dropdown-menu"" role=""menu"">579 <li><a href=""#"" data-bind=""click: function () { Cancel('list'); }"">and List</a></li>580 <li data-bind=""css: { 'disabled': !TemplateId() }""><a href=""#"" data-bind="" click: function () { Cancel('view'); }"">and View</a></li>581 </ul>582 </div>583 </div>584 <div class=""col-md-2"">585 <!-- ko if: Status -->586 <span data-bind=""text: Status""></span>587 <!-- /ko -->588 </div>589 <div class=""col-md-5"">590 <div data-bind=""templateSelect: QuickEditTemplateId, buttons: [{ Text: 'Go', Handler: QuickEditTemplate }], label: 'Quick Edit', small: true, canTypeAhead: true""></div> 591 </div>592 <div class=""col-md-3"">593 <div class=""input-group input-group-sm"">594 <span class=""input-group-addon"">View Mode <i data-bind=""helpTooltip: { title: Trifolia.Web.TemplateEditorViewModeTooltip, placement: 'top' }""></i></span>595 <select class=""form-control"" data-bind=""value: ViewMode"">596 <option>Analyst</option>597 <option>Editor</option>598 <option>Engineer</option>599 </select>600 </div>601 </div>602 </div>603 </div>604 605 <div id=""editNoteDialog"" class=""modal fade"">606 <div class=""modal-dialog"">607 <div class=""modal-content"">608 <div class=""modal-header"">Edit Note</div>609 <div class=""modal-body"">610 <textarea class=""form-control"" data-bind=""value: ConstraintNote""></textarea>611 </div>612 <div class=""modal-footer"">613 <button type=""button"" class=""btn btn-default"" data-bind=""click: EditNoteSave"">OK</button>614 <button type=""button"" class=""btn btn-primary"" data-bind=""click: EditNoteCancel"">Cancel</button>615 </div>616 </div>617 </div>618 </div>619 620 <div id=""appliesToDialog"" class=""modal fade"">621 <div class=""modal-dialog"">622 <div class=""modal-content"">623 <div class=""modal-header"">Applies to...</div>624 <div class=""modal-body"" style=""max-height: 350px; overflow-y: auto"">625 <div data-bind=""template: { name: 'appliesToNode', data: AppliesToNodes() }""></div>626 </div>627 <div class=""modal-footer"">628 <span class=""help-block"" data-bind=""if: viewModel.CurrentAppliesToNode() && !viewModel.CurrentAppliesToNode().DataType()"">The selection is not valid.</span>629 <button type=""button"" class=""btn btn-default"" data-bind=""click: function () {630 viewModel.Template().PrimaryContext(viewModel.CurrentAppliesToNode().Context());631 viewModel.Template().PrimaryContextType(viewModel.CurrentAppliesToNode().DataType());632 viewModel.CurrentAppliesToNode(null);633 $('#appliesToDialog').modal('hide');634 }, disable: !viewModel.CurrentAppliesToNode() || !viewModel.CurrentAppliesToNode().DataType()"">OK</button>635 <button type=""button"" class=""btn btn-primary"" data-bind=""click: function () {636 viewModel.CurrentAppliesToNode(null);637 $('#appliesToDialog').modal('hide');638 }"">Cancel</button>639 </div>640 </div>641 </div>642 </div>643 </div>644 645 <script type=""text/html"" id=""constraintExtension"">646 <div class=""form-group"">647 <label>Pre-defined Extension</label>648 <div class=""input-group input-group-sm"">649 <select class=""form-control input-sm"" data-bind=""options: $parent.AvailableExtensions, optionsText: 'Name', optionsValue: 'Id', value: $parent.SelectedAvailableExtensionId, optionsCaption: 'Choose...'""></select>650 <div class=""input-group-btn"">651 <button type=""button"" class=""btn btn-default btn-sm"" data-bind=""disable: !$parent.SelectedAvailableExtensionId(), click: $parent.AddAvailableExtension""><i class=""glyphicon glyphicon-plus""></i></button>652 </div>653 </div>654 </div>655 </script>656 657 <script type=""text/html"" id=""constraintEditorBody"">658 <fieldset data-bind=""disable: $parents[1].DisableConstraintFields()"">659 <!-- Analyst: Computable -->660 <div data-bind=""if: IsAnalystComputable()"" class=""constraintEditorSet"">661 <!-- Main Constraint Details -->662 663 <!-- ko if: !$root.CurrentNode().IsChildOfChoice() -->664 <div class=""input-group input-group-sm"" style=""width: 100%;"">665 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorConformanceCardinality""></div>666 <select class=""form-control input-sm"" style=""width: 50%;"" data-bind=""value: Conformance"">667 <option>SHALL</option>668 <option>SHOULD</option>669 <option>MAY</option>670 <option>SHALL NOT</option>671 <option>SHOULD NOT</option>672 <option>MAY NOT</option>673 </select>674 <div class=""input-group input-group-sm cardinality"" style=""width:50%; padding-top: 0px"">675 <input class=""span2 form-control"" id=""appendedInputButton"" size=""16"" type=""text"" data-bind=""value: Cardinality"">676 <div class=""input-group-btn"">677 <a class=""dropdown-toggle btn btn-primary btn-sm"" data-toggle=""dropdown"" href=""#"">678 <span class=""caret""></span>679 </a>680 <ul class=""dropdown-menu pull-right"">681 <li><a href=""#"" data-bind=""click: function () { Cardinality('0..0') }"">0..0</a></li>682 <li><a href=""#"" data-bind=""click: function () { Cardinality('0..1') }"">0..1</a></li>683 <li><a href=""#"" data-bind=""click: function () { Cardinality('0..*') }"">0..*</a></li>684 <li><a href=""#"" data-bind=""click: function () { Cardinality('1..1') }"">1..1</a></li>685 <li><a href=""#"" data-bind=""click: function () { Cardinality('1..*') }"">1..*</a></li>686 </ul>687 </div>688 </div>689 </div>690 <span class=""help-block"" data-bind=""validationMessage: Cardinality""></span>691 692 <div class=""input-group input-group-sm"">693 <div class=""input-group-addon"">694 <span data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorDataType""></span>695 <div data-bind=""helpTooltip: { title: Trifolia.Web.TemplateEditorConstraintEditorDataTypeTooltip, placement: 'right' }""></div>696 </div>697 <select class=""form-control input-sm"" data-bind=""698 options: $parents[1].GetDataTypes($parent.DataType()),699 optionsText: 'Text', optionsValue: 'Value',700 value: DataType,701 event: { change: $parents[1].ConstraintDataTypeChanged }"">702 </select>703 </div>704 <!-- /ko -->705 706 <!-- ko if: !$root.CurrentNode().IsChoice() && !$root.CurrentNode().IsChildOfChoice() -->707 <div class=""input-group input-group-sm branching"">708 <div class=""input-group-addon"" data-bind=""text: Trifolia.Web.TemplateEditorBranchingTitle""></div>709 <div class=""form-control"">710 <input type=""checkbox"" name=""Branching"" data-bind=""checked: IsBranch, disable: (IsBranchDisabled() || $parents[1].Template().Locked())"" /> <span data-bind=""text: Trifolia.Web.TemplateEditorBranchRootOption""></span><br />711 <input type=""checkbox"" name=""Branching"" data-bind=""checked: IsBranchIdentifier, disable: (IsBranchIdentifierDisabled() || $parents[1].Template().Locked())"" /> <span data-bind=""text: Trifolia.Web.TemplateEditorBranchIdentifierOption""></span>712 </div>713 </div>714 <!-- /ko -->715 716 <!-- ko if: !$root.CurrentNode().IsChoice() -->717 <!-- ko if: $parents[1].Categories().length > 0 -->718 <div class=""input-group input-group-sm"">719 <div class=""input-group-addon"">Category</div>720 <select class=""form-control input-sm"" multiple=""multiple"" data-bind=""options: $parents[1].Categories, selectedOptions: Categories""></select>721 </div>722 <!-- /ko -->723 724 <u>Contained Template(s)</u>725 726 <table class=""table table-striped contained-templates"" style=""margin-bottom: 0px;"">727 <tbody data-bind=""foreach: References"">728 <tr>729 <td>730 <span data-bind=""text: ReferenceDisplay""></span> (<span data-bind=""text: ReferenceIdentifier""></span>)731 </td>732 <td style=""width: 20px;"">733 <i class=""glyphicon glyphicon-remove"" style=""cursor: pointer;"" title=""Remove this contained template/profile"" data-bind=""click: function () { $parent.RemoveContainedTemplate($data) }""></i>734 </td>735 </tr>736 </tbody>737 </table>738 739 <!-- ko if: !$parents[1].DisableConstraintFields() -->740 <a href=""#"" data-bind=""click: function () { AddContainedTemplate($parents[$parents.length - 1].IsFhir(), $parent.DisplayDataType()); }"">Add contained template/profile</a>741 <!-- /ko -->742 743 <div class=""modal fade"" id=""constraintReferenceSelectionModal"" style=""margin-top: 80px;"" data-bind=""with: ReferenceSelection"">744 <div class=""modal-dialog modal-lg"">745 <div class=""modal-content"">746 <div class=""modal-header"">747 <h4 class=""modal-title"">Select template/profile...</h4>748 </div>749 <div class=""modal-body"">750 <div class=""input-group"">751 <input type=""text"" class=""form-control"" placeholder=""Enter search text..."" data-bind=""value: SearchQuery, valueUpdate: 'keyup'"" />752 <div class=""input-group-btn"">753 <button type=""button"" class=""btn btn-default"" data-bind=""click: function () { Search(true); }"">Search</button>754 </div>755 </div>756 757 <table class=""table"">758 <thead>759 <tr>760 <th>Name</th>761 <th>Identifier</th>762 <th>Implementation Guide</th>763 <th> </th>764 </tr>765 </thead>766 <tbody data-bind=""highlight: $parent.SearchQuery"">767 <!-- ko foreach: Items -->768 <tr>769 <td>770 <span data-bind=""text: Name""></span>771 <!-- ko if: Description() -->772 <i class=""glyphicon glyphicon-comment"" data-bind=""tooltip: Description""></i>773 <!-- /ko -->774 </td>775 <td data-bind=""text: Oid""></td>776 <td data-bind=""text: ImplementationGuide""></td>777 <td>778 <button type=""button"" class=""btn btn-default btn-sm"" data-bind=""click: function () { $parent.Select($data); }"">Select</button>779 </td>780 </tr>781 <!-- /ko -->782 <!-- ko if: IsSearching() -->783 <tr>784 <td colspan=""4"">Searching...</td>785 </tr>786 <!-- /ko -->787 </tbody>788 <tfoot>789 <tr>790 <td colspan=""4"">Showing <span data-bind=""text: Items().length""></span> templates/profiles of <span data-bind=""text: TotalItems()""></span>. <a href=""#"" data-bind=""if: TotalItems() > Items().length, click: MoreResults"">Show more...</a></td>791 </tr>792 </tfoot>793 </table>794 </div>795 <div class=""modal-footer"">796 <!-- ko if: FilterContextType() -->797 <div class=""pull-left"">798 <div class=""label label-info"">Only showing templates/profiles with a context type of <span data-bind=""text: FilterContextType""></span></div>799 </div>800 <!-- /ko -->801 <button type=""button"" class=""btn btn-default"" data-bind=""click: Cancel"">Cancel</button>802 </div>803 </div>804 </div>805 </div>806 807 <div class=""input-group input-group-sm"">808 <div class=""input-group-addon"">809 Binding Type:810 <div data-bind=""helpTooltip: { title: Trifolia.Web.TemplateEditorConstraintEditorBindingTypeTooltip, placement: 'right' }""></div>811 </div>812 <select class=""form-control input-sm"" data-bind=""value: BindingType"">813 <option value=""None"">None</option>814 <option value=""SingleValue"">Single Value</option>815 <option value=""ValueSet"">Value Set</option>816 <option value=""CodeSystem"">Code System</option>817 <option value=""Other"">Other</option>818 </select>819 </div>820 821 <div data-bind=""if: BindingType() == 'SingleValue'"">822 <div data-bind=""template: { name: 'singleValueBinding' }""></div>823 </div>824 825 <div data-bind=""if: BindingType() == 'ValueSet'"">826 <div data-bind=""template: { name: 'valueSetBinding' }""></div>827 </div>828 829 <div data-bind=""if: BindingType() == 'CodeSystem'"">830 <div data-bind=""template: { name: 'codeSystemBinding' }""></div>831 </div>832 833 <div data-bind=""if: BindingType() == 'Other'"">834 <div data-bind=""template: { name: 'otherBinding' }""></div>835 </div>836 837 <!-- ko if: $parents[$parents.length-1].IsFhir() -->838 839 <!-- ko if: BindingType() == 'SingleValue' || BindingType() == 'Other' -->840 <div class=""input-group input-group-sm"">841 <div class=""input-group-addon"">842 <span>Is Fixed?</span>843 <div data-bind=""helpTooltip: { title: Trifolia.Web.TemplateEditorConstraintEditorIsFixedTooltip, placement: 'right' }""></div>844 </div>845 <div class=""form-control"">846 <input type=""checkbox"" name=""Fixed"" data-bind=""checked: IsFixed""/>847 </div>848 </div>849 <!-- /ko -->850 851 <div class=""input-group input-group-sm"">852 <div class=""input-group-addon"">853 <span>Is Modifier?</span>854 <div data-bind=""helpTooltip: { title: Trifolia.Web.TemplateEditorConstraintEditorIsModifierTooltip, placement: 'right' }""></div>855 </div>856 <div class=""form-control"">857 <input type=""checkbox"" name=""Modifier"" data-bind=""checked: IsModifier""/>858 </div>859 </div>860 861 <div class=""input-group input-group-sm"">862 <div class=""input-group-addon"">863 <span>Must Support?</span>864 <div data-bind=""helpTooltip: { title: Trifolia.Web.TemplateEditorConstraintEditorMustSupportTooltip, placement: 'right' }""></div>865 </div>866 <div class=""form-control"">867 <input type=""checkbox"" name=""Support"" data-bind=""checked: MustSupport""/>868 </div>869 </div>870 <!-- /ko -->871 <!-- /ko -->872 </div>873 874 <!-- Analyst: Primitive Constraint -->875 <div data-bind=""if: IsAnalystPrimitive()"" class=""constraintEditorSet"">876 <div style=""min-width: 400px"">877 <textarea class=""form-control input-sm"" style=""height: 50px;"" data-bind=""markdown: PrimitiveText, limitedToolbar: true"" placeholder=""Constraint Prose""></textarea>878 <div class=""input-group input-group-sm"">879 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorConformance""></div>880 <select class=""form-control input-sm"" data-bind=""value: Conformance"">881 <option>SHALL</option>882 <option>SHOULD</option>883 <option>MAY</option>884 <option>SHALL NOT</option>885 <option>SHOULD NOT</option>886 <option>MAY NOT</option>887 </select>888 </div>889 890 <div data-bind=""valuesetSelect: ValueSetId, label: 'Value Set:', small: true, canTypeAhead: true""></div>891 892 <div class=""input-group input-group-sm date"">893 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorBindingDate""></div>894 <input type=""text"" class=""form-control input-sm"" placeholder=""MM/DD/YYYY"" data-bind=""date: ValueSetDate"" />895 <span class=""input-group-btn"" style=""width: 20px;"">896 <button type=""button"" class=""btn btn-default btn-sm btn-clear"" data-bind=""click: function () { ValueSetDate(''); }""><i class=""glyphicon glyphicon-remove""></i></button>897 </span>898 </div>899 <div class=""input-group input-group-sm"">900 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorBinding""></div>901 <select class=""form-control input-sm"" data-bind=""value: Binding"">902 <option value=""DEFAULT""></option>903 <option>STATIC</option>904 <option>DYNAMIC</option>905 </select>906 </div>907 </div>908 </div>909 910 <!-- Tech Editor: Primitive -->911 <div style=""width: 100%;"" data-bind=""if: IsTechEditorPrimitive()"" class=""constraintEditorSet"">912 <textarea class=""form-control input-sm"" style=""height: 50px;"" data-bind=""markdown: PrimitiveText, limitedToolbar: true"" placeholder=""Constraint Prose""></textarea>913 914 <div class=""input-group input-group-sm"">915 <div class=""input-group-addon"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorConstraintEditorDescriptionTooltip }, html: Trifolia.Web.TemplateEditorConstraintEditorDescription""></div>916 <textarea class=""form-control input-sm"" style=""height: 50px;"" data-bind=""markdown: Description, implementationGuideId: $parents[1].Template().OwningImplementationGuideId"" placeholder=""Description""></textarea>917 </div>918 <div class=""input-group input-group-sm"">919 <div class=""input-group-addon"" data-bind=""attr: { 'title': Trifolia.Web.TemplateEditorConstraintEditorLabelTooltip }, html: Trifolia.Web.TemplateEditorConstraintEditorLabel""></div>920 <input type=""text"" class=""form-control input-sm"" data-bind=""value: Label"" />921 </div>922 </div>923 924 <!-- Engineer -->925 <div style=""width: 100%;"" data-bind=""if: IsEngineer()"">926 <div class=""input-group input-group-sm"">927 <span data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorAutoGenerate""></span>928 <span style=""white-space: pre;""> </span>929 <input type=""checkbox"" data-bind=""checked: IsAutomaticSchematron"" />930 </div>931 <div class=""input-group input-group-sm"">932 <span data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorInheritable""></span>933 <span style=""white-space: pre;""> </span>934 <input type=""checkbox"" data-bind=""checked: IsInheritable"" />935 </div>936 <div class=""input-group input-group-sm"">937 <span data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorRooted""></span>938 <span style=""white-space: pre;""> </span>939 <input type=""checkbox"" data-bind=""checked: IsSchRooted"" />940 </div>941 942 <textarea class=""form-control input-sm"" style=""height: 50px;"" data-bind=""disable: (IsAutomaticSchematron() || $parents[1].Template().Locked()), value: Schematron"" placeholder=""Custom Schematron""></textarea>943 </div>944 945 <!-- Tech Editor: Computable -->946 <div data-bind=""if: IsTechEditorComputable()"" class=""constraintEditorSet"">947 <div class=""input-group input-group-sm"">948 <div class=""input-group-addon"" data-bind=""attr: { title: Trifolia.Web.TemplateEditorConstraintEditorDescriptionTooltip }, html: Trifolia.Web.TemplateEditorConstraintEditorDescription""></div>949 <textarea class=""form-control input-sm"" style=""height: 50px;"" data-bind=""markdown: Description, implementationGuideId: $parents[1].Template().OwningImplementationGuideId"" placeholder=""Description""></textarea>950 </div>951 <div class=""input-group input-group-sm"">952 <div class=""input-group-addon"" data-bind=""attr: { title: Trifolia.Web.TemplateEditorConstraintEditorLabelTooltip }, html: Trifolia.Web.TemplateEditorConstraintEditorLabel""></div>953 <input type=""text"" class=""form-control input-sm"" data-bind=""value: Label"" />954 </div>955 <div class=""input-group input-group-sm"">956 <div class=""input-group-addon"">957 Heading <input type=""checkbox"" data-bind=""checked: IsHeading"" />958 </div>959 <textarea class=""form-control input-sm"" style=""height: 50px;"" data-bind=""value: HeadingDescription, disable: ($parents[1].Template().Locked() || !IsHeading())"" placeholder=""Heading Description""></textarea>960 </div>961 </div>962 963 </fieldset>964 </script>965 966 <script type=""text/html"" id=""singleValueBinding"">967 <div class=""input-group input-group-sm"" style=""width: 100%;"">968 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorCode""></div>969 <input type=""text"" style=""width: 50%;"" class=""form-control input-sm"" data-bind=""value: Value"" placeholder=""Code XXXX"" />970 <input type=""text"" style=""width: 50%;"" class=""form-control input-sm"" data-bind=""value: ValueDisplayName"" placeholder=""Display XXXX"" />971 </div>972 <div class=""input-group input-group-sm"">973 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorCodeSystem""></div>974 <select class=""form-control input-sm"" data-bind=""value: ValueCodeSystemId, options: $parents[1].CodeSystems, optionsText: 'Display', optionsValue: 'Id', optionsCaption: 'Select'"">975 </select>976 </div>977 </script>978 979 <script type=""text/html"" id=""valueSetBinding"">980 <div class=""input-group input-group-sm"">981 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorValueConformance""></div>982 <select class=""form-control input-sm"" data-bind=""value: ValueConformance"">983 <option value="""">NONE</option>984 <option>SHALL</option>985 <option>SHOULD</option>986 <option>MAY</option>987 <option>SHALL NOT</option>988 <option>SHOULD NOT</option>989 <option>MAY NOT</option>990 </select>991 </div>992 993 <div data-bind=""valuesetSelect: ValueSetId, label: 'Value Set:', small: true, canTypeAhead: true""></div>994 995 <div class=""input-group input-group-sm date"">996 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorBindingDate""></div>997 <input type=""text"" class=""form-control input-sm"" placeholder=""MM/DD/YYYY"" data-bind=""date: ValueSetDate"" />998 <span class=""input-group-btn"" style=""width: 20px;"">999 <button type=""button"" class=""btn btn-default btn-sm btn-clear"" data-bind=""click: function () { ValueSetDate(''); }""><i class=""glyphicon glyphicon-remove""></i></button>1000 </span>1001 </div>1002 <div class=""input-group input-group-sm"">1003 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorBinding""></div>1004 <select class=""form-control input-sm"" data-bind=""value: Binding"">1005 <option value=""DEFAULT""></option>1006 <option>STATIC</option>1007 <option>DYNAMIC</option>1008 </select>1009 </div>1010 </script>1011 1012 <script type=""text/html"" id=""codeSystemBinding"">1013 <div class=""input-group input-group-sm"">1014 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorValueConformance""></div>1015 <select class=""form-control input-sm"" data-bind=""value: ValueConformance"">1016 <option value="""">NONE</option>1017 <option>SHALL</option>1018 <option>SHOULD</option>1019 <option>MAY</option>1020 <option>SHALL NOT</option>1021 <option>SHOULD NOT</option>1022 <option>MAY NOT</option>1023 </select>1024 </div>1025 <div class=""input-group input-group-sm"">1026 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorCodeSystem""></div>1027 <select class=""form-control input-sm"" data-bind=""value: ValueCodeSystemId, options: $parents[1].CodeSystems, optionsText: 'Display', optionsValue: 'Id', optionsCaption: 'Select'"">1028 </select>1029 </div>1030 <div class=""input-group input-group-sm"">1031 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorBinding""></div>1032 <select class=""form-control input-sm"" data-bind=""value: Binding"">1033 <option value=""DEFAULT""></option>1034 <option>STATIC</option>1035 <option>DYNAMIC</option>1036 </select>1037 </div>1038 </script>1039 1040 <script type=""text/html"" id=""otherBinding"">1041 <div class=""input-group input-group-sm"">1042 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorValueConformance""></div>1043 <select class=""form-control input-sm"" data-bind=""value: ValueConformance"">1044 <option value="""">NONE</option>1045 <option>SHALL</option>1046 <option>SHOULD</option>1047 <option>MAY</option>1048 <option>SHALL NOT</option>1049 <option>SHOULD NOT</option>1050 <option>MAY NOT</option>1051 </select>1052 </div>1053 <div class=""input-group input-group-sm"">1054 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorCode""></div>1055 <input type=""text"" class=""form-control input-sm"" style=""width: 50%;"" data-bind=""value: Value"" placeholder=""Code XXXX"" />1056 <input type=""text"" class=""form-control input-sm"" style=""width: 50%;"" data-bind=""value: ValueDisplayName"" placeholder=""Display XXXX"" />1057 </div>1058 1059 <div data-bind=""valuesetSelect: ValueSetId, label: 'Value Set:', small: true, canTypeAhead: true""></div>1060 1061 <div class=""input-group input-group-sm date"">1062 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorBindingDate""></div>1063 <input type=""text"" class=""form-control input-sm"" placeholder=""MM/DD/YYYY"" data-bind=""date: ValueSetDate"" />1064 <span class=""input-group-btn"" style=""width: 20px;"">1065 <button type=""button"" class=""btn btn-default btn-sm btn-clear"" data-bind=""click: function () { ValueSetDate(''); }""><i class=""glyphicon glyphicon-remove""></i></button>1066 </span>1067 </div>1068 <div class=""input-group input-group-sm"">1069 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorCodeSystem""></div>1070 <select class=""form-control input-sm"" data-bind=""value: ValueCodeSystemId, options: $parents[1].CodeSystems, optionsText: 'Display', optionsValue: 'Id', optionsCaption: 'Select'"">1071 </select>1072 </div>1073 <div class=""input-group input-group-sm"">1074 <div class=""input-group-addon"" data-bind=""html: Trifolia.Web.TemplateEditorConstraintEditorBinding""></div>1075 <select class=""form-control input-sm"" data-bind=""value: Binding"">1076 <option value=""DEFAULT""></option>1077 <option>STATIC</option>1078 <option>DYNAMIC</option>1079 </select>1080 </div>1081 </script>1082 1083 <script type=""text/html"" id=""constraintPreviewTemplate"">1084 <!-- ko foreach: $data -->1085 1086 <!-- ko if: !IsChoice() || Children().length != 1 -->1087 <!-- ko if: IsHeading() -->1088 <p data-bind=""text: Context"" class=""previewConstraintHeading""></p>1089 <p data-bind=""text: HeadingDescription"" class=""previewConstraintHeadingDescription""></p>1090 <!-- /ko -->1091 1092 <!-- ko if: Description() -->1093 <p data-bind=""text: Description"" class=""previewConstraintDescription""></p>1094 <!-- /ko -->1095 1096 <p>1097 <!-- ko foreach: $parents -->1098 <!-- ko if: $index() > 1 && $parents[$index()].IsChoice && (!$parents[$index()].IsChoice() || $parents[$index()].Children().length != 1) --><span style=""white-space: pre""> </span><!-- /ko -->1099 <!-- /ko -->1100 <span data-bind=""text: ($index() + 1)""></span>) 1101 <span data-bind=""html: NarrativeProseHtml""></span>1102 </p>1103 <!-- /ko -->1104 1105 <div data-bind=""template: { name: 'constraintPreviewTemplate', data: $data.Children() }""></div>1106 1107 <!-- /ko -->1108 </script>1109 1110 <script type=""text/html"" id=""constraintTreeTemplate"">1111 <!-- ko foreach: $data -->1112 <div class=""constraintRow"" data-bind=""1113 attr: {1114 'nodeId': Id,1115 title: DisplayTitle1116 },1117 css: {1118 'constrained': Constraint(),1119 'primitive': Constraint() && Constraint().IsPrimitive(),1120 'selected': $parents[$parents.length - 1].IsCurrentNode($data)1121 },1122 style: {1123 'color': HasWarning() ? 'red' : 'black',1124 'font-style': HasWarning() ? 'italic' : 'normal'1125 }"">1126 <div class=""constraintColumn"" style=""width: 15px;"">1127 <span data-bind=""if: (HasChildren() && !IsExpanded())"">1128 <div data-bind=""click: function () { $parents[$parents.length - 1].ExpandNode($data, true); }"" class=""glyphicon glyphicon-expand""></div>1129 </span>1130 <span data-bind=""if: (HasChildren() && IsExpanded())"">1131 <div data-bind=""click: function () { $parents[$parents.length - 1].CollapseNode($data); }"" class=""glyphicon glyphicon-collapse-down""></div>1132 </span>1133 </div>1134 <div class=""constraintColumn constraintContext"" data-bind=""click: function () { $parents[$parents.length - 1].SelectNode($data); }"">1135 <!-- ko foreach: $parents -->1136 <!-- ko if: $index() > 1 --><span style=""white-space: pre""> </span><!-- /ko -->1137 <!-- /ko -->1138 <span data-bind=""text: DisplayContext""></span>1139 1140 <!-- ko if: !IsValid() -->1141 <span class=""glyphicon glyphicon-exclamation-sign"" style=""color: red;"" data-bind=""tooltip: Constraint().ValidationMessages""></span>1142 <!-- /ko -->1143 1144 <!-- ko if: DisplayNotes() -->1145 <span class=""glyphicon glyphicon-comment"" data-bind=""tooltip: DisplayNotes""></span>1146 <!-- /ko -->1147 </div>1148 <div class=""constraintColumn constraintNumber"" data-bind=""text: ComputedNumber, attr: { 'title': ComputedNumberTooltip }, click: function () { $parents[$parents.length - 1].SelectNode($data); }""></div>1149 <div class=""constraintColumn constraintBranch"" data-bind=""click: function () { $parents[$parents.length - 1].SelectNode($data); }"">1150 <!-- ko if: !IsChildOfChoice() -->1151 <span data-bind=""text: DisplayBranchRoot""></span>1152 <!-- /ko -->1153 </div>1154 <div class=""constraintColumn constraintBranch"" data-bind=""click: function () { $parents[$parents.length - 1].SelectNode($data); }"">1155 <!-- ko if: !IsChildOfChoice() -->1156 <span data-bind=""text: DisplayBranchIdentifier""></span>1157 <!-- /ko -->1158 </div>1159 <div class=""constraintColumn constraintConformance"" data-bind=""text: DisplayConformance, click: function () { $parents[$parents.length - 1].SelectNode($data); }""></div>1160 <div class=""constraintColumn constraintCardinality"" data-bind=""text: DisplayCardinality, click: function () { $parents[$parents.length - 1].SelectNode($data); }""></div>1161 <div class=""constraintColumn constraintDataType"" data-bind=""text: DisplayDataType, click: function () { $parents[$parents.length - 1].SelectNode($data); }""></div>1162 <div class=""constraintColumn constraintValue"" data-bind=""text: DisplayValue, click: function () { $parents[$parents.length - 1].SelectNode($data); }""></div>1163 </div>1164 1165 <!-- ko if: IsExpanded() -->1166 <div data-bind=""template: { name: 'constraintTreeTemplate', data: $parents[$parents.length-1].GetNodes($data) }""></div>1167 <!-- /ko -->1168 <!-- /ko -->1169 </script>1170 1171 <script type=""text/html"" id=""appliesToNode"">1172 <!-- ko foreach: $data -->1173 <div class=""row"" style=""cursor: pointer;"" data-bind=""css: { 'highlight': $parents[$parents.length - 1].IsCurrentAppliesToNode($data) }"">1174 <div class=""col-md-1"">1175 <span data-bind=""if: (HasChildren() && !IsExpanded())"">1176 <i data-bind=""click: function () { $parents[$parents.length - 1].ExpandAppliesToNode($data); }"" class=""glyphicon glyphicon-expand""></i>1177 </span>1178 <span data-bind=""if: (HasChildren() && IsExpanded())"">1179 <div data-bind=""click: function () { $parents[$parents.length - 1].CollapseNode($data); }"" class=""glyphicon glyphicon-collapse-down""></div>1180 </span>1181 </div>1182 <div class=""col-md-11"" data-bind=""click: function () { $parents[$parents.length - 1].CurrentAppliesToNode($data); }"">1183 <!-- ko foreach: $parents -->1184 <!-- ko if: $index() > 1 --><span style=""white-space: pre""> </span><!-- /ko -->1185 <!-- /ko -->1186 <span data-bind=""text: DisplayContext""></span>1187 </div>1188 </div>1189 1190 <!-- ko if: IsExpanded() -->1191 <div data-bind=""template: { name: 'appliesToNode', data: Children() }""></div>1192 <!-- /ko -->1193 <!-- /ko -->1194 </script>1195 1196 <script type=""text/javascript"">1197 var defaults = {1198 ImplementationGuideId: parseInt('<%= Model.DefaultImplementationGuideId %>')1199 };1200 var viewModel = new templateEditViewModel(parseInt('<%= Model.TemplateId %>'), defaults);