1. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 2/6/2019 3:50:20 PM Eastern Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

1.1 Files compared

# Location File Last Modified
1 CPRS Enh P2.zip CPRS EP2 System_Design_Document.docx Tue Feb 5 21:22:32 2019 UTC
2 CPRS Enh P2.zip CPRS EP2 System_Design_Document.docx Wed Feb 6 20:28:15 2019 UTC

1.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 15 15092
Changed 14 36
Inserted 0 0
Removed 0 0

1.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

1.4 Active regular expressions

No regular expressions were active.

1.5 Comparison detail

  1   Computeriz ed Patient  Record Sy stem
  2   Enhancment s Phase II
  3   System Des ign Docume nt
  4  
  5  
  6  
  7   December,  2018
  8   Version 1. 1
  9   Department  of Vetera ns Affairs
  10  
  11    
  12   Revision H istory
  13   Date
  14   Version
  15   Descriptio n
  16   Author
  17   12/12/18
  18   1.2
  19   Initial ad dition of  NSR 201411 08
  20   Chris Bell
  21   11/30/2018
  22   1.1
  23   Additional  updates f or NSR 201 20407
  24   Jamie Crum ley
  25   11/09/2018
  26   1.0
  27   Initial Dr aft
  28   NSR 201204 07
  29   Jamie Crum ley
  30   Place late st revisio ns at top  of table.
  31   The Revisi on History  pertains  only to ch anges in t he content  of the do cument or  any update s made aft er distrib ution. It  does not a pply to th e formatti ng of the  template.
  32   Remove bla nk rows.
  33  
  34  
  35   Artifact R ationale
  36   The System  Design Do cument (SD D) is a du al-use doc ument that  provides  the concep tual desig n as well  as the as- built desi gn.  This  document w ill be upd ated as th e product  is built,  to reflect  the as-bu ilt produc t. 
  37  
  38  
  39   When to Co mplete Eac h Section  of the SDD
  40   Section
  41   Completed  On or Befo re PMAS Ph ase
  42   Rationale
  43   1 – Introd uction
  44   MS 0 Revie w; updated  thereafte r
  45   Conceptual  design sh ould infor m evaluati on of inve stments
  46   2 - Backgr ound
  47   MS 0 Revie w; updated  thereafte r
  48   Conceptual  design sh ould infor m evaluati on of inve stments
  49   3 – Concep tual Desig n
  50   MS 0 Revie w; updated  thereafte r
  51   Conceptual  design sh ould infor m evaluati on of inve stments
  52   4 – System  Architect ure
  53   MS 0 Revie w; updated  thereafte r
  54   Conceptual  design sh ould infor m evaluati on of inve stments
  55   5 – Data D esign
  56   MS 1 Revie w; updated  thereafte r
  57   Design det ails shoul d be elabo rated upon  during PM AS Plannin g phase an d prior to  developme nt
  58   6 – Detail ed Design
  59   MS 1 Revie w; updated  thereafte r
  60   Design det ails shoul d be elabo rated upon  during PM AS Plannin g phase an d prior to  developme nt
  61   7 – Extern al System  Interface  Design
  62   MS 1 Revie w; updated  thereafte r
  63   Design det ails shoul d be elabo rated upon  during PM AS Plannin g phase an d prior to  developme nt
  64   8 – Human  Machine In terfaces
  65   MS 1 Revie w; updated  thereafte r
  66   Design det ails shoul d be elabo rated upon  during PM AS Plannin g phase an d prior to  developme nt
  67   Attachment s
  68   MS 1 Revie w; updated  thereafte r
  69   Design det ails shoul d be elabo rated upon  during PM AS Plannin g phase an d prior to  developme nt
  70  
  71   A product’ s system d esign shou ld be defi ned concep tually pri or to the  allocation  of person nel and re sources th at occur a t project  initiation .  This gi ves the en terprise a n opportun ity to eva luate IT i nvestments  before pr oject team s are stoo d up and f unding is  allocated.   Sections  1- 4 whic h discuss  the high l evel desig n should b e complete d prior to  MS 0. All  sections  should be  completed  and update d before M S 1.  Proj ects will  need to ad dress all  SDD approv al constra ints prior  to the MS  2 review.   In addit ion, the S DD should  reflect th e as-built  product g oing into  the MS 2 r eview.
  72  
  73   Instructio ns
  74   The System  Design Do cument (SD D) is a ge neral purp ose docume nt that is  use to sp ecify the  design of  new system s includin g Custom D evelopment , Software  as a Serv ice, Hoste d Services ; modifica tions or u pdates to  an existin g system.  Therefore,  all secti ons may no t apply to  system be ing design ed. Any se ctions not  applicabl e to the c urrent eff ort must b e marked N /A along w ith ration al for why  the secti on is not  relevant. 
  75   This templ ate contai ns a style  named Ins tructional  Text. Tex t using th is style i s only to  provide gu idance in  completing  the docum ent – the  final docu ment shoul d not cont ain Instru ctional Te xt. Text i n paragrap hs added a fter Instr uctional T ext is aut omatically  set to th e appropri ate body t ext style.  For best  results an d to maint ain format ting consi stency: 
  76   Use the pr ovided par agraph sty les
  77   Delete all  Instructi onal Text  before fin alizing th e document , includin g these in structions .
  78   The follow ing projec t types ar e required  to comple te this ar tifact. Ex ceptions a re outline d where ne eded throu ghout the  document.
  79   Activity
  80   New Capabi lity (1)
  81   Feature En hancement  (2)
  82   Field Depl oyment (A)
  83   Yes
  84   Yes
  85   Cloud/Web  Deployment  (B)
  86   Yes
  87   Yes
  88   Mobile App lication ( C)
  89   Yes
  90   Yes
  91  
  92   Table of C ontents
  93   1.Introduc tion1
  94   1.1.Scope1
  95   1.2.User P rofiles1
  96   2.Backgrou nd1
  97   2.1.Overvi ew of the  System1
  98   2.2.Overvi ew of the  Business P rocess1
  99   2.3.Overvi ew of the  Significan t Requirem ents1
  100   3.Conceptu al Design2
  101   3.1.Concep tual Appli cation Des ign2
  102   3.1.1.Appl ication Co ntext2
  103   3.1.2.High -Level App lication D esign5
  104   3.1.3.Appl ication Lo cations8
  105   3.2.Concep tual Data  Design9
  106   3.2.1.Proj ect Concep tual Data  Model9
  107   3.2.2.Data base Infor mation9
  108   3.2.3.User  Interface  Data Mapp ing9
  109   3.2.3.1.Ap plication  Screen Int erface10
  110   3.2.3.1.1. <Insert na me of scre en>10
  111   3.2.3.2.Ap plication  Report Int erface10
  112   3.2.3.2.1. <Insert na me of repo rt>10
  113   3.2.3.3.Un mapped Dat a Element1 1
  114   3.3.Concep tual Infra structure  Design11
  115   3.3.1.Syst em Critica lity and H igh Availa bility11
  116   3.3.2.Spec ial Techno logy12
  117   3.3.3.Tech nology Loc ations12
  118   3.3.4.Conc eptual Inf rastructur e Diagram1 3
  119   3.3.4.1.Lo cation of  Environmen ts and Ext ernal Inte rfaces13
  120   3.3.4.2.Co nceptual P roduction  String Dia gram15
  121   4.System A rchitectur e15
  122   4.1.Hardwa re Archite cture15
  123   4.2.Softwa re Archite cture15
  124   4.3.Networ k Architec ture16
  125   4.4.Servic e Oriented  Architect ure / ESS1 6
  126   4.5.Enterp rise Archi tecture17
  127   5.Data Des ign17
  128   5.1.DBMS F iles17
  129   5.2.Non-DB MS Files17
  130   5.3.Data V iew18
  131   6.Detailed  Design18
  132   6.1.Hardwa re Detaile d Design18
  133   6.2.Softwa re Detaile d Design19
  134   6.2.1.Conc eptual Des ign19
  135   6.2.1.1.Pr oduct Pers pective19
  136   6.2.1.1.1. User Inter faces19
  137   6.2.1.1.2. Hardware I nterfaces1 9
  138   6.2.1.1.3. Software I nterfaces1 9
  139   6.2.1.1.4. Communicat ions Inter faces20
  140   6.2.1.1.5. Memory Con straints20
  141   6.2.1.1.6. Special Op erations20
  142   6.2.1.2.Pr oduct Feat ures20
  143   6.2.1.3.Us er Charact eristics20
  144   6.2.1.4.De pendencies  and Const raints20
  145   6.2.2.Spec ific Requi rements21
  146   6.2.2.1.Da tabase Rep ository21
  147   6.2.2.2.Sy stem Featu res22
  148   6.2.2.3.De tailed Des ign by NSR 22
  149   6.2.2.3.1. NSR 201204 07: Two Ne w Health S ummary Obj ects22
  150   6.2.2.4.De sign Eleme nt Tables3 9
  151   6.2.2.4.1. Routines ( Entry Poin ts)40
  152   6.2.2.4.2. Templates4 1
  153   6.2.2.4.3. Bulletins4 2
  154   6.2.2.4.4. Data Entri es Affecte d by the D esign43
  155   6.2.2.4.5. Unique Rec ord(s)44
  156   6.2.2.4.6. File or Gl obal Size  Changes44
  157   6.2.2.4.7. Mail Group s44
  158   6.2.2.4.8. Security K eys45
  159   6.2.2.4.9. Options47
  160   6.2.2.4.10 .Protocols 49
  161   6.2.2.4.11 .Remote Pr ocedure Ca ll (RPC)50
  162   6.2.2.4.12 .Constants  Defined i n Interfac e51
  163   6.2.2.4.13 .Variables  Defined i n Interfac e51
  164   6.2.2.4.14 .Types Def ined in In terface51
  165   6.2.2.4.15 .GUI52
  166   6.2.2.4.16 .GUI Class es52
  167   6.2.2.4.17 .Current F orm52
  168   6.2.2.4.18 .Modified  Form52
  169   6.2.2.4.19 .Component s on Form5 2
  170   6.2.2.4.20 .Events53
  171   6.2.2.4.21 .Methods53
  172   6.2.2.4.22 .Special R eferences5 3
  173   6.2.2.4.23 .Class Eve nts53
  174   6.2.2.4.24 .Class Met hods53
  175   6.2.2.4.25 .Class Pro perties53
  176   6.2.2.4.26 .Uses Clau se53
  177   6.2.2.4.27 .Forms53
  178   6.2.2.4.28 .Functions 54
  179   6.2.2.4.29 .Dialog56
  180   6.2.2.4.30 .Help Fram e57
  181   6.2.2.4.31 .HL7 Appli cation Par ameter58
  182   6.2.2.4.32 .HL7 Logic al Link59
  183   6.2.2.4.33 .COTS Inte rface59
  184   6.3.Networ k Detailed  Design60
  185   6.4.Securi ty and Pri vacy60
  186   6.4.1.Secu rity60
  187   6.4.2.Priv acy60
  188   6.5.Servic e Oriented  Architect ure / ESS  Detailed D esign61
  189   6.5.1.Serv ice Descri ption for  <Consumed  Service Na me>61
  190   6.5.2.Serv ice Design  for <Prov ided Servi ce Name>61
  191   6.5.2.1.In troduction 61
  192   6.5.2.1.1. Purpose an d Scope of  Service61
  193   6.5.2.1.2. Links to O ther Docum ents61
  194   6.5.2.2.Se rvice Deta ils62
  195   6.5.2.2.1. Service Id entificati on62
  196   6.5.2.2.2. Service Ve rsions63
  197   6.5.2.2.3. Summary of  Design an d Platform  Details63
  198   6.5.2.2.3. 1.SOA Patt ern(s) Imp lemented63
  199   6.5.2.2.3. 2.COTS Pla tform vend or names a nd version s for host ing platfo rm63
  200   6.5.2.3.De pendencies 63
  201   6.5.2.4.Se rvice Desi gn Details 63
  202   6.5.2.4.1. Interface  Technical  Specs63
  203   6.5.2.4.1. 1.Service  Invocation  Type64
  204   6.5.2.4.1. 2.Service  Interface  Type64
  205   6.5.2.4.1. 3.Service  Name64
  206   6.5.2.4.1. 4.Interfac e64
  207   6.5.2.4.1. 5.End Poin ts64
  208   6.5.2.4.1. 6.Operatio ns or Meth ods64
  209   6.5.2.4.1. 7.Message  Schemas64
  210   6.5.2.4.2. Informatio n Model65
  211   6.5.2.4.2. 1.Class Di agram and  Descriptio n of Entit ies Involv ed65
  212   6.5.2.4.2. 2.Mappings  from ELDM  to Standa rds Based  Schemas65
  213   6.5.2.4.3. Behavior M odel (AKA  Use Case R ealization )65
  214   6.5.2.4.3. 1.Use Case s (Use Cas e Model)65
  215   6.5.2.4.3. 2.Interact ion Diagra ms65
  216   6.5.2.5.Ga p Analysis 65
  217   6.5.2.5.1. Variances  from Enter prise Targ et Archite cture66
  218   6.5.2.5.2. Variances  from SLDs6 6
  219   6.5.2.5.3. Variances  from Stand ards and P olicies66
  220   6.5.2.5.4. Justificat ion for Ex ceptions a nd Mitigat ion66
  221   7.External  System In terface De sign66
  222   7.1.Interf ace Archit ecture66
  223   7.2.Interf ace Detail ed Design6 7
  224   8.Human-Ma chine Inte rface68
  225   8.1.Interf ace Design  Rules68
  226   8.2.Inputs 68
  227   8.3.Output s68
  228   8.4.Naviga tion Hiera rchy69
  229   8.4.1.Scre en [x.1]69
  230   8.4.2.Scre en [x.2]69
  231   8.4.3.Scre en [x.3]69
  232   9.Attachme nt A – App roval Sign atures69
  233   A.Addition al Informa tion70
  234   A.1.Identi fication o f Technolo gy and Sta ndards70
  235   A.2.Constr aining Pol icies, Dir ectives an d Procedur es70
  236   A.3.Requir ements Tra ceability  Matrix70
  237   A.4.Packag ing and In stallation 70
  238   A.5.Design  Metrics70
  239  
  240   Introducti on
  241   The purpos e of this  System Des ign Docume nt (SDD) i s to cover  the Compu terized Pa tient Reco rd System  (CPRS) Enh ancements  Phase II ( EP2) proje ct. The CP RS EP2 pro ject inclu des multip le indepen dent relea ses, as we ll as a re lease for  the CPRS G raphical U ser Interf ace (GUI)  applicatio n and asso ciated Vis tA patches .
  242   Scope
  243   Requiremen ts associa ted with C PRS EP2 ar e stored i n the Rati onal © too l. The fir st schedul ed release  will be f or NSR 201 20407 and  requiremen ts are her e: NSR 201 20407 Rele ase Collec tion
  244   User Profi les
  245   There are  several ty pes of use rs who uti lize CPRS.  Primarily , the inte nded users  are provi ders such  as physici ans, nurse s, repirat ory therap ists, phar macists, a nd clergy  who are de aling with  patient c are. In ad dition, th ere are la boratorian s, financi al staff,   and other s who use  CPRS to fi nd patient -related i nformation  or enter  progress n otes relat ed to pati ents. 
  246   Describe t he intende d user bas e of the p roposed sy stem. 
  247   Describe t he attribu tes of the  user comm unity (and  their pro ficiency w ith softwa re systems ) and the  technical  community  (and their  familiari ty with su pport and  maintenanc e). 
  248   Background
  249   Overview o f the Syst em
  250   Provide a  brief over view of th e system i n business  terms, i. e. 
  251   Explain wh at the sys tem does? 
  252   The benefi ts of deve loping the  system. 
  253   This secti on should  identify: 
  254   The partic ipants in  its operat ion, and 
  255   The functi ons that t hey perfor m. 
  256   And explai n the role  of partie s external  to the Of fice of In formation  and Techno logy (OIT) .
  257   Overview o f the Busi ness Proce ss
  258   Provide an  overview  of the bus iness proc esses that  this appl ication wi ll support . Provide  a link to  the RSD.
  259   Overview o f the Sign ificant Re quirements
  260   Provide a  link to th e RSD and  the BRD.   Provide a  link to a  Rational r eport whic h can prov ide requir ements for  the follo wing:
  261   Overview o f signific ant functi onal requi rements
  262   Overview o f the func tional wor kload/perf ormance re quirements
  263   Overview o f operatio nal requir ements
  264   Overview o f pivotal  technical  requiremen ts
  265   Overview o f the secu rity and p rivacy req uirements
  266   Overview o f system c riticality  and high  availabili ty require ments
  267   Overview o f single s ign on req uirements
  268   Overview o f use of e nterprise  portals
  269   Overview o f special  device req uirements
  270   Conceptual  Design
  271   This secti on of the  SDD provid es details  about the  following  topics:
  272   Conceptual  Applicati on Design
  273   Conceptual  Data Desi gn
  274   Conceptual  Infrastru cture Desi gn
  275   Conceptual  Applicati on Design
  276   Provide de tails of t he ‘As-is”  view of t he existin g system a long with  the design  of “the c urrent inc rement” an d the “To- be.”.  The  “To-Be” v iew should  include t he future  applicatio n context,  and appli cation hig h level de sign. The  “current i ncrement”  view shoul d have app lication c ontext and  high leve l design o f this spe cific incr ement that  this SDD  addresses.
  277   Applicatio n Context
  278   .
  279   Provide a  diagram sh owing the  context wi thin which  the appli cation exi sts. The d iagram sho uld includ e: 
  280   One object  for the s ystem that  is the su bject of t his design
  281   One object  for each  system or  external s ervice wit h which th is system  interfaces
  282   One object  for each  Program Of fice syste m or subsy stem with  which this  system in teracts, a nd 
  283   One for ea ch data st ore that t his system  shares wi th other s ystems.
  284  
  285  
  286  
  287   Figure 1:  Sample App lication C ontext Dia gram
  288   Table 5 de scribes th e informat ion in the  Applicati on Context  Diagram i n four sec tions. Not e that the  system fo r which th is design  applies is  represent ed by a si ngle objec t (typical ly in the  center of  the diagra m). Theref ore, it is  not refer red to in  Table 5 be low.
  289   Table 5 (G rouping):  Applicatio n Context  Descriptio n
  290   Object
  291   ID
  292   Name
  293   Descriptio n
  294   Interface  Name
  295   Interface  System
  296   < ID from  diagram>
  297   <Enter nam e of exter nal system , organiza tion, or a gency>
  298   <High leve l discussi on of the  purpose of  the infor mation int erchange>
  299   <Name of e ach of the  Interface s to this  object>
  300   <Systems w ith which  this syste m interfac es>
  301   Interfaces  External  to OI&T
  302   ID
  303   Name
  304   Related Ob ject
  305   Input Mess ages
  306   Output Mes sages
  307   External P arty
  308   < ID from  diagram>
  309   <Interface  name from  the objec t rows abo ve>
  310   <Object fr om the lis t above th at is the  source of  this inter face>
  311   <For each  input mess age, enter  a busines s descript ion of the  data bein g input>
  312   <For each  output mes sage, ente r a busine ss descrip tion of th e data bei ng output>
  313   <Name of e xternal pa rty>
  314  
  315   Interfaces  Internal  to OI&T
  316   ID
  317   Name
  318   Related Ob ject
  319   Input Mess ages
  320   Output Mes sages
  321   External P arty
  322   < ID from  diagram>
  323   <Interface  name from  the objec t rows abo ve>
  324   <Object fr om the lis t above th at is the  source of  this inter face>
  325   <For each  input mess age, enter  a busines s descript ion of the  data bein g input>
  326   <For each  output mes sage, ente r a busine ss descrip tion of th e data bei ng output>
  327   <Name of e xternal pa rty>
  328   Externally  Shared Da ta Stores
  329   ID
  330   Name
  331   Data Store d
  332   Owner
  333   Access
  334   < ID from  diagram>
  335   <Name of t he data st ore>
  336   <Descripti on of the  data being  stored>
  337   <This Syst em / Name  of OIT or  external o rganizatio n>
  338   <Enter the  Create, R ead, Updat e, or Dele te (CRUD)  operations  that this  system do es on this  data stor e>
  339   High-Level  Applicati on Design
  340   The High-L evel Appli cation Des ign identi fies the m ajor compo nents of t he applica tion and t he relatio nships of  the major  applicatio n componen ts to each  other and  to the su rrounding  applicatio ns. The ma jor compon ents of th e applicat ion are at  the subsy stem or to p-level se rvice area . Many dif ferent gra phical for mats are a cceptable  for the Hi gh-Level A pplication  Design Di agram. Low er-level s ervices wi ll be defi ned and do cumented i n the Logi cal Applic ation Desi gn section .
  341   Error! Ref erence sou rce not fo und. illus trates a H igh-Level  Applicatio n Design i n the form  of a data flow diagr am. This d iagram dif fers from  the diagra m in Figur e 2 in tha t the sing le object  representi ng this sy stem in Fi gure 2 is  decomposed  into its  major comp onents. Us
  342   Table 6 to  describe  the object s in Error ! Referenc e source n ot found..
  343   Note: If a n extensio n to a leg acy system  is being  developed  without us e of servi ces, all r eferences  to “Servic e” should  be changed  to “Subsy stem.” 
  344   A Collabor ation Diag ram, or in  the case  of Service s, a Servi ce Capabil ity Diagra m may be i ncluded in stead or a n Applicat ion Diagra m if it il lustrates  the subjec t better.
  345  
  346  
  347  
  348   Figure 2:  Sample Hig h-Level Ap plication  Design
  349  
  350   Table 6: O bjects in  the High L evel Appli cation Des ign
  351   Objects /  Components  to be Bui lt or Modi fied
  352   ID
  353   Name 
  354   Descriptio n
  355   Service or  Legacy Co de
  356   External I nterface N ame
  357   External I nterface I D
  358   Internal I nterface N ame
  359   Internal I nterface I D
  360   SDP Sectio ns 1&2
  361   < ID from  diagram>
  362   <Name of h igh level  service or  internal  subsystems >
  363   <Business  level disc ussion of  the functi on or role  of the se rvice or s ubsystem>
  364   <Service /  modificat ion to leg acy system >
  365   <Name of e ach of the  external  interfaces  to this o bject>
  366   <ID of eac h of the e xternal in terfaces t o this obj ect>
  367   <Name of e ach of the  internal  interfaces  to this o bject>
  368   <ID of eac h of the i nternal in terfaces t o this obj ect>
  369   [Approved  / Submitte d / Being  Developed]
  370   Internal D ata Stores
  371   ID
  372   Name
  373   Data Store d
  374   Steward
  375   Access
  376   < ID from  diagram>
  377   <Name of t he data st ore>
  378   <Descripti on of the  data being  stored>
  379   <Name of t he system/ subsystem  /service t hat is the  steward f or the dat a>
  380   <Which CRU D operatio ns does th is system  do on this  data stor e>
  381   Applicatio n Location s
  382   Use Table  7 to speci fy the loc ations at  which the  applicatio n componen ts will be  hosted.
  383   Considerat ion should  be given  to adopt c loud techn ologies as  potential  solutions . Leveragi ng cloud t echnologie s is part  of a large r effort b y the Offi ce of Mana gement and  Budget (O MB) to ref orm Federa l IT Manag ement.  Co nsideratio ns such as  regional  deployment s etc. sho uld be doc umented in  this sect ion.  
  384   Table 7: A pplication  Locations
  385   Applicatio n Componen t
  386   Descriptio n
  387   Location a t Which Co mponent is  Run
  388   Type
  389   <Component  name>
  390   <Descripti on>
  391   <Facility  name>
  392   <Presentat ion Logic/ Business L ogic/Data  Logic/Inte rface Code >
  393   Table 8: A pplication  Users
  394   Applicatio n Componen t
  395   Location
  396   User
  397   <Component  name>
  398   <Facility  name>
  399   <Role>
  400   Conceptual  Data Desi gn
  401   Project Co nceptual D ata Model
  402   A project  conceptual  data mode l (CDM) is  a high-le vel repres entation o f the data  entities  and their  relationsh ips. It do es not nor mally incl ude the da ta element s that com prise each  entity. I t is a fir st step to ward devel oping the  more detai led logica l data mod el (LDM) t hat will b e provided  during th e Logical  Data Desig n.  
  403   Figure 3 i llustrates  a sample  of a proje ct CDM.
  404   Figure 3:  Sample Pro ject Conce ptual Data  Mode
  405  
  406   Database I nformation
  407   Use Table  9 to ident ify all th e database s that wil l be creat ed, replac ed, interf aced with,  or whose  structure  will be mo dified (i. e., add or  delete ta bles or ad d or delet e columns  to a table ) as part  of this ef fort.
  408   Table 9: D atabase In ventory
  409   Database N ame
  410   Descriptio n
  411   Type
  412   Steward
  413   <Name>
  414   <Descripti on>
  415   <Create/Re place/Inte rface /Mod ify>
  416   <Applicati on/Organiz ation that  is the st eward>
  417   User Inter face Data  Mapping
  418   This secti on describ es and def ines the f ormat and  informatio n that wil l be avail able for u sers of th e product  to be able  to enter  data into  the databa se or to r etrieve in formation  from the d atabase, i f applicab le.
  419   Applicatio n Screen I nterface
  420   Create a n ew subsect ion for ea ch screen  of the Gra phical Use r Interfac e (GUI) th at users w ill have a ccess to,  in order t o enter or  update in formation  in the dat abase.)
  421   <Insert na me of scre en> 
  422   Figure 4:  <screen na me> Screen  represent s the scre en that <d escribes w hat the sc reen accom plishes>;  Table 10 d escribes i t. Paste a  screensho t below an d complete  the table  to descri be the scr een.
  423  
  424  
  425  
  426   Figure 4:  <screen na me> Screen
  427   Table 10:  <screen na me> Screen  Descripti on
  428   Graphical  User Inter face (GUI)  Field
  429   Table (Dat abase Tabl e that fie ld connect s to)
  430   Field (Fie ld in Tabl e that the  GUI field  connects  to)
  431   Comments
  432   <Name>
  433   <xxx>
  434   <PATIENT_  NAME>
  435   <Add any c omments or  descripti ve informa tion that  would be r elevant to  the teste r>
  436   <SSN>
  437   <xxx>
  438   <SSN>
  439  
  440   Date of Bi rth (Age)
  441   <yyyy>
  442   DATE_OF_BI RTH DATE_O F_DEATH (i f deceased )
  443  
  444   Applicatio n Report I nterface
  445   This secti on describ es and def ines the r eports tha t will be  available  in the use r interfac e, if appl icable.
  446   <Insert na me of repo rt> 
  447   <Create a  new subsec tion for e ach report > Figure 6  represent  <name> sc reen and T able 16 de scribes it
  448   Figure 5 r epresents  the <repor t name>; T able 11 de scribes it . Paste a  screenshot  of the re port below  and compl ete the ta ble to des cribe the  report.
  449  
  450  
  451  
  452   Figure 5:  < Report n ame> Repor t
  453  
  454   Table 11:  <Report na me> Descri ption
  455   Report Col umn
  456   Data Sourc e <Table N ame. Field name>
  457   Patient
  458   <xxx.PATIE NT_NAME>
  459   SSN
  460   <xxx.SSN>
  461   DoB
  462   <yyyy.DATE _OF_BIRTH>
  463   Unmapped D ata Elemen t
  464   In this se ction desc ribe any d atabase el ement that  was not m apped to a  screen an d the reas on the dat a element( s) was not  mapped. T his sectio n may be s kipped if  there is n o User Int erface inv olved in t he project , such a b uilding a  service of fering etc .
  465   Conceptual  Infrastru cture Desi gn
  466   The Concep tual Infra structure  Design sho uld descri be any uni que techno logy that  will be us ed, which  are either  part of t his system , or will  attach to  this syste m.
  467   . Because  the system  is at a p reliminary  design st age, it is  expected  that the i nformation  provided  may need t o be chang ed during  later desi gn stages  or increme nts.
  468   The Concep tual Infra structure  Design is  a high-lev el overvie w of the i nfrastruct ure that w ill be use d to suppo rt the app lication.  Primary em phasis is  on the env ironments  that will  be require d and the  locations  at which t hey will b e installe d. The Con ceptual In frastructu re Design  becomes mo re detaile d at later  stages as  more info rmation is  collected  regarding  the syste m, and the  infrastru cture requ irements ( i.e., capa city requi rements) a re better  known.
  469   System Cri ticality a nd High Av ailability  
  470   Describe t he approac h that wil l be taken  to meetin g the syst em critica lity and h igh availa bility req uirements  identified  in Sectio n 2.5.6, i ncluding t he extent  to which g eographica lly distri buted, hig h availabi lity desig ns are pla nned. Desc ribe the a pproach th at is take n towards  high avail ability as  well as a ny workloa d distribu tion schem e that is  planned to  support t he high av ailability  implement ation (e.g ., restric ting updat es to a si ngle node)
  471   If the sys tem is not  mission c ritical an d high ava ilability  is not req uired, the n describe  the appro ach that w ill be tak en to prov ide the re quisite le vel of ava ilability  and disast er recover y.
  472   Special Te chnology
  473   If any spe cial techn ology was  identified  in Sectio n 2.5.9 as  part of t his system , describe  the devic e and the  type of lo cation at  which it w ill be ins talled. Th is informa tion may b e provided  using Tab le 12.
  474   Table 12:   Special T echnology  Requiremen ts
  475   Special Te chnology
  476   Descriptio n
  477   Notional L ocation
  478   TRM Status
  479   <Name>
  480   <Business  language d escription >
  481   <At what t ype of loc ation will  this tech nology be  deployed?>
  482   <Is this t echnology  in the TRM ?
  483   (Yes / No) >
  484   Technology  Locations
  485   This secti on describ es the var ious techn ology comp onents tha t will be  used.  If  known, pro vide the n ame of the  datacente r at which  the techn ology will  be instal led. If no t, specify  as Site A , Site B e tc. Provid e this inf ormation i n Table 13
  486   Table 13:  Technology  Location  Details
  487   Technology  Component
  488   Production  1
  489   Location
  490   Usage
  491   Workstatio ns
  492  
  493  
  494   Special Ha rdware
  495  
  496  
  497   Interface  Processors
  498  
  499  
  500   Legacy Mai nframe
  501  
  502  
  503   Legacy App lication S erver
  504  
  505  
  506   Legacy Dat abases
  507  
  508  
  509   Other
  510  
  511  
  512  
  513   Technology  Component
  514   Production  2
  515   Location
  516   Usage
  517   <copy from  Prod 1 se t, or ente r new ones  as approp riate>
  518  
  519  
  520  
  521   Technology  Component
  522   Certificat ion
  523   Location
  524   Usage
  525  
  526  
  527  
  528  
  529   Technology  Component
  530   Education
  531   Location
  532   Usage
  533  
  534  
  535  
  536  
  537   Technology  Component
  538   Test
  539   Location
  540   Usage
  541  
  542  
  543  
  544  
  545   Technology  Component
  546   Developmen t
  547   Location
  548   Usage
  549  
  550  
  551  
  552   Conceptual  Infrastru cture Diag ram
  553   Location o f Environm ents and E xternal In terfaces
  554   Create a d iagram to  show the e nvironment s that wil l be suppo rted. As i llustrated  in 
  555    Figure 6,  the diagr am should  show the f ollowing:
  556   Local netw orks to wh ich they w ill be att ached (Pro duction, T est, or De velopment)
  557   Locations  at which t hey will b e installe d
  558   External c onnections  (each ext ernal inte rface shou ld be show n in terms  of where  it enters  the networ k).
  559  
  560  
  561  
  562    Figure 6:  Sample Co nceptual N etworks an d Environm ents
  563  
  564   Conceptual  Productio n String D iagram
  565   Create a d iagram to  show the c onfigurati on of a si ngle produ ction stri ng. 
  566   Additional  component s, such as  the mainf rame, othe r Web serv ers, or ot her major  components  should be  included  if they ar e expected  to be req uired.
  567  
  568  
  569  
  570   Figure 7:  Conceptual  Productio n String D iagram
  571   System Arc hitecture
  572   This secti on describ es the sys tem and/or  subsystem (s) archit ecture for  the proje ct. Discus s the gene ral archit ectural de cisions th at have be en approve d. Include  diagrams  where appr opriate. 
  573   Hardware A rchitectur e
  574   Describe t he system  hardware a rchitectur e and indi cate wheth er the pro cessing sy stem is di stributed  or central ized. List  and descr ibe the ha rdware mod ules with  diagrams s howing the  connectiv ity betwee n the modu les. If po ssible, id entify the  type, num ber, and l ocation of  servers,  workstatio ns, proces sors, back up systems , and outp ut devices . Include  informatio n related  to the cap acity plan ning of th e system.
  575   Software A rchitectur e
  576   Describe t he overall  system so ftware and  organizat ion. List  and descri be the sof tware modu les (i.e.,  including  functions , subrouti nes, or cl asses), pr ogramming  languages,  and devel opment too ls. 
  577   Describe a ll softwar e required  to suppor t the syst em, and sp ecify the  physical l ocation of  all softw are system s. Identif y database  platforms , compiler s, utiliti es, operat ing system s, and com munication s software
  578   Provide di agrams tha t illustra te the seg mentation  levels dow n to the l owest leve l. Include  names and  reference  numbers f or all fea tures on t he diagram s. Include  a narrati ve that ex pands on a nd enhance s the unde rstanding  of the fun ctional br eakdown. 
  579   Note: Diag rams shoul d map to t he Require ments Spec ification  Document’s  data flow  diagrams.
  580   Network Ar chitecture
  581   Describe c ommunicati ons within  the syste m, such as  local are a networks  (LANs) an d buses. I nclude the  communica tions arch itecture(s ) being im plemented,  such as X .25 and to ken ring. 
  582   Provide a  diagram de picting th e communic ations pat h(s) betwe en the sys tem and su bsystem mo dules. 
  583   Service Or iented Arc hitecture  / ESS
  584   This subse ction of t he SDD sho uld put th e product  into persp ective wit h other re lated prod ucts. This  is achiev ed in the  high level  design. 
  585   If the pro duct is in dependent  and totall y self-con tained, it  should be  so stated  here. 
  586   If the SDD  defines a  product t hat is a c omponent o f a larger  system, a s occurs f requently,  then this  subsectio n should r elate the  requiremen ts of that  larger sy stem to fu nctionalit y of the s oftware an d should i dentify in terfaces b etween tha t system a nd the sof tware. It  is highly  recommende d that the  SDD and o ther relat ed artifac ts of the  larger sys tem are in cluded by  reference,  with link s and not  duplicate  huge chunk s of it he re, which  could pote ntially ge t out of s ync. Integ ration pro jects depe nd on all  parties un derstandin g the same  things ab out their  relationsh ips, and s uch inform ation shou ld be in o ne documen t and refe renced by  link as ne eded.
  587  
  588   A block di agram show ing the ma jor compon ents of th e larger s ystem, int erconnecti ons, and e xternal in terfaces c an be help ful.
  589  
  590   Services P rovided: T hose share d services  that will  be provid ed as part  of this a pplication  (if the p roject is  a combined  solution  and servic e developm ent projec t).  The D ata Exchan ges should  then be i ncluded as  part of w hatever se rvice is p roviding t hem. This  may also b e describe d as an at tribute of  the compo nents list ed in the  high level  applicati on design  when appro priate.
  591   Service Re quired/Con sumed: Thi s would be  the servi ces this s olution/ap plication  depends on .  Again,  data excha nges shoul d be inclu ded as par t of the s ervice des criptions.  This shou ld also be  adequatel y describe d in the c onceptual  and integr ation sect ions as ap propriate.
  592   Provide a  diagram de picting th e Enterpri se Shared  Services b etween the  system an d subsyste m modules.
  593   If the sys tem curren tly being  built is i n-flight o r in-trans ition, the n depict t he as-is,  interim an d target s tates of t he system  with diagr ams, and i dentify th e Enterpri se Shared  Services c onsumed or  provided.  This will  be part o f the conc eptual sol ution desi gn.
  594   If the sol ution prop osed is a  duplicatio n of an ex isting ser vice, or a  stand-alo ne silo so lution, th en appropr iate justi fication n eeds to be  provided.
  595   Enterprise  Architect ure
  596   Describe t he Enterpr ise Archit ecture of  the system
  597   Show adher ence to th e VA Techn ical Refer ence Model  (TRM)/ St andards Pr ofile (SP) . New syst em develop ment and s election m ust adhere  to approv ed standar ds and rul es, unless  it proves  to be mor e cost-eff ective ove r the life  of the ap plication  to deviate  from the  standards.  The stand ards, stra tegies, an d guidelin es establi sh the fun damental t echnologie s enabling  the VA to  meet many  of its bu siness and  informati on system  goals. By  using thes e standard s, the VA  can promot e interope rability,  portabilit y and adap tability w ithin syst ems, promo te quality  assurance , place th e VA in a  position t o utilize  current te chnology,  and provid e a framew ork for IT  applicati on and inf rastructur e developm ent. The c urrent TRM /SP is loc ated VA En terprise A rchitectur e (EA) v2. 1 at http: // DNS . URL/T o olReques t P a
g e.aspx?tre qid=34239 .
  598    
  599   Data Desig n
  600   This secti on outline s the desi gn of the  database m anagement  system (DB MS) and no n-DBMS fil es associa ted with t he system.  For netwo rks, detai l the dist ribution o f data and  identify  any change s to the l ogical dat a model th at may occ ur due to  software o r hardware  requireme nts. 
  601   Note: Prov ide a data  dictionar y appendix  showing d ata elemen t name, ty pe, length , source,  validation  rules, ma intenance,  data stor es, output s, aliases , and desc ription. 
  602   DBMS Files  
  603   If a datab ase will b e used lis t and desc ribe the l ogical req uirements  that exist  for data  formats, s torage cap abilities,  data rete ntion, dat a integrit y, etc.
  604   Describe h ow the dat abase will  be design ed, includ ing the fo llowing in formation,  as approp riate:
  605   Logical mo del; provi de normali zed table  layouts, e ntity rela tionship d iagrams, a nd other l ogical des ign inform ation
  606   DBMS schem as, subsch emas, reco rds, sets,  tables, s torage pag e sizes
  607   Access met hods (such  as indexe d, via set , sequenti al, random  access, s orted poin ter array)
  608   Estimate t he databas e file siz e or volum e of data  within the  file, dat a pages, i ncluding o verhead re sulting fr om access  methods an d free spa ce
  609   Definition  of the up date frequ ency of th e database  tables, v iews, file s, areas,  records, a nd sets
  610   Estimates  on the num ber of tra nsactions  that the d atabase ma y have to  process.
  611   Non-DBMS F iles 
  612   Describe a ll non-DBM S files in cluding na rratives o n the usag e of each  file. 
  613   Identify i f the file  is used f or input,  output, or  both; ide ntify temp orary file s, which m odules rea d and writ e the file , and simi lar. 
  614   Identify r ecord stru ctures, re cord keys,  indices,  and refere nce data e lements wi thin the r ecords.
  615   Define rec ord length  and block ing factor s.
  616   Define the  file acce ss method  such as: i ndex seque ntial, vir tual seque ntial, ran dom access .
  617   Estimate t he file si ze or volu me of data  within th e file.
  618   Define the  update fr equency of  the file  if appropr iate. Prov ide the es timated nu mber of tr ansactions  per unit  time and t he statist ical mean,  mode, and  distribut ion of tho se transac tions.
  619   Data View 
  620   A "Data Vi ew" should  be includ ed in the  Architectu ral Repres entation w henever pe rsistent d ata object s are incl uded in th e system ( they are t ypically p resent in  most softw are system s). The da ta view de scribes th e logical  data model  of the sy stem and i ncludes an  Entity Re lationship  Diagram ( ERD). For  a descript ion of Ent ity Relati onship dia gramming p lease refe r to the w hitepaper  <http://ww w-106.ibm. com/develo perworks/r ational/li brary/cont ent/03July /2500/2785 /2785_uml. pdf>
  621   Detailed D esign
  622   This secti on describ es the pro posed desi gn in deta il. Provid e the nece ssary info rmation fo r the deve lopment te am to inte grate the  hardware c omponents  and write  the softwa re code, s o that the  hardware  and softwa re compone nts will p rovide a f unctional  product. T his is the  detailed  design, ba sed upon t he concept ual design  (high lev el) that w as describ ed in the  document u p to this  point. 
  623   Note: Ever y design i tem should  map back  to the Req uirements  Specificat ion Docume nt. These  should be  captured i n the Requ irement Tr aceability  Matrix (R TM). 
  624   Hardware D etailed De sign
  625   The inform ation requ ested in t his sectio n may be p rovided by  Engineeri ng and/or  the Develo pers. The  informatio n provided  here is m ainly for  use by Eng ineering a nd Operati ons. 
  626   In this se ction, pro vide enoug h informat ion for th e develope rs to buil d and/or p rocure the  system’s  hardware.  The level  of detail  requested  should be  treated as  a general  guideline  and can b e omitted  if it need s to be fi lled in by  Engineeri ng and Ope rations.
  627   Note: If t his sectio n becomes  too length y, conside r incorpor ating it a s an appen dix or ref erence it  in a separ ate docume nt. Add ad ditional d iagrams, i f necessar y, to desc ribe each  component  and its fu nctions.
  628   Include th e followin g informat ion (as ap plicable):
  629   How much c ompute cap acity? (MF LOPS, TPMs  etc.)
  630   System Mem ory
  631   Local and  Shared sto rage
  632   Network re quirements  (Bandwidt h, Latency  etc.)
  633   Public or  Private cl oud
  634   Software D etailed De sign 
  635   This secti on provide s conceptu al and fin al detaile d informat ion associ ated with  the design  of the so ftware bei ng deliver ed. This s hould be a n extensio n of the c orrespondi ng section  from Sect ion 3.1, b ut should  contain ad ditional d etail as t he project  progresse s.
  636   Conceptual  Design
  637   This secti on introdu ces the co nceptual i nformation  that esta blishes th e basis fo r how the  software w ill be bui lt.
  638   Product Pe rspective
  639   This subse ction of t he SDD sho uld put th e product  into persp ective wit h other re lated prod ucts. If t he product  is indepe ndent and  completely  self-cont ained, it  should be  stated her e. If the  SDD define s a produc t that is  a componen t of a lar ger system , then thi s subsecti on should  relate the  requireme nts of tha t larger s ystem to f unctionali ty of the  software a nd should  identify i nterfaces  between th at system  and the so ftware.
  640   A block di agram show ing the ma jor compon ents of th e larger s ystem, int erconnecti ons, and e xternal in terfaces c an be help ful.
  641   Sections o f the Requ irements S pecificati on Documen t (RSD) ca n be refer enced in t he subsect ions, if a pplicable.
  642   User Inter faces
  643   This subse ction shou ld specify  the logic al charact eristics o f each int erface bet ween the s oftware pr oduct and  its users.  This incl udes those  configura tion chara cteristics  necessary  to accomp lish the s oftware re quirements  (e.g., sc reens, rol l and scro ll, GUI in terface).
  644   Recommenda tion: Crea te a block  diagram s howing the  user inte rfaces.
  645   Hardware I nterfaces
  646   This subse ction shou ld specify  the logic al charact eristics o f each int erface bet ween the s oftware pr oduct and  the hardwa re compone nts of the  system. T his includ es configu ration cha racteristi cs (for ex ample, har dware plat form or ma inframe ve rsus perso nal comput er). It al so covers  matters su ch as what  devices t he system  will suppo rt, how th ey will be  supported , and prot ocols. Exa mples incl ude scanne rs, pen dr iven devic es, and ra dio freque ncy device s.
  647   Recommenda tion: Crea te a block  diagram s howing the  hardware  interfaces .
  648   Software I nterfaces
  649   This subse ction shou ld specify  the use o f other re quired sof tware prod ucts (e.g. , VA Kerne l, VA File Man, Windo ws NT); an d interfac es with ot her applic ations or  other syst ems such a s commerci al off-the -shelf (CO TS) or nat ional data bases. Spe cify the a pplication  interface s (e.g., t he linkage  between a n accounts  receivabl e system a nd a gener al ledger  system and  a COTS so ftware pac kage that  will be in terfaced u sing an ex isting int erface). T his sectio n should p rovide the  following  informati on for eac h required  software  product:
  650   Name
  651   Version nu mber
  652   Discussion  of the pu rpose of t he interfa cing softw are as rel ated to th is softwar e product
  653   Definition  of the in terface in  terms of  message co ntent and  format (e. g., Health  Level Sev en [HL7],  electronic  data inte rchange).
  654   Communicat ions Inter faces
  655   This subse ction shou ld specify  the vario us interfa ces to com munication s such as  local netw ork protoc ols, e-mai l, Transmi ssion Cont rol Protoc ol (TCP),  modems.
  656   Recommenda tion: Crea te a block  diagram s howing the  communica tions inte rfaces.
  657   Memory Con straints
  658   This subse ction shou ld specify  any appli cable char acteristic s and limi ts on memo ry or part ition size .
  659   Special Op erations
  660   This subse ction shou ld specify  the speci al operati ons requir ed by the  user such  as backup,  recovery,  and archi ving opera tions. 
  661   This secti on should  also inclu de any ope rations fo r external  devices o r COTS sys tems.
  662   Product Fe atures
  663   This subse ction shou ld provide  a summary  of the ma jor featur es of the  software.
  664   For exampl e, an SDD  for an acc ounting pr ogram migh t use this  section t o address  customer a ccount mai ntenance,  customer s tatement,  and invoic e preparat ion withou t mentioni ng the vas t amount o f detail t hat each o f those fe atures req uires.
  665   Note: For  clarity, r emember th ese items  when creat ing this s ection of  the SDD:
  666   The featur es should  be organiz ed in a wa y that mak es the lis t of featu res unders tandable t o the cust omer or to  anyone el se reading  the docum ent for th e first ti me.
  667   Textual or  graphical  methods c an be used  to show t he differe nt feature s and thei r relation ships.
  668   Such a dia gram is no t intended  to show a  design of  a product , but simp ly shows t he logical  relations hips among  variables .
  669   User Chara cteristics
  670   This subse ction shou ld describ e the gene ral charac teristics  of the int ended user s of the p roduct, in cluding ex perience a nd technic al experti se. It sho uld not be  used to s tate speci fic requir ements but  rather sh ould provi de the rea sons why c ertain spe cific requ irements a re specifi ed in the  RSD. 
  671   Dependenci es and Con straints
  672   This subse ction shou ld provide  a descrip tion of an y other it ems that w ill limit  the develo per’s opti ons. The f ollowing l ist includ es items t hat limit  the develo per’s opti ons.
  673   Regulatory  policies
  674   Hardware l imitations  (for exam ple, signa l timing r equirement s)
  675   Interfaces  to other  applicatio ns
  676   Parallel o peration
  677   Audit func tions
  678   Control fu nctions
  679   Higher-ord er languag e requirem ents
  680   Reliabilit y requirem ents
  681   Criticalit y of the a pplication
  682   Safety and  security  considerat ions
  683   Usability  (including  508 compl iance)
  684   This secti on of the  SDD should  contain a ll the sof tware desi gn to a le vel of det ail suffic ient to en able progr ammers to  develop a  system tha t satisfie s the requ irements d efined in  the RSD. I t should b e detailed  so as to  make it ea sy for tec hnical sta ff to find  the metho ds to comp lete the d esigned fu nction. 
  685   These requ irements s hould, at  minimum, i nclude the  following  items:
  686   An indicat ion of the  associate d requirem ent(s) in  the RSD wh ich is bei ng designe d
  687   A descript ion of the  functiona lity being  designed
  688   The design  entities  (and their  attribute s) affecte d
  689   The algori thm execut ed (where  appropriat e) to impl ement the  functional ity. 
  690   Because th e Dependen cies and C onstraints  section i s often th e largest  and most i mportant p art of the  SDD, the  following  principles  apply:
  691   Specific d esign shou ld be cros s-referenc ed to earl ier, relat ed documen ts (e.g.,  the RSD).
  692   All design  should be  uniquely  identifiab le.
  693   Items in t his sectio n should b e identifi ed from a  technical  level rath er than an  end user  level. (i. e., an opt ion name s hould be i dentified  rather tha n the menu  text for  that optio n).
  694   Specific R equirement s
  695   Database R epository
  696   The Databa se Reposit ory sectio n in the R SD can be  referenced  in this s ection.
  697   If a logic al databas e design i s a part o f the syst em, it sho uld be lis ted here.  Logical da tabase des ign should  specify t he logical  requireme nts for an y informat ion that i s to be pl aced into  a database . This may  include:
  698   Types of i nformation  used by v arious fun ctions
  699   Frequency  of use
  700   Accessing  capabiliti es
  701   Data entit ies and th eir relati onships
  702   Integrity  constraint s
  703   Data reten tion requi rements.
  704   Recommenda tion: Crea te a block  diagram s howing the  databases  and where  the data  resides.
  705   System Fea tures
  706   Describe t he system  features,  functional  requireme nts, sub-r equirement s, etc. wh ich can be  organized  in an out line forma t that mat ches the R SD. Specif ic formatt ing and or ganization  of the pa ragraphs ( i.e., sect ion number ing) is le ft to the  discretion  of the au thor and i s dependen t on the l evel of de tail essen tial to fu lly descri be the des ign. Some  designs ma y only req uire two l evels; oth ers may re quire mult iple level s. The inf ormation n ecessary t o define t he items o r to speci fy modific ations to  the items  affected b y the func tionality  being desi gned shoul d be provi ded in the  appropria te design  element ta bles. Wher e feasible , instead  of duplica ting the R SD, it can  be refere nced via a  link, to  avoid unne cessary du plication.  The key g oal is to  provide tr aceability  to requir ements.
  707   Detailed D esign by N SR
  708   NSR 201204 07: Two Ne w Health S ummary Obj ects
  709   The releas e for this  NSR consi sts of thr ee patches : GMTS*2.7 *125, PSS* 1*234, and  PSN*4*567
  710   Table 15 G MTSADH5
  711   Routines
  712   Activities
  713   Routine Na me
  714   GMTSADH5
  715   Enhancemen t Category
  716    New
  717    Modify
  718    Delete
  719    No Change
  720   RTM
  721   RM Artifac ts: 104111 0, 1041111 , 1041112,  1041113,  1041114, 1 041115, 10 41116 
  722   Related Op tions
  723   Ad-Hoc Que ry Report  in the CPR S GUI on t he Reports  tab
  724  
  725   Related Ro utines
  726   Routines “ Called By”
  727   Routines “ Called”   
  728  
  729   ORWRP2
  730   ^DIC, ^DID , ^GMTSU,  ^PSS50P7,  ^TIULX, ^Y TQGMTS
  731  
  732   Routines
  733   Activities
  734   Data Dicti onary (DD)  Reference s
  735   None
  736   Related Pr otocols
  737   None
  738   Related In tegration  Control Re gistration s (ICRs)
  739   2825 and 3 148
  740   Data Passi ng
  741    Input
  742    Output Re ference
  743    Both
  744    Global Re ference
  745    Local
  746   Input Attr ibute Name  and Defin ition
  747   Name: GMTS RT
  748   Definition : Root ^TM P global n ame where  data is pa ssed from  the GUI.
  749   Name: GMTS FI
  750   Definition : FileMan  file numbe r that is  being used  for selec tion.
  751   Name: GMTS FM
  752   Definition : The entr y in the f ile being  searched w here the l ist should  begin (FR OM).
  753   Name: DIR
  754   Definition : The ‘dir ection’ to  search –  either for ward or ba ckward
  755   Output Att ribute Nam e and Defi nition
  756   Name: ^TMP (“ORDATA”, $J
  757   Definition : Returns  the listin g of items  to select  from, bas ed on the  request fr om the GUI
  758  
  759   Current Lo gic
  760   Prior to t hese chang es, GMTSAD H5 didn’t  allow sele ction from  the PHARM ACY ORDERA BLE ITEM f ile (#50.7 ) or the V A DRUG CLA SS file (# 50.605)
  761   Modified L ogic (Chan ges are in  bold)
  762   GMTSADH5 ;  SLC/DCM,K ER - Healt h Summary  Ad Hoc RPC 's ;Nov 26 , 2018@22: 22
  763            ; ;2.7;Healt h Summary; **36,35,37 ,49,63,110 ,116,125** ;Oct 20, 1 995;Build 
  764   1
  765            ;
  766            ;  External  References
  767            ;    DBIA  1 268  ^AUTT HF(
  768            ;    DBIA  1 268  ^AUTT HF("B"
  769            ;    DBIA     67  ^LAB( 60
  770            ;    DBIA  1 256  ^PXD( 811.9
  771            ;    DBIA  3 059  ^TIU( 8925.1
  772            ;    DBIA 10 006  ^DIC
  773            ;    DBIA  2 052  $$GET 1^DID
  774            ;    DBIA  3 058  $$ISA ^TIULX
  775            ;    DBIA  6 345  SEL^Y TQGMTS
  776            ;    DBIA  4 543  SSET^ PSN50P65
  777            ;    DBIA  4 662  SSET^ PSS50P7
  778            ;
  779   COMP(Y)  ;  Get ADHOC  sub compo nents (FIL E 142.1)
  780            ;
  781            ;   Y(i)=(1) I;IFN^(2)C omponent N ame [Abb]^ (3)Occ Lim it^
  782            ;        (4) Time Limit ^(5)Header  Name^(6)H osp Loc Di sp^
  783            ;        (7) ICD Text D isp^(8)Pro v Narr Dis p^
  784            ;        (9) CPT Modifi er Disp^(1 0)Summary  Order
  785            ;
  786            N  GMTSI,GMT SII,GMTSIF N,GMTSC,X, X1
  787            S  Y(1)=$O(^ GMT(142,"B ","GMTS HS  ADHOC OPT ION",0))
  788            I  'Y(1) S Y (1)=-1 Q   ; Error, n o ADHOC ty pe defined
  789            S  (GMTSC,GM TSI)=0,GMT SII=Y(1)
  790            F   S GMTSI= $O(^GMT(14 2,GMTSII,1 ,GMTSI)) Q :'GMTSI  S  X=^(GMTSI ,0) D
  791            .  S GMTSIFN =$P(X,"^", 2),X1=$G(^ GMT(142.1, +GMTSIFN,0 ))
  792            .  Q:'$L(X1)   Q:$P(X1, "^",6)="P"   S GMTSC= GMTSC+1
  793            .  S Y(GMTSC )=GMTSI_"; "_GMTSIFN
  794            .  S Y(GMTSC )=Y(GMTSC) _"^"_$P(X1 ,"^")_" [" _$P(X1,"^" ,4)_"]"
  795            .  S Y(GMTSC )=Y(GMTSC) _"^"_$S($P (X1,"^",5) ="Y":$P(X, "^",3),1:" ")
  796            .  S Y(GMTSC )=Y(GMTSC) _"^"_$S($P (X1,"^",3) ="Y":$P(X, "^",4),1:" ")
  797            .  S Y(GMTSC )=Y(GMTSC) _"^"_$S($L ($P(X1,"^" ,9)):$P(X1 ,"^",9),1: $P(X,"^",5
  798   ))
  799            .  S Y(GMTSC )=Y(GMTSC) _"^"_$S($P (X1,"^",10 )="Y":$P(X ,"^",6),1: "")
  800            .  S Y(GMTSC )=Y(GMTSC) _"^"_$S($P (X1,"^",11 )="Y":$P(X ,"^",7),1: "")
  801            .  S Y(GMTSC )=Y(GMTSC) _"^"_$S($P (X1,"^",12 )="Y":$P(X ,"^",8),1: "")
  802            .  S Y(GMTSC )=Y(GMTSC) _"^"_$P(X, "^")
  803            Q
  804            ;
  805   COMPSUB(Y, GMTSUB) ;  Get subcom ponents fr om a prede fined ADHO C componen t
  806            ;  GMTSUB=de sired Adho c subcompo nent
  807            ;  Y(i)=ifn  of pointed  to file e ntry^name
  808            Q :'$G(GMTSU B)
  809            N  GMTSI,GMT SII,GMTSIF N,GMTSC,X, X1
  810            S  X=$O(^GMT (142,"B"," GMTS HS AD HOC OPTION ",0))
  811            I  'X Q  ; E rror, no A DHOC type  defined
  812            S  (GMTSC,GM TSI)=0,GMT SII=X
  813            F   S GMTSI= $O(^GMT(14 2,GMTSII,1 ,GMTSUB,1, GMTSI)) Q: 'GMTSI  S  X=^(GMTSI,
  814   0) D
  815            .  S GMTSIFN =+X,X1=$P( X,";",2)
  816            .  I '$D(@(" ^"_X1_+X_" ,0)")) Q
  817            .  S X=@("^" _X1_+X_",0 )"),GMTSC= GMTSC+1,Y( GMTSC)=GMT SIFN_"^"_$ P(X,"^")
  818            Q
  819            ;
  820   FILES(Y,GM TSCP) ; Ge t Files to  select fr om for a c omponent
  821            Q :'$G(GMTSC P)  Q:'$D( ^GMT(142.1 ,GMTSCP,1) )
  822            N  GMTSGEC,G MTSI,GMTSC ,X
  823            S  (GMTSGEC, GMTSI,GMTS C)=0
  824            I  $P($G(^GM T(142.1,GM TSCP,0)),U ,4)="GECH"  S GMTSGEC =1
  825            F   S GMTSI= $O(^GMT(14 2.1,GMTSCP ,1,GMTSI))  Q:'GMTSI   D
  826            . S X=^(GMTS I,0),GMTSC =GMTSC+1 S :GMTSGEC=1  X=X_"G" ; naked refe rence refe
  827   rs to ^GMT (142.1,GMT SCP,1,GMTS I from pre vious line
  828            . S Y(GMTSC) =GMTSI_"^" _$$FNAM^GM TSU(+X)_"^ "_X
  829            Q
  830            ;
  831   FILESEL(GM TSRT,GMTSF I,GMTSFM,D IR) ; Get  file entri es
  832            Q :'$G(GMTSF I)
  833            K  ^TMP("ORD ATA",$J)
  834            N  GMTSI,GMT SJ,GMTSC,X ,GMTSGL,GM TSGLB,GMTS CNT,HFC
  835            S  GMTSI=$G( GMTSFM),GM TSCNT=44,G MTSC=0,GMT SRT=$NA(^T MP("ORDATA ",$J,1))
  836            S :'$D(DIR)  DIR=1
  837            I  GMTSFI=60  D  Q
  838            .  F  Q:GMTS C'<GMTSCNT   S GMTSI= $O(^LAB(60 ,"B",GMTSI ),DIR) Q:G MTSI=""  S
  839    GMTSJ=0 F   S GMTSJ= $O(^LAB(60 ,"B",GMTSI ,GMTSJ)) Q :'GMTSJ  D
  840            .  . I $D(^L AB(60,GMTS J,0)) S X= ^(0) I $P( X,"^",4)=" CH","BO"[$ P(X,"^",3)
  841    S GMTSC=G MTSC+1,^TM P("ORDATA" ,$J,1,GMTS C)=GMTSJ_" ^"_GMTSI
  842            I  GMTSFI="9 999999.64G " D  Q
  843            .  F  Q:GMTS C'<GMTSCNT   S GMTSI= $O(^AUTTHF ("B",GMTSI ),DIR) Q:G MTSI=""  S
  844    GMTSJ=0 F   S GMTSJ= $O(^AUTTHF ("B",GMTSI ,GMTSJ)) Q :'GMTSJ  I  $D(^AUTTH F(GMTSJ,0)
  845   ) S X=^(0)  D
  846            . .;naked re ferences b elow refer s to ^AUTT HF(GMTSJ,0
  847            . .I (($P(^( 0),U,10)=" C")&(+$P(^ (0),U,11)' =1))&($P(^ (0)," ",1) ="GEC") D
  848            . ..S GMTSC= GMTSC+1
  849            . ..S HFC=$S ($P($G(X), U,10)="F": "Factor",$ P($G(X),U, 10)="C":"C ategory")
  850            . ..S ^TMP(" ORDATA",$J ,1,GMTSC)= GMTSJ_U_GM TSI_" ("_H FC_")"
  851            I  GMTSFI=99 99999.64 D   Q
  852            .  F  Q:GMTS C'<GMTSCNT   S GMTSI= $O(^AUTTHF ("B",GMTSI ),DIR) Q:G MTSI=""  S
  853    GMTSJ=0 F   S GMTSJ= $O(^AUTTHF ("B",GMTSI ,GMTSJ)) Q :'GMTSJ  I  $D(^AUTTH F(GMTSJ,0)
  854   ) S X=^(0)  D
  855            . .I +$P(X,U ,11)'=1 D
  856            . ..S GMTSC= GMTSC+1
  857            . ..S HFC=$S ($P($G(X), U,10)="F": "Factor",$ P($G(X),U, 10)="C":"C ategory")
  858            . ..S ^TMP(" ORDATA",$J ,1,GMTSC)= GMTSJ_U_GM TSI_" ("_H FC_")"
  859            I  GMTSFI=81 1.9 D  Q
  860            .  F  Q:GMTS C'<GMTSCNT   S GMTSI= $O(^PXD(81 1.9,"B",GM TSI),DIR)  Q:GMTSI=""
  861     S GMTSJ= 0 F  S GMT SJ=$O(^PXD (811.9,"B" ,GMTSI,GMT SJ)) Q:'GM TSJ  I $D( ^PXD(811.9
  862   ,GMTSJ,0))  S X=^(0)  D
  863            .  . I $P(X, "^",6)'=1  S GMTSC=GM TSC+1,^TMP ("ORDATA", $J,1,GMTSC )=GMTSJ_"^
  864   "_GMTSI
  865            I  GMTSFI=89 25.1 D  Q
  866            .  F  Q:GMTS C'<GMTSCNT   S GMTSI= $O(^TIU(89 25.1,"B",G MTSI),DIR)  Q:GMTSI="
  867   "  S GMTSJ =0 F  S GM TSJ=$O(^TI U(8925.1," B",GMTSI,G MTSJ)) Q:' GMTSJ  I $ D(^TIU(892
  868   5.1,GMTSJ, 0)) S X=^( 0) D
  869            .  . I $P(X, "^",4)="DO C",$$ISA^T IULX(GMTSJ ,3) S GMTS C=GMTSC+1, ^TMP("ORDA
  870   TA",$J,1,G MTSC)=GMTS J_"^"_GMTS I
  871            ;  KDM 1/28/ 2014  GMTS *2.7*110
  872            ;      Added  code for  the 81 fil e (CPT cod e) to list  in logica l sort ord
  873   er using t he "BA" in dexed file
  874            I  GMTSFI=81  D  Q
  875            .  S GMTSGL= $$FCLR^GMT SU(+GMTSFI ) I $L(GMT SGL) S GMT SGLB=$$FLO C^GMTSU(+G
  876   MTSFI)_""" BA"")" D
  877            . . F  Q:GMT SC'<GMTSCN T  S GMTSI =$O(@GMTSG LB@(GMTSI) ,DIR) Q:GM TSI=""  S 
  878   GMTSJ=0 F   S GMTSJ=$ O(@GMTSGLB @(GMTSI,GM TSJ)) Q:'G MTSJ  I $D (@GMTSGL@( GMTSJ,0)) 
  879   S X=^(0) D
  880            . .. S GMTSC =GMTSC+1,^ TMP("ORDAT A",$J,1,GM TSC)=GMTSJ _"^"_GMTSI
  881            ;  use Menta l Health A PI to retu rn active,  scoreable  instrumen ts
  882            I  GMTSFI=60 1.71 D  Q
  883            .  N GMTSDIR  S GMTSDIR =DIR
  884            .  D SEL^YTQ GMTS(GMTSR T,GMTSI,GM TSCNT,GMTS DIR)
  885            I  GMTSFI=50 .7 D  Q
  886            .  D SSET^PS S50P7(GMTS C,GMTSCNT, GMTSI,DIR, "ORDATA")
  887            I  GMTSFI=50 .605 D  Q
  888            .  D SSET^PS N50P65(GMT SC,GMTSCNT ,GMTSI,DIR ,"ORDATA")
  889            S  GMTSGL=$$ FCLR^GMTSU (+GMTSFI)  I $L(GMTSG L) S GMTSG LB=$$FLOC^ GMTSU(+GMT
  890   SFI)_"""B" ")" D
  891            .  F  Q:GMTS C'<GMTSCNT   S GMTSI= $O(@GMTSGL B@(GMTSI), DIR) Q:GMT SI=""  S G
  892   MTSJ=0 F   S GMTSJ=$O (@GMTSGLB@ (GMTSI,GMT SJ)) Q:'GM TSJ  I $D( @GMTSGL@(G MTSJ,0)) S
  893    X=^(0) D
  894            .  . S GMTSC =GMTSC+1,^ TMP("ORDAT A",$J,1,GM TSC)=GMTSJ _"^"_GMTSI
  895            Q
  896            ;
  897   REPORT(GMT SEG,GMTSEG C,GMTSEGI, GMTSCPS,DF N) ; Build  Report
  898            ;  Uses arra y of Compo nents pass ed in GMTS CPS()
  899            ;    GMTSCPS (i)=array  of subcomp onents cho sen,
  900            ;    value i s pointer  at ^GMT(14 2,DA(1),1, DA)
  901            Q :'$G(DFN)
  902            N  GMTSCNT,D IC,DIZ,DIW ,DIWI,DIWT ,DIWTC,X,G MTSI,GMTSJ ,GMTSK,GMT STYP,GMTST
  903   ITL
  904            S  X="GMTS H S ADHOC",D IC=142,DIZ (0)="ZF"
  905            D  ^DIC Q:'Y
  906            S  GMTSTYP=+ Y,GMTSTITL ="AD HOC", (GMTSJ,GMT SI)=0,GMTS EGC=$O(GMT SCPS(99999
  907   999),-1)
  908            F   S GMTSI= $O(GMTSCPS (GMTSI)) Q :'GMTSI  D
  909            .  N GMTSREC ,GMTSS2,GM TSSJ,GMTSE L
  910            .  S GMTSREC =^GMT(142, GMTSTYP,1, +GMTSCPS(G MTSI),0),G MTSJ=GMTSJ +1
  911            .  S GMTSEG( GMTSJ)=GMT SREC,GMTSE GI($P(GMTS REC,U,2))= GMTSJ,GMTS S2=0,GMTSS
  912   J=GMTSJ
  913            .  S $P(GMTS EG(GMTSJ), "^",3)=$P( GMTSCPS(GM TSI),"^",2 )
  914            .  S $P(GMTS EG(GMTSJ), "^",4)=$P( GMTSCPS(GM TSI),"^",3 )
  915            .  I $L($P(G MTSCPS(GMT SI),"^",4) ) S $P(GMT SEG(GMTSJ) ,"^",5)=$P (GMTSCPS(G
  916   MTSI),"^", 4)
  917            .  I $L($P(G MTSCPS(GMT SI),"^",5) ) S $P(GMT SEG(GMTSJ) ,"^",6)=$P (GMTSCPS(G
  918   MTSI),"^", 5)
  919            .  S $P(GMTS EG(GMTSJ), "^",7)=$P( GMTSCPS(GM TSI),"^",6 )
  920            .  I $L($P(G MTSCPS(GMT SI),"^",7) ) S $P(GMT SEG(GMTSJ) ,"^",8)=$P (GMTSCPS(G
  921   MTSI),"^", 7)
  922            .  S (GMTSCN T,GMTSK)=0
  923            .  F  S GMTS K=$O(GMTSC PS(GMTSK))  Q:'GMTSK   D
  924            .  .I $P($G( GMTSCPS(GM TSK)),U,9) ="9999999. 64G" S $P( GMTSCPS(GM TSK),U,9)=
  925   "9999999.6 4"
  926            .  .I +GMTSC PS(GMTSI)= +GMTSCPS(G MTSK),$P(G MTSCPS(GMT SK),"^",9) ,$P(GMTSCP
  927   S(GMTSK)," ^",10) D
  928            .  . . S GMT SCNT=GMTSC NT+1
  929            .  . . S:'$D (GMTSEG(GM TSJ,$P(GMT SCPS(GMTSK ),"^",9),0 )) GMTSEG( GMTSJ,$P(G
  930   MTSCPS(GMT SK),"^",9) ,0)=$$GET1 ^DID($P(GM TSCPS(GMTS K),"^",9), ,,"GLOBAL  NAME")
  931            .  . . S GMT SEG(GMTSJ, $P(GMTSCPS (GMTSK),"^ ",9),GMTSC NT)=$P(GMT SCPS(GMTSK
  932   ),"^",10)
  933            .  . . K GMT SCPS(GMTSK )
  934            Q
  935            ;
  936   SUBITEM(Y, GMTSTEST)  ; Get Subi tems for a  Test Pane l
  937            Q :'$G(GMTST EST)  N GM TSCNT S GM TSCNT=0
  938            I  '$L($P(^L AB(60,GMTS TEST,0),"^ ",5)),$O(^ LAB(60,GMT STEST,2,0) ) D COMPIL
  939   E(GMTSTEST ,GMTSCNT)
  940            Q
  941            ;
  942   COMPILE(GM TSTEST,GMT SCNT) ; Ex pand lab p anels
  943            N  GMTSI,GMT SJ,GMTSRT  S GMTSI=0
  944            F   S GMTSI= $O(^LAB(60 ,GMTSTEST, 2,GMTSI))  Q:GMTSI'>0   D
  945            .  S GMTSJ=+ $G(^LAB(60 ,GMTSTEST, 2,+GMTSI,0 ))
  946            .  S GMTSRT= $G(^LAB(60 ,+GMTSJ,0) )
  947            .  I $L($P(G MTSRT,U,5) ),("BO"[$P (GMTSRT,U, 3)) D
  948            .  . S GMTSC NT=GMTSCNT +1
  949            .  . S Y(GMT SCNT)=+GMT SJ_"^"_GMT SRT
  950            .  E  D
  951            .  . D COMPI LE(+$G(^LA B(60,GMTST EST,2,GMTS I,0)),GMTS CNT)
  952            Q
  953  
  954   Table 16 P SS50P7
  955   Routines
  956   Activities
  957   Routine Na me
  958   PSS50P7
  959   Enhancemen t Category
  960    New
  961    Modify
  962    Delete
  963    No Change
  964   RTM
  965   1041110, 1 041111
  966   Related Op tions
  967  
  968  
  969   Related Ro utines
  970   Routines “ Called By”
  971   Routines “ Called”   
  972  
  973  
  974  
  975  
  976   Routines
  977   Activities
  978   Data Dicti onary (DD)  Reference s
  979  
  980   Related Pr otocols
  981  
  982   Related In tegration  Control Re gistration s (ICRs)
  983  
  984   Data Passi ng
  985    Input
  986    Output Re ference
  987    Both
  988    Global Re ference
  989    Local
  990   Input Attr ibute Name  and Defin ition
  991   Name:
  992   Definition :
  993   Output Att ribute Nam e and Defi nition
  994   Name:
  995   Definition :
  996  
  997   Current Lo gic
  998   Currently,  there is  no logic i n this rou tine to re turn the r equired in formation.
  999   Modified L ogic (Chan ges are in  bold)
  1000   PSS50P7  ; BIR/LDT -  API FOR IN FORMATION  FROM FILE  50.7;Nov 1 5, 2018@16 :43
  1001            ; ;1.0;PHARM ACY DATA M ANAGEMENT; **85,91,19 9,234**;9/ 30/97;Buil d 1
  1002            ;
  1003   ZERO(PSSIE N,PSSFT,PS SFL,LIST)  ;
  1004            ; PSSIEN - I EN of entr y in PHARM ACY ORDERA BLE ITEM f ile (#50.7 ).
  1005            ; PSSFT - Fr ee Text na me in PHAR MACY ORDER ABLE ITEM  file (#50. 7).
  1006            ; PSSFL - In active fla g - "" - A ll entries .
  1007            ;         Fi leMan Date  - Only en tries with  no Inacti ve Date or  an Inacti
  1008   ve Date gr eater than  this date .
  1009            ; LIST - Sub script of  ^TMP array  in the fo rm ^TMP($J ,LIST,Fiel d Number w
  1010   here Field  Number is  the
  1011            ; Field Numb er of the  data piece  being ret urned.
  1012            ; Returns NA ME field ( #.01), DOS AGE FORM f ield (#.02 ), IV FLAG  field (#.
  1013   03), INACT IVE DATE f ield (#.04 ),
  1014            ; DAY (nD) O R DOSE (nL ) LIMIT fi eld (#.05) , MED ROUT E field (# .06), SCHE
  1015   DULE TYPE  fiedl (#.0 7),
  1016            ; SCHEDULE f ield (#.08 ), SUPPLY  field (#.0 9), FORMUL ARY STATUS  field (#5
  1017   ), and NON -VA MED fi eld (#8) o f
  1018            ; PHARMACY O RDERABLE I TEM file ( #50.7).
  1019            N  DIERR,ZZE RR,PSS50P7 ,SCR,PSS
  1020            I  $G(LIST)' ]"" Q
  1021            K  ^TMP($J,L IST)
  1022            I  +$G(PSSIE N)'>0,($G( PSSFT)']"" ) S ^TMP($ J,LIST,0)= -1_"^"_"NO  DATA FOUN
  1023   D" Q
  1024            I  $G(PSSIEN )]"",+$G(P SSIEN)'>0  S ^TMP($J, LIST,0)=-1 _"^"_"NO D ATA FOUND"
  1025    Q
  1026            S  SCR("S")= ""
  1027            I  +$G(PSSFL )>0 N ND D  SETSCRN
  1028            I  +$G(PSSIE N)>0 N PSS IEN2 S PSS IEN2=$$FIN D1^DIC(50. 7,"","A"," `"_PSSIEN,
  1029   ,SCR("S"), "") D
  1030            . I +PSSIEN2 '>0 S ^TMP ($J,LIST,0 )=-1_"^"_" NO DATA FO UND" Q
  1031            . S ^TMP($J, LIST,0)=1
  1032            . D GETS^DIQ (50.7,+PSS IEN2,".01; .02;.03;.0 4;.05;.06; .07;.08;.0 9;8;5","IE
  1033   ","PSS50P7 ") S PSS(1 )=0
  1034            . F  S PSS(1 )=$O(PSS50 P7(50.7,PS S(1))) Q:' PSS(1)  D  SETZRO^PSS 50P7A
  1035            I  +$G(PSSIE N)'>0,$G(P SSFT)]"" D
  1036            . I PSSFT["? ?" D LOOP^ PSS50P7A(1 ) Q
  1037            . D FIND^DIC (50.7,,"@; .01;.02"," QP",PSSFT, ,"B",SCR(" S"),,"")
  1038            . I +$G(^TMP ("DILIST", $J,0))=0 S  ^TMP($J,L IST,0)=-1_ "^"_"NO DA TA FOUND" 
  1039   Q
  1040            . I +^TMP("D ILIST",$J, 0)>0 S ^TM P($J,LIST, 0)=+^TMP(" DILIST",$J ,0) N PSSX
  1041   X S PSSXX= 0 F  S PSS XX=$O(^TMP ("DILIST", $J,PSSXX))  Q:'PSSXX   D
  1042            . .S PSSIEN= +^TMP("DIL IST",$J,PS SXX,0) K P SS50P7 D G ETS^DIQ(50 .7,+PSSIEN
  1043   ,".01;.02; .03;.04;.0 5;.06;.07; .08;.09;8; 5","IE","P SS50P7") S  PSS(1)=0
  1044            . .F  S PSS( 1)=$O(PSS5 0P7(50.7,P SS(1))) Q: 'PSS(1)  D  SETZRO^PS S50P7A
  1045            K  ^TMP("DIL IST",$J)
  1046            Q
  1047            ;
  1048   SYNONYM(PS SIEN,PSSFT ,PSSFL,LIS T) ;
  1049            ; PSSIEN - I EN of entr y in PHARM ACY ORDERA BLE ITEM f ile (#50.7 ).
  1050            ; PSSFT - Fr ee Text na me in PHAR MACY ORDER ABLE ITEM  file (#50. 7).
  1051            ; PSSFL - In active fla g - 0 or " " - All en tries.
  1052            ;         Fi leMan Date  - Only en tries with  no Inacti ve Date or  an Inacti
  1053   ve Date gr eater than  this date .
  1054            ; LIST - Sub script of  ^TMP array  in the fo rm ^TMP($J ,LIST,Fiel d Number w
  1055   here Field  Number is  the
  1056            ; Field Numb er of the  data piece  being ret urned.
  1057            ; Returns NA ME field ( #.01), DOS AGE FORM f ield (#.02 ), SYNONYM  subfile (
  1058   #50.72), a nd SYNONYM  field (#. 01)
  1059            ; of PHARMAC Y ORDERABL E ITEM fil e (#50.7).
  1060            N  DIERR,ZZE RR,PSS50P7 ,SCR,PSS,C NT
  1061            I  $G(LIST)' ]"" Q
  1062            K  ^TMP($J,L IST)
  1063            I  +$G(PSSIE N)'>0,($G( PSSFT)']"" ) S ^TMP($ J,LIST,0)= -1_"^"_"NO  DATA FOUN
  1064   D" Q
  1065            I  $G(PSSIEN )]"",+$G(P SSIEN)'>0  S ^TMP($J, LIST,0)=-1 _"^"_"NO D ATA FOUND"
  1066    Q
  1067            S  SCR("S")= ""
  1068            I  +$G(PSSFL )>0 N ND D  SETSCRN
  1069            I  +$G(PSSIE N)>0 N PSS IEN2 S PSS IEN2=$$FIN D1^DIC(50. 7,"","A"," `"_PSSIEN,
  1070   ,SCR("S"), "") D
  1071            . I +PSSIEN2 '>0 S ^TMP ($J,LIST,0 )=-1_"^"_" NO DATA FO UND" Q
  1072            . S ^TMP($J, LIST,0)=1
  1073            . D GETS^DIQ (50.7,+PSS IEN2,".01; .02;2*","I E","PSS50P 7") S PSS( 1)=0
  1074            . S CNT=0 F   S PSS(1)= $O(PSS50P7 (50.72,PSS (1))) Q:'P SS(1)  D S ETSYN^PSS5
  1075   0P7A S CNT =CNT+1
  1076            . S ^TMP($J, LIST,+PSSI EN2,"SYN", 0)=$S(CNT> 0:CNT,1:"- 1^NO DATA  FOUND")
  1077            . S PSS(2)=0  F  S PSS( 2)=$O(PSS5 0P7(50.7,P SS(2))) Q: 'PSS(2)  D  SETZR2^PS
  1078   S50P7A
  1079            I  +$G(PSSIE N)'>0,$G(P SSFT)]"" D
  1080            . I PSSFT["? ?" D LOOP^ PSS50P7A(2 ) Q
  1081            . D FIND^DIC (50.7,,"@; .01","QP", PSSFT,,"B" ,SCR("S"), ,"")
  1082            . I +$G(^TMP ("DILIST", $J,0))=0 S  ^TMP($J,L IST,0)=-1_ "^"_"NO DA TA FOUND" 
  1083   Q
  1084            . I +^TMP("D ILIST",$J, 0)>0 S ^TM P($J,LIST, 0)=+^TMP(" DILIST",$J ,0) N PSSX
  1085   X S PSSXX= 0 F  S PSS XX=$O(^TMP ("DILIST", $J,PSSXX))  Q:'PSSXX   D
  1086            . .S PSSIEN= +^TMP("DIL IST",$J,PS SXX,0) K P SS50P7(50. 72) K PSS5 0P7 D GETS
  1087   ^DIQ(50.7, +PSSIEN,". 01;.02;2*" ,"IE","PSS 50P7") S P SS(1)=0
  1088            . .S CNT=0 F   S PSS(1) =$O(PSS50P 7(50.72,PS S(1))) Q:' PSS(1)  D  SETSYN^PSS
  1089   50P7A  S C NT=CNT+1
  1090            . .S ^TMP($J ,LIST,+PSS IEN,"SYN", 0)=$S(CNT> 0:CNT,1:"- 1^NO DATA  FOUND")
  1091            . .S PSS(2)= 0 F  S PSS (2)=$O(PSS 50P7(50.7, PSS(2))) Q :'PSS(2)   D SETZR2^P
  1092   SS50P7A
  1093            K  ^TMP("DIL IST",$J)
  1094            Q
  1095            ;
  1096   NAME(PSSIE N) ;
  1097            ; PSSIEN - I EN of entr y in PHARM ACY ORDERA BLE ITEM f ile (#50.7 ).
  1098            ; Returns NA ME field ( #.01) of P HARMACY OR DERABLE IT EM file (# 50.7) and 
  1099   DOSAGE FOR M name in  external f orm.
  1100            N  DIERR,ZZE RR,PSS50P7 ,PSS
  1101            I  +$G(PSSIE N)'>0 Q ""
  1102            D  GETS^DIQ( 50.7,+PSSI EN,".01;.0 2","E","PS S50P7")
  1103            I  '$D(PSS50 P7) Q ""
  1104            Q  $G(PSS50P 7(50.7,PSS IEN_",",.0 1,"E"))_"  "_$G(PSS50 P7(50.7,PS SIEN_",",.
  1105   02,"E"))
  1106            ;
  1107   INSTR(PSSI EN,PSSFT,P SSFL,LIST)  ;
  1108            ; PSSIEN - I EN of entr y in PHARM ACY ORDERA BLE ITEM f ile (#50.7 ).
  1109            ; PSSFT - Fr ee Text na me in PHAR MACY ORDER ABLE ITEM  file (#50. 7).
  1110            ; PSSFL - In active fla g - "" - A ll entries .
  1111            ;         Fi leMan Date  - Only en tries with  no Inacti ve Date or  an Inacti
  1112   ve Date gr eater than  this date .
  1113            ; LIST - Sub script of  ^TMP array  in the fo rm ^TMP($J ,LIST,Fiel d Number w
  1114   here Field  Number is  the
  1115            ; Field Numb er of the  data piece  being ret urned.
  1116            ; Returns IN S and INS1  nodes of  PHARMACY O RDERABLE I TEM file ( #50.7).
  1117            N  DIERR,ZZE RR,PSS50P7 ,SCR,PSS
  1118            I  $G(LIST)' ]"" Q
  1119            K  ^TMP($J,L IST)
  1120            I  +$G(PSSIE N)'>0,($G( PSSFT)']"" ) S ^TMP($ J,LIST,0)= -1_"^"_"NO  DATA FOUN
  1121   D" Q
  1122            I  $G(PSSIEN )]"",+$G(P SSIEN)'>0  S ^TMP($J, LIST,0)=-1 _"^"_"NO D ATA FOUND"
  1123    Q
  1124            S  SCR("S")= ""
  1125            I  +$G(PSSFL )>0 N ND D  SETSCRN
  1126            I  +$G(PSSIE N)>0 N PSS IEN2 S PSS IEN2=$$FIN D1^DIC(50. 7,"","A"," `"_PSSIEN,
  1127   ,SCR("S"), "") D
  1128            . I +PSSIEN2 '>0 S ^TMP ($J,LIST,0 )=-1_"^"_" NO DATA FO UND" Q
  1129            . S ^TMP($J, LIST,0)=1
  1130            . D GETS^DIQ (50.7,+PSS IEN2,".01; .02;7;7.1" ,"IE","PSS 50P7") S P SS(1)=0
  1131            . F  S PSS(1 )=$O(PSS50 P7(50.7,PS S(1))) Q:' PSS(1)  D  SETPTI^PSS 50P7A
  1132            I  +$G(PSSIE N)'>0,$G(P SSFT)]"" D
  1133            . I PSSFT["? ?" D LOOP^ PSS50P7A(3 ) Q
  1134            . D FIND^DIC (50.7,,"@; .01","QP", PSSFT,,"B" ,SCR("S"), ,"")
  1135            . I +$G(^TMP ("DILIST", $J,0))=0 S  ^TMP($J,L IST,0)=-1_ "^"_"NO DA TA FOUND" 
  1136   Q
  1137            . I +^TMP("D ILIST",$J, 0)>0 S ^TM P($J,LIST, 0)=+^TMP(" DILIST",$J ,0) N PSSX
  1138   X S PSSXX= 0 F  S PSS XX=$O(^TMP ("DILIST", $J,PSSXX))  Q:'PSSXX   D
  1139            . .S PSSIEN= +^TMP("DIL IST",$J,PS SXX,0) K P SS50P7 D G ETS^DIQ(50 .7,+PSSIEN
  1140   ,".01;.02; 7;7.1","IE ","PSS50P7 ") S PSS(1 )=0
  1141            . .F  S PSS( 1)=$O(PSS5 0P7(50.7,P SS(1))) Q: 'PSS(1)  D  SETPTI^PS S50P7A
  1142            K  ^TMP("DIL IST",$J)
  1143            Q
  1144            ;
  1145   DRGIEN(PSS IEN,PSSFL, LIST) ;
  1146            ; PSSIEN - I EN of entr y in PHARM ACY ORDERA BLE ITEM f ile (#50.7 ).
  1147            ; PSSFL - In active fla g - "" - A ll entries .
  1148            ;         Fi leMan Date  - Only en tries with  no Inacti ve Date or  an Inacti
  1149   ve Date gr eater than  this date .
  1150            ; LIST - Sub script of  ^TMP array  in the fo rm ^TMP($J ,LIST,Fiel d Number w
  1151   here Field  Number is  the
  1152            ; Field Numb er of the  data piece  being ret urned.
  1153            ; Returns en tries from  DRUG file  (#50) lin ked to the  Pharmacy  Orderable 
  1154   Item IEN p assed, GEN ERIC NAME  field (#.0 1),
  1155            ; DEA, SPECI AL HDLG fi eld (#3),  APPLICATIO N PACKAGES ' USE fiel d (#63), a
  1156   nd the INA CTIVE DATE  field (#1 00)
  1157            ; of DRUG fi le (#50).
  1158            N  DIERR,ZZE RR,PSS50P7 ,SCR,PSS
  1159            I  $G(LIST)' ]"" Q
  1160            K  ^TMP($J,L IST)
  1161            I  +$G(PSSIE N)'>0 S ^T MP($J,LIST ,0)=-1_"^" _"NO DATA  FOUND" Q
  1162            S  SCR("S")= "I $D(^PS( 50.7,""A50 "",PSSIEN, Y))"
  1163            ; Naked refe rence belo w refers t o ^PSDRUG( Y,"I")
  1164            I  +$G(PSSFL )>0 S SCR( "S")="S ND =$G(^(""I" ")) I ((ND ="""")&($D (^PS(50.7,
  1165   ""A50"",PS SIEN,Y)))) !((ND>PSSF L)&($D(^PS (50.7,""A5 0"",PSSIEN ,Y))))"
  1166            I  +$G(PSSIE N)>0 D FIN D^DIC(50,, "@;.01","Q X",PSSIEN, ,"ASP",SCR ("S"),,"PS
  1167   S50P7")
  1168            I  +PSS50P7( "DILIST",0 )'>0 S ^TM P($J,LIST, 0)=-1_"^"_ "NO DATA F OUND" Q
  1169            S  ^TMP($J,L IST,0)=+PS S50P7("DIL IST",0) S  PSS(1)=0 D
  1170            . F  S PSS(1 )=$O(PSS50 P7("DILIST ",PSS(1)))  Q:'PSS(1)   S PSS(2) =0 F  S PS
  1171   S(2)=$O(PS S50P7("DIL IST",PSS(1 ),PSS(2)))  Q:'PSS(2)   S ^TMP($ J,LIST,+PS S50P7("DIL
  1172   IST",PSS(1 ),PSS(2))) =""
  1173            Q
  1174            ;
  1175   IEN(PSSFT, PSSFL,LIST ) ;
  1176            ; PSSFT - Fr ee Text na me in PHAR MACY ORDER ABLE ITEM  file (#50. 7).
  1177            ; PSSFL - In active fla g - "" - A ll entries .
  1178            ;         Fi leMan Date  - Only en tries with  no Inacti ve Date or  an Inacti
  1179   ve Date gr eater than  this date .
  1180            ; LIST - Sub script of  ^TMP array  in the fo rm ^TMP($J ,LIST,Fiel d Number w
  1181   here Field  Number is  the
  1182            ; Field Numb er of the  data piece  being ret urned.
  1183            ; Returns NA ME field ( #.01), and  DOSAGE FO RM field ( #.02) of P HARMACY OR
  1184   DERABLE IT EM file (# 50.7).
  1185            N  DIERR,ZZE RR,PSS50P7 ,SCR,PSS
  1186            I  $G(LIST)' ]"" Q
  1187            K  ^TMP($J,L IST)
  1188            I  $G(PSSFT) ']"" S ^TM P($J,LIST, 0)=-1_"^"_ "NO DATA F OUND" Q
  1189            S  SCR("S")= ""
  1190            I  +$G(PSSFL )>0 D SETS CRN
  1191            I  PSSFT["?? " D LOOP^P SS50P7A(4)  Q
  1192            I  $G(PSSFT) ]"" D FIND ^DIC(50.7, ,"@;.01;.0 2IE","QP", PSSFT,,"B" ,SCR("S"),
  1193   ,"")
  1194            I  +$G(^TMP( "DILIST",$ J,0))'>0 S  ^TMP($J,L IST,0)=-1_ "^"_"NO DA TA FOUND" 
  1195   Q
  1196            S  ^TMP($J,L IST,0)=+^T MP("DILIST ",$J,0) S  PSS(2)=0 D
  1197            . F  S PSS(2 )=$O(^TMP( "DILIST",$ J,PSS(2)))  Q:'PSS(2)   D
  1198            . .S ^TMP($J ,LIST,+^TM P("DILIST" ,$J,PSS(2) ,0),.01)=$ P(^TMP("DI LIST",$J,P
  1199   SS(2),0)," ^",2)
  1200            . .S ^TMP($J ,LIST,"B", $P(^TMP("D ILIST",$J, PSS(2),0), "^",2),+^T MP("DILIST
  1201   ",$J,PSS(2 ),0))=""
  1202            . .S ^TMP($J ,LIST,+^TM P("DILIST" ,$J,PSS(2) ,0),.02)=$ S($P($G(^T MP("DILIST
  1203   ",$J,PSS(2 ),0)),"^", 3)]"":$P(^ TMP("DILIS T",$J,PSS( 2),0),"^", 3,4),1:"")
  1204            K  ^TMP("DIL IST",$J)
  1205            Q
  1206            ;
  1207   LOOKUP(PSS FT,PSSD,PS SS,LIST) ;
  1208            ; PSSFT - Fr ee Text na me in PHAR MACY ORDER ABLE ITEM  file (#50. 7)
  1209            ; PSSD - Ind ex being t raversed.
  1210            ; PSSS - Scr eening inf ormation a s defined  in DIC("S" ).
  1211            ; LIST - Sub script of  ^TMP array  in the fo rm ^TMP($J ,LIST,Fiel d Number w
  1212   here Field  Number is  the
  1213            ; Field Numb er of the  data piece  being ret urned.
  1214            ; Returns NA ME field ( #.01), DOS AGE FORM f ield (#.02 ), and INA CTIVE DATE
  1215    field (#. 04) of
  1216            ; PHARMACY O RDERABLE I TEM file ( #50.7).
  1217            N  DIERR,ZZE RR,PSS50P7 ,SCR,PSS
  1218            I  $G(LIST)' ]"" Q
  1219            K  ^TMP($J,L IST)
  1220            I  $G(PSSFT) ']"" S ^TM P($J,LIST, 0)=-1_"^"_ "NO DATA F OUND" Q
  1221            D  LOOKUP^PS S50P7A
  1222            Q
  1223            ;
  1224   SETSCRN  ; Set Screen  for inact ive entrie s in PHARM ACY ORDERA BLE ITEM f ile (#50.7
  1225   ).
  1226            ; Naked refe rence belo w refers t o ^PS(50.7 ,+Y,0)
  1227            S  SCR("S")= "S ND=$P($ G(^(0)),U, 4) I ND="" ""!(ND>PSS FL)"
  1228            Q
  1229   SSET(PSSC, PSSCNT,PSS I,DIR,SUB)  ;Pull bac k a subset  of the PH ARMACY ORD ERABLE ITE
  1230   M file (#5 0.7)
  1231            ;
  1232            N  PSSJ,X,Y
  1233            F   Q:PSSC'< PSSCNT  S  PSSI=$O(^P S(50.7,"B" ,PSSI),DIR ) Q:PSSI=" "  S PSSJ=
  1234   0 F  S PSS J=$O(^PS(5 0.7,"B",PS SI,PSSJ))  Q:'PSSJ  I  $D(^PS(50 .7,PSSJ,0) ) S X=^(0)
  1235    D
  1236            .  S Y=$P($G (^PS(50.60 6,$P(X,"^" ,2),0)),"^ "),PSSC=PS SC+1,^TMP( SUB,$J,1,P
  1237   SSC)=PSSJ_ "^"_PSSI_"  "_Y
  1238            Q
  1239   Table 17 P SN50P65
  1240   Routines
  1241   Activities
  1242   Routine Na me
  1243   PSN50P65
  1244   Enhancemen t Category
  1245    New
  1246    Modify
  1247    Delete
  1248    No Change
  1249   RTM
  1250   1041112, 1 041113, 10 41114, 104 1115, 1041 116
  1251   Related Op tions
  1252  
  1253  
  1254   Related Ro utines
  1255   Routines “ Called By”
  1256   Routines “ Called”   
  1257  
  1258  
  1259  
  1260  
  1261   Routines
  1262   Activities
  1263   Data Dicti onary (DD)  Reference s
  1264  
  1265   Related Pr otocols
  1266  
  1267   Related In tegration  Control Re gistration s (ICRs)
  1268  
  1269   Data Passi ng
  1270    Input
  1271    Output Re ference
  1272    Both
  1273    Global Re ference
  1274    Local
  1275   Input Attr ibute Name  and Defin ition
  1276   Name:
  1277   Definition :
  1278   Output Att ribute Nam e and Defi nition
  1279   Name:
  1280   Definition :
  1281  
  1282   Current Lo gic
  1283   Currently,  there is  no logic i n this rou tine to re turn the r equired in formation.
  1284   Modified L ogic (Chan ges are in  bold)
  1285   PSN50P65 ; BIR/LDT -  API FOR IN FORMATION  FROM FILE  50.605;Nov  16, 2018@ 10:30
  1286            ; ;4.0;NATIO NAL DRUG F ILE;**80,5 67**;30 Oc t 98;Build  1
  1287            ;
  1288   IEN(PSNIEN ,PSNFT,LIS T) ;
  1289            ; PSNIEN - I EN of entr y in VA DR UG CLASS f ile (#50.6 05).
  1290            ; PSNFT - Fr ee Text na me in  VA  DRUG CLASS  file (#50 .605).
  1291            ; LIST - Sub script of  ^TMP array  in the fo rm ^TMP($J ,LIST,Fiel d Number w
  1292   here Field  Number is  the
  1293            ;        Fie ld Number  of the dat a piece be ingreturne d.
  1294            ; Returns CO DE field ( #.01), and  CLASSIFIC ATION fiel d (#1) of   VA DRUG C
  1295   LASS file  (#50.605).
  1296            N  DIERR,ZZE RR,PSN50P6 5,PSN
  1297            I  $G(LIST)' ]"" Q
  1298            K  ^TMP($J,L IST)
  1299            I  +$G(PSNIE N)'>0,($G( PSNFT)']"" ) S ^TMP($ J,LIST,0)= -1_"^"_"NO  DATA FOUN
  1300   D" Q
  1301            I  $G(PSNIEN )]"",+$G(P SNIEN)'>0  S ^TMP($J, LIST,0)=-1 _"^"_"NO D ATA FOUND"
  1302    Q
  1303            I  $G(PSNIEN )]"" N PSN IEN2 S PSN IEN2=$$FIN D1^DIC(50. 605,"","B" ,"`"_PSNIE
  1304   N,,,"") D
  1305            . I +PSNIEN2 '>0 S ^TMP ($J,LIST,0 )=-1_"^"_" NO DATA FO UND" Q
  1306            . S ^TMP($J, LIST,0)=1
  1307            . D GETS^DIQ (50.605,+P SNIEN2,".0 1;1","IE", "PSN50P65" ) S PSN(1) =0
  1308            . F  S PSN(1 )=$O(PSN50 P65(50.605 ,PSN(1)))  Q:'PSN(1)   D SETZRO
  1309            I  $G(PSNIEN )="",$G(PS NFT)]"" D
  1310            . I PSNFT["? ?" D LOOP( 1) Q
  1311            . D FIND^DIC (50.605,," @;.01;1"," QP",PSNFT, ,"B",,,"")
  1312            . I +$G(^TMP ("DILIST", $J,0))=0 S  ^TMP($J,L IST,0)=-1_ "^"_"NO DA TA FOUND" 
  1313   Q
  1314            . I +^TMP("D ILIST",$J, 0)>0 S ^TM P($J,LIST, 0)=+^TMP(" DILIST",$J ,0) N PSNX
  1315   X S PSNXX= 0 F  S PSN XX=$O(^TMP ("DILIST", $J,PSNXX))  Q:'PSNXX   D
  1316            . .S PSNIEN= +^TMP("DIL IST",$J,PS NXX,0) K P SN50P65 D  GETS^DIQ(5 0.605,+PSN
  1317   IEN,".01;1 ","IE","PS N50P65") S  PSN(1)=0
  1318            . .F  S PSN( 1)=$O(PSN5 0P65(50.60 5,PSN(1)))  Q:'PSN(1)   D SETZRO
  1319            K  ^TMP("DIL IST",$J)
  1320            Q
  1321            ;
  1322   ROOT(PSNC)  ;
  1323            ; Q  "^PS(50 .605, ""C" ")" if PSN C is passe d in as 1.   If PSNC  is null, Q
  1324    "^PS(50.6 05,"
  1325            I  $G(PSNC)' =1  Q "^PS (50.605,"
  1326            Q  "^PS(50.6 05,""C"")"
  1327            ;
  1328   C(PSNIEN,P SNFT,LIST)  ;
  1329            ; PSNIEN - I EN of entr y in  VA D RUG CLASS  file (#50. 605).
  1330            ; PSNFT - Fr ee Text na me in  VA  DRUG CLASS  file (#50 .605).
  1331            ; LIST - Sub script of  ^TMP array  in the fo rm ^TMP($J ,LIST,Fiel d Number w
  1332   here Field  Number is  the
  1333            ;        Fie ld Number  of the dat a piece be ing return ed.
  1334            ; Returns CO DE field ( #.01), CLA SSIFICATIO N field (# 1),PARENT  CLASS fiel
  1335   d (#2), an d TYPE fie ld (#3)
  1336            ; of  VA DRU G CLASS fi le (#50.60 5).
  1337            N  DIERR,ZZE RR,PSN50P6 5,PSN
  1338            I  $G(LIST)' ]"" Q
  1339            K  ^TMP($J,L IST)
  1340            I  +$G(PSNIE N)'>0,($G( PSNFT)']"" ) S ^TMP($ J,LIST,0)= -1_"^"_"NO  DATA FOUN
  1341   D" Q
  1342            I  $G(PSNIEN )]"",+$G(P SNIEN)'>0  S ^TMP($J, LIST,0)=-1 _"^"_"NO D ATA FOUND"
  1343    Q
  1344            I  +$G(PSNIE N)>0 N PSN IEN2 S PSN IEN2=$$FIN D1^DIC(50. 605,"","A" ,"`"_PSNIE
  1345   N,"C",,"")  D
  1346            . I +PSNIEN2 '>0 S ^TMP ($J,LIST,0 )=-1_"^"_" NO DATA FO UND" Q
  1347            . S ^TMP($J, LIST,0)=1
  1348            . D GETS^DIQ (50.605,+P SNIEN2,".0 1;1;2;3"," IE","PSN50 P65") S PS N(1)=0
  1349            . F  S PSN(1 )=$O(PSN50 P65(50.605 ,PSN(1)))  Q:'PSN(1)   D SETZRO2
  1350            I  $G(PSNIEN )="",$G(PS NFT)]"" D
  1351            . I PSNFT["? ?" D LOOP( 2) Q
  1352            . D FIND^DIC (50.605,," @;.01;1"," QP",PSNFT, ,"C",,,"")
  1353            . I +$G(^TMP ("DILIST", $J,0))=0 S  ^TMP($J,L IST,0)=-1_ "^"_"NO DA TA FOUND" 
  1354   Q
  1355            . I +^TMP("D ILIST",$J, 0)>0 S ^TM P($J,LIST, 0)=+^TMP(" DILIST",$J ,0) N PSNX
  1356   X S PSNXX= 0 F  S PSN XX=$O(^TMP ("DILIST", $J,PSNXX))  Q:'PSNXX   D
  1357            . .S PSNIEN= +^TMP("DIL IST",$J,PS NXX,0) K P SN50P65 D  GETS^DIQ(5 0.605,+PSN
  1358   IEN,".01;1 ;2;3","IE" ,"PSN50P65 ") S PSN(1 )=0
  1359            . .F  S PSN( 1)=$O(PSN5 0P65(50.60 5,PSN(1)))  Q:'PSN(1)   D SETZRO 2
  1360            K  ^TMP("DIL IST",$J)
  1361            Q
  1362            ;
  1363   SETZRO   ;
  1364            S  ^TMP($J,L IST,+PSN(1 ),.01)=$G( PSN50P65(5 0.605,PSN( 1),.01,"I" ))
  1365            S  ^TMP($J,L IST,"B",$G (PSN50P65( 50.605,PSN (1),.01,"I ")),+PSN(1 ))=""
  1366            S  ^TMP($J,L IST,+PSN(1 ),1)=$G(PS N50P65(50. 605,PSN(1) ,1,"I"))
  1367            Q
  1368            ;
  1369   SETZRO2  ;
  1370            S  ^TMP($J,L IST,+PSN(1 ),.01)=$G( PSN50P65(5 0.605,PSN( 1),.01,"I" ))
  1371            S  ^TMP($J,L IST,"C",$G (PSN50P65( 50.605,PSN (1),.01,"I ")),+PSN(1 ))=""
  1372            S  ^TMP($J,L IST,+PSN(1 ),1)=$G(PS N50P65(50. 605,PSN(1) ,1,"I"))
  1373            S  ^TMP($J,L IST,+PSN(1 ),2)=$S($G (PSN50P65( 50.605,PSN (1),2,"I") )="":"",1:
  1374   PSN50P65(5 0.605,PSN( 1),2,"I")_ "^"_PSN50P 65(50.605, PSN(1),2," E"))
  1375            S  ^TMP($J,L IST,+PSN(1 ),3)=$S($G (PSN50P65( 50.605,PSN (1),3,"I") )="":"",1:
  1376   PSN50P65(5 0.605,PSN( 1),3,"I")_ "^"_PSN50P 65(50.605, PSN(1),3," E"))
  1377            Q
  1378            ;
  1379   LOOP(PSN)  ;
  1380            N  PSNIEN,CN T S CNT=0
  1381            S  PSNIEN=0  F  S PSNIE N=$O(^PS(5 0.605,PSNI EN)) Q:'PS NIEN  D
  1382            . K PSN50P65  D GETS^DI Q(50.605,+ PSNIEN,".0 1;1;2;3"," IE","PSN50 P65") S PS
  1383   N(1)=0 D
  1384            . .F  S PSN( 1)=$O(PSN5 0P65(50.60 5,PSN(1)))  Q:'PSN(1)    D @(PSN ) S CNT=CN
  1385   T+1
  1386            S  ^TMP($J,L IST,0)=$S( +CNT>0:CNT ,1:"-1^NO  DATA FOUND ")
  1387            Q
  1388   1        ;
  1389            D  SETZRO
  1390            Q
  1391            ;
  1392   2        ;
  1393            D  SETZRO2
  1394            Q
  1395   SSET(PSNC, PSNCNT,PSN I,DIR,SUB)  ;Pull bac k a subset  of the PH ARMACY ORD ERABLE ITE
  1396   M file (#5 0.7)
  1397            ;
  1398            N  PSNJ,X,Y
  1399            F   Q:PSNC'< PSNCNT  S  PSNI=$O(^P S(50.605," B",PSNI),D IR) Q:PSNI =""  S PSN
  1400   J=0 F  S P SNJ=$O(^PS (50.605,"B ",PSNI,PSN J)) Q:'PSN J  D
  1401            .  S Y=$G(^P S(50.605,P SNJ,0)) I  $P(Y,"^",2 )["INACTIV E" Q
  1402            .  I $P(Y,"^ ",3)="",PS NI'="HA000 " Q
  1403            .  S PSNC=PS NC+1,^TMP( SUB,$J,1,P SNC)=PSNJ_ "^"_PSNI_"  - "_$P(Y, "^",2)
  1404            Q
  1405  
  1406   NSR 201411 08: Requir e Patient  Weight Met hod Entry
  1407   The releas e for this  NSR is in  patch GMR V*5.0*40
  1408   Mumps
  1409   Summary of  changes
  1410  
  1411   Routines
  1412   Table 15:  Routine
  1413   Routines
  1414   Activities
  1415   Routine Na me
  1416   GMV40PST
  1417   Enhancemen t Category
  1418    New
  1419    Modify
  1420    Delete
  1421    No Change
  1422   RTM
  1423  
  1424   Related Op tions
  1425  
  1426  
  1427   Related Ro utines
  1428   Routines “ Called By”
  1429   Routines “ Called”   
  1430  
  1431  
  1432  
  1433  
  1434   Routines
  1435   Activities
  1436   Data Dicti onary (DD)  Reference s
  1437  
  1438   Related Pr otocols
  1439  
  1440   Related In tegration  Control Re gistration s (ICRs)
  1441  
  1442   Data Passi ng
  1443    Input
  1444    Output Re ference
  1445    Both
  1446    Global Re ference
  1447    Local
  1448   Input Attr ibute Name  and Defin ition
  1449   Name:
  1450   Definition :
  1451   Output Att ribute Nam e and Defi nition
  1452   Name:
  1453   Definition :
  1454  
  1455   Current Lo gic
  1456   This is a  new routin e
  1457  
  1458   Modified L ogic (Chan ges are in  bold)
  1459   GMV40PST;H IOFO/FT -  FIX PARAME TER SETTIN GS ;Nov 21 , 2018@11: 15
  1460   ;;5.0;GEN.  MED. REC.  - VITALS; **40**;Oct  31, 2002; Build 4
  1461   ;;Per VA D irective 6 402, this  routine sh ould not b e modified .
  1462   Q
  1463   ; This rou tine uses  the follow ing IAs:
  1464   ; #10141 -  MES^XPDUT L Kernel ( supported)
  1465   ; #2263  -  ^XPAR              ( Supported)
  1466   ;
  1467   EN; main e ntry point
  1468   D XPAR
  1469   Q
  1470   XPAR; Upda te the GUI  version p arameters.  This subr outine is  called dur ing the
  1471   ; KIDS ins tallation  process.
  1472   ;
  1473   ; Variable s:
  1474   ;  GMV:     [Private]  Scratch
  1475   ;  GMVGUI:  [Private]  Current v ersion of  GUI being  installed
  1476   ;  GMVLST:  [Private]  Scratch L ist
  1477   ;
  1478   ; NEW priv ate variab les
  1479   N GMV,GMVG UI,GMVMGUI ,GMVDLL,GM VLST
  1480   ; Announce  my intent ions
  1481   D BMES^XPD UTL("Updat ing system  parameter s.")
  1482   ; Set curr ent client  version
  1483   S GMVGUI=" 5.0.40.1"
  1484   S GMVMGUI= "5.0.40.1"
  1485   S GMVDLL=" 5.0.40.1"
  1486   ; Deactiva te all pre vious vers ions of th e Standalo ne and Man ager from  XPAR
  1487   D GETLST^X PAR(.GMVLS T,"SYS","G MV GUI VER SION")
  1488   F GMV=0:0  S GMV=$O(G MVLST(GMV) ) Q:'GMV   D
  1489   . D EN^XPA R("SYS","G MV GUI VER SION",$P(G MVLST(GMV) ,"^",1),0)
  1490   . Q
  1491   ; Deactiva te all pre vious vers ions of th e DLL from  XPAR
  1492   D GETLST^X PAR(.GMVLS T,"SYS","G MV DLL VER SION")
  1493   F GMV=0:0  S GMV=$O(G MVLST(GMV) ) Q:'GMV   D
  1494   . D EN^XPA R("SYS","G MV DLL VER SION",$P(G MVLST(GMV) ,"^",1),0)
  1495   . Q
  1496   ; Add and/ or activat e current  client ver sions
  1497   D EN^XPAR( "SYS","GMV  GUI VERSI ON","VITAL S.EXE:"_GM VGUI,1)
  1498   D EN^XPAR( "SYS","GMV  GUI VERSI ON","VITAL SMANAGER.E XE:"_GMVMG UI,1)
  1499   D EN^XPAR( "SYS","GMV  DLL VERSI ON",GMVDLL ,1)
  1500   Q
  1501  
  1502   Table 15:  Routine
  1503   Routines
  1504   Activities
  1505   Routine Na me
  1506   GMVPAR
  1507   Enhancemen t Category
  1508    New
  1509    Modify
  1510    Delete
  1511    No Change
  1512   RTM
  1513  
  1514   Related Op tions
  1515  
  1516  
  1517   Related Ro utines
  1518   Routines “ Called By”
  1519   Routines “ Called”   
  1520  
  1521  
  1522  
  1523  
  1524   Routines
  1525   Activities
  1526   Data Dicti onary (DD)  Reference s
  1527  
  1528   Related Pr otocols
  1529  
  1530   Related In tegration  Control Re gistration s (ICRs)
  1531  
  1532   Data Passi ng
  1533    Input
  1534    Output Re ference
  1535    Both
  1536    Global Re ference
  1537    Local
  1538   Input Attr ibute Name  and Defin ition
  1539   Name:
  1540   Definition :
  1541   Output Att ribute Nam e and Defi nition
  1542   Name:
  1543   Definition :
  1544  
  1545   Current Lo gic
  1546   Used by th e Vitals G UIs to rea d and writ e system p aramaters  in VistA
  1547  
  1548   Modified L ogic (Chan ges are in  bold)
  1549   GMVPAR; HO IFO/DP - X PARameter  RPC ;Nov 2 8, 2018@14 :46
  1550   ;;5.0;GEN.  MED. REC.  - VITALS; **3**;Oct  31, 2002
  1551   ; Integrat ion Agreem ents:
  1552   ; IA# 2263   [Support ed] XPAR p arameter c all.
  1553   ; IA# 2541   [Support ed] Call t o XUPARAM.
  1554   ; IA# 1006 0 [Support ed] FILE 2 00 fields
  1555   ; IA# 1009 0 [Support ed] FILE 4  reference s
  1556   ;
  1557   ; This rou tine suppo rts the fo llowing IA s:
  1558   ; #4367 -  GMV PARAME TER RPC is  called at  RPC (priv ate)
  1559   ;
  1560   ;DELLST; [ Procedure]  Delete li st of para meters
  1561   ;D NDEL^XP AR(ENT,PAR ,.ERR)
  1562   ;S:'$G(ERR ) @RESULTS @(0)="1^Al l instance s removed"
  1563   ;Q
  1564   ;
  1565   DELPAR; [P rocedure]  Delete sin gle parame ter value
  1566   D DEL^XPAR (ENT,PAR,I NST,.ERR)
  1567   S:'$G(ERR)  @RESULTS@ (0)="1^Ins tance dele ted"
  1568   Q
  1569   ;
  1570   ENTVAL; [P rocedure]  Return val ue of the  entity
  1571   I ENT="SYS " S ENT=$$ KSP^XUPARA M("WHERE")
  1572   E  I ENT=" DIV" S ENT =$$GET1^DI Q(4,DUZ(2) _",",.01)
  1573   E  I ENT=" USR" S ENT =$$GET1^DI Q(200,DUZ_ ",",.01)
  1574   E  S ENT=$ $GET1^DIQ( +$P(ENT,"( ",2),+ENT_ ",",.01)
  1575   S @RESULTS @(0)=ENT
  1576   Q
  1577   ;
  1578   ;GETHDR; [ Procedure]  Returns c ommon head er format
  1579   ;S X=$$FIN D1^DIC(898 9.51,,"QX" ,PAR)
  1580   ;I X S @RE SULTS@(0)= X_";8989.5 1^"_PAR
  1581   ;E  S @RES ULTS@(0)=" -1^No such  parameter  ["_PAR_"] "
  1582   ;Q
  1583   ;
  1584   GETLST; [P rocedure]  Return all  instances  of a para meter
  1585   D GETLST^X PAR(.RET,E NT,PAR,"E" ,.ERR)
  1586   Q:$G(ERR,0 )
  1587   S TMP="RET "
  1588   F  S TMP=$ Q(@TMP) Q: TMP=""  D
  1589   .S @RESULT S@($O(@RES ULTS@(""), -1)+1)=@TM P
  1590   S @RESULTS @(0)=$O(@R ESULTS@("" ),-1)
  1591   Q
  1592   ;
  1593   GETPAR; [P rocedure]  Returns ex ternal val ue of a pa rameter
  1594   S @RESULTS @(0)=$$GET ^XPAR(ENT, PAR,INST," E")
  1595   Q
  1596   ;
  1597   ;GETWP; [P rocedure]  Returns WP  text for  a paramete r
  1598   ;D GETWP^X PAR(.RET,E NT,PAR,INS T,.ERR)
  1599   ;Q:$G(ERR, 0)
  1600   ;S TMP="RE T"
  1601   ;F  S TMP= $Q(@TMP) Q :TMP=""  D
  1602   ;.S @RESUL TS@($O(@RE SULTS@("") ,-1)+1)=@T MP
  1603   ;S @RESULT S@(0)=$O(@ RESULTS@(" "),-1)_U_I NST
  1604   ;Q
  1605   ;
  1606   RPC(RESULT S,OPTION,E NT,PAR,INS T,VAL); [P rocedure]  Main RPC H it Point
  1607   ; RPC: [GM V PARAMETE R]
  1608   ;
  1609   ; Requires  that the  parameter  name in PA R
  1610   ; be in th e GMV name space.
  1611   ;
  1612   ; Input pa rameters
  1613   ;  1. RESU LTS [Liter al/Require d] No desc ription
  1614   ;  2. OPTI ON [Litera l/Required ] No descr iption
  1615   ;  3. ENT  [Literal/R equired] N o descript ion
  1616   ;  4. PAR  [Literal/R equired] N o descript ion
  1617   ;  5. INST  [Literal/ Required]  No descrip tion
  1618   ;  6. VAL  [Literal/R equired] N o descript ion
  1619   ;
  1620   N ERR,TMP, RET,TXT,IE N,IENS,ROO T
  1621   S INST=$G( INST,1)
  1622   S PAR=$G(P AR,"GMV")
  1623   S RESULTS= $NA(^TMP($ J)) K @RES ULTS
  1624   I PAR'?1"G MV".E S ^T MP($J,0)=" -1^Non Vit als Measur ements Par ameter" Q
  1625   D:$T(@OPTI ON)]"" @OP TION
  1626   I +$G(ERR)  K @RESULT S S @RESUL TS@(0)="-1 ^Error: "_ (+ERR)_" " _$P(ERR,U, 2)
  1627   I '$D(^TMP ($J)) S @R ESULTS@(0) ="-1^No da te returne d"
  1628   D CLEAN^DI LF
  1629   Q
  1630   ;
  1631   ;SETLST ;  [Procedure ] Build li st of para meters
  1632   ;N GMVINS  ; Instance  Counter
  1633   ;D DELLST( ENT,PAR)
  1634   ;S GMVINS= ""
  1635   ;F  S GMVI NS=$O(VAL( GMVINS)) Q :GMVINS=""   D
  1636   ;.D EN^XPA R(ENT,PAR, GMVINS,VAL (GMVINS),. ERR)
  1637   ;S:'$G(ERR ) @RESULTS @(0)="1^Li st "_PAR_"  rebuilt"
  1638   ;Q
  1639   ;
  1640   SETPAR; [P rocedure]  Set single  value int o a parame ter
  1641   D EN^XPAR( ENT,PAR,IN ST,VAL,.ER R)
  1642   S:'$G(ERR)  @RESULTS@ (0)="1^Par ameter upd ated"
  1643   Q
  1644   ;
  1645   ;SETWP; [P rocedure]  Set WP tex t into a p arameter
  1646   ;S TXT=INS T,TMP=""
  1647   ;F  S TMP= $O(VAL(TMP )) Q:TMP=" "  D
  1648   ;.S TXT($O (TXT(""),- 1)+1,0)=VA L(TMP)
  1649   ;D EN^XPAR (ENT,PAR,I NST,.TXT,. ERR)
  1650   ;S:'$G(ERR ) @RESULTS @(0)="1^WP  Text Save d"
  1651   ;Q
  1652   ;
  1653   SETLST; [P rocedure]  Set parame ter from l ist
  1654   N GMVINS ;  Instance  Counter
  1655   S GMVINS=" "
  1656   F  S GMVIN S=$O(VAL(G MVINS)) Q: GMVINS=""   D
  1657   .D EN^XPAR (ENT,PAR,$ P(VAL(GMVI NS),U,1),$ P(VAL(GMVI NS),U,2),. ERR)
  1658   S:'$G(ERR)  @RESULTS@ (0)="1^Lis t "_PAR_"  updated"
  1659   ;
  1660  
  1661  
  1662   Parameters
  1663   Table XX:  Parameter
  1664   Parameter
  1665   Activities
  1666   Parameter  Name
  1667   GMV REQUIR ES QUALIFI ER
  1668   Enhancemen t Category
  1669    New
  1670    Modify
  1671    Delete
  1672    No Change
  1673   RTM
  1674  
  1675  
  1676   Current Lo gic
  1677  
  1678  
  1679   Modified L ogic (Chan ges are in  bold)
  1680   NAME: GMV  REQUIRES Q UALIFIER              DISPLAY TE XT: Requir ed qualifi ers
  1681     MULTIPLE  VALUED: Y es                    INSTANCE T ERM: Quali fier IEN
  1682     VALUE TE RM: Requir ed                    VALUE DATA  TYPE: fre e text
  1683     VALUE HE LP: True o r False if  required  of not
  1684     INSTANCE  DATA TYPE : free tex t          INSTANCE H ELP: IEN f or the vit al
  1685    DESCRIPTI ON:   
  1686    List of v ital measu rements an d if they  require qu alifiers t o be enter ed 
  1687    or not
  1688   PRECEDENCE : 1                              ENTITY FIL E: SYSTEM
  1689  
  1690   Table XX:  Parameter
  1691   Parameter
  1692   Activities
  1693   Parameter  Name
  1694   GMV EXCEPT ION PURGE
  1695   Enhancemen t Category
  1696    New
  1697    Modify
  1698    Delete
  1699    No Change
  1700   RTM
  1701  
  1702  
  1703   Current Lo gic
  1704  
  1705  
  1706   Modified L ogic (Chan ges are in  bold)
  1707   NAME: GMV  REQUIRES Q UALIFIER              DISPLAY TE XT: Requir ed qualifi ers
  1708     MULTIPLE  VALUED: Y es                    INSTANCE T ERM: Quali fier IEN
  1709     VALUE TE RM: Requir ed                    VALUE DATA  TYPE: fre e text
  1710     VALUE HE LP: True o r False if  required  of not
  1711     INSTANCE  DATA TYPE : free tex t          INSTANCE H ELP: IEN f or the vit al
  1712    DESCRIPTI ON:   
  1713    List of v ital measu rements an d if they  require qu alifiers t o be enter ed 
  1714    or not
  1715   PRECEDENCE : 1                              ENTITY FIL E: SYSTEM
  1716  
  1717   Table XX:  Parameter
  1718   Parameter
  1719   Activities
  1720   Parameter  Name
  1721   GMV EXCEPT ION LOGGER
  1722   Enhancemen t Category
  1723    New
  1724    Modify
  1725    Delete
  1726    No Change
  1727   RTM
  1728  
  1729  
  1730   Current Lo gic
  1731  
  1732  
  1733   Modified L ogic (Chan ges are in  bold)
  1734   NAME: GMRV  EXCEPTION  LOGGER
  1735     DISPLAY  TEXT: Acti vate/Deact ivate the  Exception  Logger
  1736     MULTIPLE  VALUED: N o                     VALUE TERM : Activate d?
  1737     VALUE DA TA TYPE: y es/no
  1738    DESCRIPTI ON:   
  1739    When this  parameter  is set to  "yes" the  applicati on will di splay a cu stom 
  1740    access vi olation sc reen to th e user as  well as lo gging the  error stac k and
  1741    allowing  this to be  sent via  an email ( if OR CPRS  EXCEPTION  EMAIL is  not
  1742    blank). T he log fil es are cur rently sto red in the  following  folder
  1743  
  1744   Type <Ente r> to cont inue or '^ ' to exit:  
  1745    "C:\Users \USER'S 
D NS \AppData\L ocal\APPLI CATION NAM E\Unique L og File
  1746    Name.txt"
  1747     Example:
  1748    C:\Users\ DN S
\AppData\L ocal\CprsC hart.exe\C PRS_16136_ 01_13_16_1 6
  1749    _43_LOG.T XT
  1750   PRECEDENCE : 1                              ENTITY FIL E: SYSTEM
  1751  
  1752   Table XX:  Parameter
  1753   Parameter
  1754   Activities
  1755   Parameter  Name
  1756   GMV EXCEPT ION EMAIL
  1757   Enhancemen t Category
  1758    New
  1759    Modify
  1760    Delete
  1761    No Change
  1762   RTM
  1763  
  1764  
  1765   Current Lo gic
  1766  
  1767  
  1768   Modified L ogic (Chan ges are in  bold)
  1769   NAME: GMRV  EXCEPTION  EMAIL                DISPLAY TE XT: Except ion email  address
  1770     MULTIPLE  VALUED: Y es                    VALUE TERM : Email Ad dress
  1771     VALUE DA TA TYPE: f ree text
  1772     VALUE HE LP: Email  address us ed to pre  populate e rror email
  1773     INSTANCE  DATA TYPE : numeric
  1774    DESCRIPTI ON:   
  1775    When the  Exception  Logger is  enabled (O R CPRS EXC EPTION LOG GER) the u ser 
  1776    has the a bility to  pre popula te an emai l through  Microsoft  Outlook. I f
  1777    this para meter is n ot empty t han the us er can ema il the err or log and  this
  1778    email add ress will  be used fo r the pre  population  of that e mail.
  1779   PRECEDENCE : 1                              ENTITY FIL E: SYSTEM
  1780  
  1781   Table XX:  Parameter
  1782   Parameter
  1783   Activities
  1784   Parameter  Name
  1785   GMV HELP D ESK TEXT
  1786   Enhancemen t Category
  1787    New
  1788    Modify
  1789    Delete
  1790    No Change
  1791   RTM
  1792  
  1793  
  1794   Current Lo gic
  1795  
  1796  
  1797   Modified L ogic (Chan ges are in  bold)
  1798   NAME: GMRV  HELP DESK  TEXT                 DISPLAY TE XT: Help t ext used b y Vitals
  1799     MULTIPLE  VALUED: N o                     VALUE DATA  TYPE: fre e text
  1800     VALUE HE LP: Messag e to displ ay to the  user 
  1801    DESCRIPTI ON:   
  1802    This is t he message  that will  inform th e user on  who to con tact in ca se 
  1803    of issues  with Vita ls.
  1804     Example:  "your loc al CPRS he lp desk" o r "your lo cal IRM". 
  1805     This wil l be used  in sentenc es such as  "Please c ontact you r local he lp 
  1806    desk for  support"
  1807   PRECEDENCE : 1                              ENTITY FIL E: SYSTEM
  1808  
  1809   GUI
  1810   Vitals
  1811   Table 36:  GUI
  1812   Unit Name
  1813   Descriptio n
  1814   Vitals
  1815   The Vitals  module is  used to e nter patie nt data, a nd is assi gned to cl inical sta ff
  1816  
  1817   fGMV_UserM ain
  1818   Summary of  changes
  1819   Added new  event for  the file m enu click  to check t o see if t he user ca n edit tem plates or  not and se t the edit  template  menu item  accordingl y.
  1820   Detailed C hanges
  1821   Table 40:  Events
  1822   Name
  1823   Type
  1824   Descriptio n
  1825   mnFile
  1826   Onclick
  1827   Perform RP C check to  see if te mplates ca n be edite d.
  1828   Table 46:  Forms
  1829   Forms
  1830   Descriptio n
  1831   Form Name
  1832   fGMV_UserM ain
  1833   Enhancemen t Category
  1834    New
  1835    Modify
  1836    Delete
  1837    No Change
  1838   Form Funct ionality
  1839   Main form  for the Vi tals stand alone appl ication
  1840  
  1841   Current Fo rm Layout
  1842  
  1843  
  1844   Modified F orm Layout  (Changes  are in bol d)
  1845  
  1846   Table 48:  Function
  1847   Function
  1848   Activities
  1849   Function N ame
  1850   mnFileClic k
  1851   Short Desc ription
  1852   Sets the E dit User T emplates m enu option ’s enabled  property  based on i f the user  is able t o edit or  not.
  1853   Enhancemen t Category
  1854    New
  1855    Modify
  1856    Delete
  1857    No Change
  1858   Related Op tions
  1859  
  1860  
  1861   Related Ro utines
  1862   Routines “ Called By”
  1863   Routines “ Called”   
  1864  
  1865  
  1866   GMVAllowUs erTemplate s
  1867  
  1868   Function N ame
  1869   Activities
  1870   Data Dicti onary (DD)  Reference s
  1871  
  1872   Related Pr otocols
  1873  
  1874   Related In tegration  Control Re gistration s (ICRs)
  1875  
  1876   Data Passi ng
  1877    Input
  1878    Output
  1879    Both
  1880    Global Re ference
  1881    Local Ref erence
  1882   Input Attr ibute Name  and Defin ition
  1883   Name: Send er
  1884  
  1885   Definition : The obje ct that is  calling i nto this p rocedure
  1886   Output Att ribute Nam e and Defi nition
  1887   Name:
  1888  
  1889   Definition :
  1890  
  1891   Current Lo gic
  1892   NA
  1893  
  1894   Modified L ogic (Chan ges are in  bold)
  1895   procedure  TfrmGMV_Us erMain.mnF ileClick(S ender: TOb ject);
  1896   begin
  1897    mnFileEdi tUserTempl ates.Enabl ed := GMVA llowUserTe mplates;
  1898   end;
  1899   Vitals Man ager
  1900   Table 36:  GUI
  1901   Unit Name
  1902   Descriptio n
  1903   Vitals Man ager
  1904   The Vitals  Manager m odule is u sed to man age the Vi tals templ ates and a bnormal va lues range s, and is  assigned t o the Clin ical Appli cation Coo rdinator,  package co ordinator,  and Infor mation Res ource Mana gement Ser vice (IRMS ) staff.
  1905   fGMV_Manag er
  1906   Summary of  changes
  1907   Added logi c for the  system wid e requirme nts settin gs for the  Vitals Me asurments.
  1908   Detailed C hanges
  1909   Table 46:  Forms
  1910   Forms
  1911   Descriptio n
  1912   Form Name
  1913   fGMV_Manag er
  1914   Enhancemen t Category
  1915    New
  1916    Modify
  1917    Delete
  1918    No Change
  1919   Form Funct ionality
  1920   Main form  for the Vi tals manag er applica tion
  1921  
  1922   Current Fo rm Layout
  1923  
  1924  
  1925   Modified F orm Layout  (Changes  are in bol d)
  1926  
  1927   Uses Claus e
  1928   Added uGMV _Const to  first uses  section.  Added AVCa tcher, Str Utils to s econd uses  section.  Removed uG MV_Const f rom this s ection
  1929   Table 39:  Components  on Form
  1930   Name
  1931   Type
  1932   Descriptio n
  1933   clbQualReq
  1934   TCheckList Box
  1935   List of Ch eckboxs us ed to set  system wid e requirem ent for sp ecific qua lifiers.
  1936   Label6
  1937   TLabel
  1938   Label for  clbQualReq
  1939   Removed Pa nel8
  1940   TPanel
  1941   Was used f or spacing  and is no  longer ne eded
  1942   PnlRequire d
  1943   TPanel
  1944   Panel used  to show r equirments  selection  for Vital s Measurme nts
  1945   pnlReq
  1946   TPanel
  1947   Used as a  header for  the requi rment sect ion
  1948   pnlReqBody
  1949   TPanel
  1950   Panel that  holds all  the requi rement opt ions
  1951   chkQualReq
  1952   TCheckBox
  1953   Checkbox t o indicate  that the  Vital Meas urement is  required  (system wi de)
  1954   tbtnSaveQu alifier
  1955   TToolButto n
  1956   Toolbutton  used to s ave the sy stem wide  requiremen ts (calls  actQualifi erSave)
  1957   actQualifi erSave
  1958   TAction
  1959   Action to  process th e save of  required f ields
  1960   Savequalif ier1
  1961   TMenuItem
  1962   Menu item  used to sa ve the sys tem wide r equirement s (calls a ctQualifie rSave)
  1963   Removed Qu alifiers1
  1964   TMenuItem
  1965   Was an ext ra menu op tion no lo nger neede d
  1966   lblReqQual
  1967   TLabel
  1968   Label used  to descri be the req uired qual ifiers che ck list bo x
  1969   clbQualReq Click
  1970   Table 48:  Function
  1971   Function
  1972   Activities
  1973   Function N ame
  1974   clbQualReq Click
  1975   Short Desc ription
  1976   This is a  list of qu alifiers f or a speci fic Vitals  Measurmen t. From he re the use r can set  individual  qualifers  required  when enter ing vitals  data.
  1977   Enhancemen t Category
  1978    New
  1979    Modify
  1980    Delete
  1981    No Change
  1982   Related Op tions
  1983  
  1984  
  1985   Related Ro utines
  1986   Routines “ Called By”
  1987   Routines “ Called”   
  1988  
  1989  
  1990  
  1991  
  1992   Function N ame
  1993   Activities
  1994   Data Dicti onary (DD)  Reference s
  1995  
  1996   Related Pr otocols
  1997  
  1998   Related In tegration  Control Re gistration s (ICRs)
  1999  
  2000   Data Passi ng
  2001    Input
  2002    Output
  2003    Both
  2004    Global Re ference
  2005    Local Ref erence
  2006   Input Attr ibute Name  and Defin ition
  2007   Name: Send er
  2008  
  2009   Definition : TObject
  2010   Output Att ribute Nam e and Defi nition
  2011   Name:
  2012  
  2013   Definition :
  2014  
  2015   Current Lo gic
  2016   NA
  2017  
  2018   Modified L ogic (Chan ges are in  bold)
  2019   procedure  TfrmGMV_Ma nager.clbQ ualReqClic k(Sender:  TObject);
  2020   var
  2021     aStrVal:  String;
  2022   begin
  2023       aStrVa l := TGMV_ FileEntry( tv.Selecte d.Data).IE N+'_'+TGMV _FileEntry (clbQualRe q.Items.Ob jects[clbQ ualReq.Ite mIndex]).I EN;
  2024       actQua lifierSave .Enabled : = IsQualif ierGlobalR equired(aS trVal) <>  clbQualReq .Checked[c lbQualReq. ItemIndex] ;
  2025   end;
  2026   chkQualReq Click
  2027   Table 48:  Function
  2028   Function
  2029   Activities
  2030   Function N ame
  2031   chkQualReq Click
  2032   Short Desc ription
  2033   This is us ed to set  the Vitals  Measureme nt as syst em wide qu alifier re quired. Wi th this se t at least  one quali fier will  be require d unless i ndividuall y set via  clbQualReq
  2034   Enhancemen t Category
  2035    New
  2036    Modify
  2037    Delete
  2038    No Change
  2039   Related Op tions
  2040  
  2041  
  2042   Related Ro utines
  2043   Routines “ Called By”
  2044   Routines “ Called”   
  2045  
  2046  
  2047  
  2048  
  2049   Function N ame
  2050   Activities
  2051   Data Dicti onary (DD)  Reference s
  2052  
  2053   Related Pr otocols
  2054  
  2055   Related In tegration  Control Re gistration s (ICRs)
  2056  
  2057   Data Passi ng
  2058    Input
  2059    Output
  2060    Both
  2061    Global Re ference
  2062    Local Ref erence
  2063   Input Attr ibute Name  and Defin ition
  2064   Name: Send er
  2065  
  2066   Definition : TObject
  2067   Output Att ribute Nam e and Defi nition
  2068   Name:
  2069  
  2070   Definition :
  2071  
  2072   Current Lo gic
  2073   NA
  2074  
  2075   Modified L ogic (Chan ges are in  bold)
  2076   procedure  TfrmGMV_Ma nager.chkQ ualReqClic k(Sender:  TObject);
  2077   begin
  2078    actQualif ierSave.En abled := I sQualifier GlobalRequ ired(TGMV_ FileEntry( tv.Selecte d.Data).IE N) <> chkQ ualReq.Che cked;
  2079    clbQualRe q.Enabled  := chkQual Req.Checke d;
  2080   end;
  2081  
  2082   CMTemplate Updated
  2083   Table 48:  Function
  2084   Function
  2085   Activities
  2086   Function N ame
  2087   CMTemplate Updated
  2088   Short Desc ription
  2089   Windows me ssage used  to allow  for the sa ve templat e action t o be avail able
  2090   Enhancemen t Category
  2091    New
  2092    Modify
  2093    Delete
  2094    No Change
  2095   Related Op tions
  2096  
  2097  
  2098   Related Ro utines
  2099   Routines “ Called By”
  2100   Routines “ Called”   
  2101  
  2102  
  2103  
  2104  
  2105   Function N ame
  2106   Activities
  2107   Data Dicti onary (DD)  Reference s
  2108  
  2109   Related Pr otocols
  2110  
  2111   Related In tegration  Control Re gistration s (ICRs)
  2112  
  2113   Data Passi ng
  2114    Input
  2115    Output
  2116    Both
  2117    Global Re ference
  2118    Local Ref erence
  2119   Input Attr ibute Name  and Defin ition
  2120    
  2121  
  2122   Definition : TMessage
  2123   Output Att ribute Nam e and Defi nition
  2124   Name:
  2125  
  2126   Definition :
  2127  
  2128   Current Lo gic
  2129   NA
  2130  
  2131   Modified L ogic (Chan ges are in  bold)
  2132   procedure  TfrmGMV_Ma nager.CMTe mplateUpda ted(var Me ssage: TMe ssage);
  2133   begin
  2134     actFileS aveTemplat e.Enabled  := True;
  2135   end;
  2136   CMTemplate Refreshed
  2137   Table 48:  Function
  2138   Function
  2139   Activities
  2140   Function N ame
  2141   CMTemplate Refreshed
  2142   Short Desc ription
  2143   Windows me ssage used  to allow  for the sa ve templat e action t o be not a vailable
  2144   Enhancemen t Category
  2145    New
  2146    Modify
  2147    Delete
  2148    No Change
  2149   Related Op tions
  2150  
  2151  
  2152   Related Ro utines
  2153   Routines “ Called By”
  2154   Routines “ Called”   
  2155  
  2156  
  2157  
  2158  
  2159   Function N ame
  2160   Activities
  2161   Data Dicti onary (DD)  Reference s
  2162  
  2163   Related Pr otocols
  2164  
  2165   Related In tegration  Control Re gistration s (ICRs)
  2166  
  2167   Data Passi ng
  2168    Input
  2169    Output
  2170    Both
  2171    Global Re ference
  2172    Local Ref erence
  2173   Input Attr ibute Name  and Defin ition
  2174   Name: Mess age
  2175  
  2176   Definition : TMessage
  2177   Output Att ribute Nam e and Defi nition
  2178   Name:
  2179  
  2180   Definition :
  2181  
  2182   Current Lo gic
  2183   NA
  2184  
  2185   Modified L ogic (Chan ges are in  bold)
  2186   procedure  TfrmGMV_Ma nager.CMTe mplateRefr eshed(var  Message: T Message);
  2187   begin
  2188     actFileS aveTemplat e.Enabled  := False;
  2189   end;
  2190   tvChange
  2191   Table 48:  Function
  2192   Function
  2193   Activities
  2194   Function N ame
  2195   tvChange
  2196   Short Desc ription
  2197   Change eve nt that is  fired whe n switchin g between  Vitals Mea surements.  We need t o ensure t hat we loa d up all i nformation  for the s pecific me asurement.
  2198   Enhancemen t Category
  2199    New
  2200    Modify
  2201    Delete
  2202    No Change
  2203   Related Op tions
  2204  
  2205  
  2206   Related Ro utines
  2207   Routines “ Called By”
  2208   Routines “ Called”   
  2209  
  2210   Onchange e vent 
  2211  
  2212  
  2213   Function N ame
  2214   Activities
  2215   Data Dicti onary (DD)  Reference s
  2216  
  2217   Related Pr otocols
  2218  
  2219   Related In tegration  Control Re gistration s (ICRs)
  2220  
  2221   Data Passi ng
  2222    Input
  2223    Output
  2224    Both
  2225    Global Re ference
  2226    Local Ref erence
  2227   Input Attr ibute Name  and Defin ition
  2228   Name: Send er
  2229  
  2230   Definition : TObject
  2231   Name:  Nod e
  2232   Definition : TTreeNod e
  2233   Output Att ribute Nam e and Defi nition
  2234   Name:
  2235  
  2236   Definition :
  2237  
  2238   Current Lo gic
  2239   procedure  TfrmGMV_Ma nager.tvCh ange(Sende r: TObject ; Node: TT reeNode);
  2240   var
  2241     SL: TStr ingList;
  2242     li:TList Item;
  2243     i, j: in teger;
  2244   begin
  2245     pgctrl.A ctivePage  := tbshtBl ank;
  2246     actFileS aveTemplat e.Enabled  := False;
  2247     actFileD eleteTempl ate.Enable d := False ;
  2248     actFileM akeDefault .Enabled : = False;
  2249     actAbnor malSave.En abled := F alse;
  2250     actSaveP arameters. Enabled :=  False;
  2251  
  2252     fraGMV_E ditTemplat e1.acUp.En abled := F alse;
  2253     fraGMV_E ditTemplat e1.acDown. Enabled :=  False;
  2254  
  2255     if Node. Data <> ni l then
  2256       begin
  2257         if ( TObject(No de.Data) i s TGMV_Tem plate) the n
  2258           be gin
  2259              fraGMV_Edi tTemplate1 .acUp.Enab led := Tru e;
  2260              fraGMV_Edi tTemplate1 .acDown.En abled := T rue;
  2261              pgctrl.Act ivePage :=  tbshtTemp late;
  2262              fraGMV_Edi tTemplate1 .EditTempl ate := TGM V_Template (Node.Data );
  2263           en d
  2264         else  if (TObje ct(Node.Da ta) is TGM V_FileEntr y) then
  2265           be gin
  2266              for i := 0  to clbxQu alifiers.I tems.Count  - 1 do
  2267                clbxQual ifiers.Che cked[i] :=  False;
  2268              clbxQualif iers.ItemI ndex := -1 ;
  2269              clbxQualif iers.Enabl ed := Fals e;
  2270  
  2271              lvCategori es.Items.C lear;//AAN  07/15/200 2
  2272  
  2273              SL := getC ategoryQua lifiers(TG MV_FileEnt ry(Node.Da ta).IEN);
  2274              for i := 1  to SL.Cou nt - 1 do
  2275                begin
  2276                  j := G MVCats.Ind exOfIEN(Pi ece(SL[i],  '^', 1));
  2277                  if j >  - 1 then
  2278                    begi n
  2279                      li  := lvCate gories.Ite ms.Add;
  2280                      li .Caption : = {TitleCa se}(GMVCat s.Entries[ j]);
  2281                      li .SubItems. Add(TGMV_F ileEntry(G MVCats.Ent ries.Objec ts[j]).IEN );
  2282                      li .SubItems. Add('[' +  {TitleCase }(Piece(SL [i], '^',  3)) + ']') ;
  2283                    end;
  2284                end;
  2285              SL.Free;
  2286  
  2287              pgctrl.Act ivePage :=  tbshtVita ls;
  2288           en d
  2289         else  if (TObje ct(Node.Da ta) is TGM V_VitalHiL oDefinitio n) then
  2290           wi th TGMV_Vi talHiLoDef inition(No de.Data) d o
  2291              begin
  2292                case Vit alType of
  2293                  hltO2S at:
  2294                    fraL owValue.Se tUpFrame(V italType,  hlLow, Min imum, Maxi mum, Incre ment)
  2295                else
  2296                  begin
  2297                    fraL owValue.Se tUpFrame(V italType,  hlLow, Min imum, Maxi mum, Incre ment);
  2298                    fraH ighValue.S etUpFrame( VitalType,  hlHigh, M inimum, Ma ximum, Inc rement);
  2299                  end;
  2300                end;
  2301                fraHighV alue.Visib le := (Vit alType <>  hltO2Sat);
  2302                pgctrl.A ctivePage  := tbshtVi talsHiLo;
  2303              end
  2304         else
  2305           pg ctrl.Activ ePage := t bshtBlank;
  2306  
  2307         actF ileSaveTem plate.Enab led := (TO bject(Node .Data) is  TGMV_Templ ate);
  2308         actF ileDeleteT emplate.En abled := ( TObject(No de.Data) i s TGMV_Tem plate);
  2309         actF ileMakeDef ault.Enabl ed := (TOb ject(Node. Data) is T GMV_Templa te);
  2310         actA bnormalSav e.Enabled  := (TObjec t(Node.Dat a) is TGMV _VitalHiLo Definition );
  2311       end
  2312     else if  Node = FPa ramRoot th en
  2313       begin
  2314         fraS ystemParam eters.Load Parameters ;
  2315         actS aveParamet ers.Enable d := True;
  2316         pgct rl.ActiveP age := tbs htSystemPa rameters;
  2317       end;
  2318   end;
  2319  
  2320   Modified L ogic (Chan ges are in  bold)
  2321   procedure  TfrmGMV_Ma nager.tvCh ange(Sende r: TObject ; Node: TT reeNode);
  2322   var
  2323     SL: TStr ingList;
  2324     li:TList Item;
  2325     i, j: in teger;
  2326   begin
  2327     pgctrl.A ctivePage  := tbshtBl ank;
  2328     actFileS aveTemplat e.Enabled  := False;
  2329     actFileD eleteTempl ate.Enable d := False ;
  2330     actFileM akeDefault .Enabled : = False;
  2331     actAbnor malSave.En abled := F alse;
  2332     actSaveP arameters. Enabled :=  False;
  2333  
  2334     fraGMV_E ditTemplat e1.acUp.En abled := F alse;
  2335     fraGMV_E ditTemplat e1.acDown. Enabled :=  False;
  2336  
  2337     if Node. Data <> ni l then
  2338       begin
  2339         if ( TObject(No de.Data) i s TGMV_Tem plate) the n
  2340           be gin
  2341              fraGMV_Edi tTemplate1 .acUp.Enab led := Tru e;
  2342              fraGMV_Edi tTemplate1 .acDown.En abled := T rue;
  2343              pgctrl.Act ivePage :=  tbshtTemp late;
  2344              fraGMV_Edi tTemplate1 .EditTempl ate := TGM V_Template (Node.Data );
  2345           en d
  2346         else  if (TObje ct(Node.Da ta) is TGM V_FileEntr y) then
  2347           be gin
  2348              for i := 0  to clbxQu alifiers.I tems.Count  - 1 do
  2349                clbxQual ifiers.Che cked[i] :=  False;
  2350              clbxQualif iers.ItemI ndex := -1 ;
  2351              clbxQualif iers.Enabl ed := Fals e;
  2352  
  2353              //set the  required c heckbox
  2354              chkQualReq .Checked : = IsQualif ierGlobalR equired(TG MV_FileEnt ry(Node.Da ta).IEN);
  2355  
  2356              lvCategori es.Items.C lear;//AAN  07/15/200 2
  2357              clbQualReq .Items.Cle ar;
  2358  
  2359              SL := getC ategoryQua lifiers(TG MV_FileEnt ry(Node.Da ta).IEN);
  2360              try
  2361              for i := 1  to SL.Cou nt - 1 do
  2362                begin
  2363                  j := G MVCats.Ind exOfIEN(Pi ece(SL[i],  '^', 1));
  2364                  if j >  - 1 then
  2365                    begi n
  2366                      li  := lvCate gories.Ite ms.Add;
  2367                      li .Caption : = {TitleCa se}(GMVCat s.Entries[ j]);
  2368                      li .SubItems. Add(TGMV_F ileEntry(G MVCats.Ent ries.Objec ts[j]).IEN );
  2369                      li .SubItems. Add('[' +  {TitleCase }(Piece(SL [i], '^',  3)) + ']') ;
  2370  
  2371                      // Fill out r equired ca tegories
  2372                      cl bQualReq.I tems.AddOb ject(GMVCa ts.Entries [j], TGMV_ FileEntry( GMVCats.En tries.Obje cts[j]));
  2373  
  2374                      cl bQualReq.C hecked[(cl bQualReq.C ount - 1)]  := IsQual ifierGloba lRequired( TGMV_FileE ntry(Node. Data).IEN+ '_'+TGMV_F ileEntry(G MVCats.Ent ries.Objec ts[j]).IEN );
  2375                    end;
  2376                end;
  2377              finally
  2378                SL.Free;
  2379              end;
  2380  
  2381              clbQualReq .Enabled : = chkQualR eq.Checked ;
  2382              pgctrl.Act ivePage :=  tbshtVita ls;
  2383           en d
  2384         else  if (TObje ct(Node.Da ta) is TGM V_VitalHiL oDefinitio n) then
  2385           wi th TGMV_Vi talHiLoDef inition(No de.Data) d o
  2386              begin
  2387                case Vit alType of
  2388                  hltO2S at:
  2389                    fraL owValue.Se tUpFrame(V italType,  hlLow, Min imum, Maxi mum, Incre ment)
  2390                else
  2391                  begin
  2392                    fraL owValue.Se tUpFrame(V italType,  hlLow, Min imum, Maxi mum, Incre ment);
  2393                    fraH ighValue.S etUpFrame( VitalType,  hlHigh, M inimum, Ma ximum, Inc rement);
  2394                  end;
  2395                end;
  2396                fraHighV alue.Visib le := (Vit alType <>  hltO2Sat);
  2397                pgctrl.A ctivePage  := tbshtVi talsHiLo;
  2398              end
  2399         else
  2400           pg ctrl.Activ ePage := t bshtBlank;
  2401  
  2402         actF ileSaveTem plate.Enab led := (TO bject(Node .Data) is  TGMV_Templ ate);
  2403         actF ileDeleteT emplate.En abled := ( TObject(No de.Data) i s TGMV_Tem plate);
  2404         actF ileMakeDef ault.Enabl ed := (TOb ject(Node. Data) is T GMV_Templa te);
  2405         actA bnormalSav e.Enabled  := (TObjec t(Node.Dat a) is TGMV _VitalHiLo Definition );
  2406       end
  2407     else if  Node = FPa ramRoot th en
  2408       begin
  2409         fraS ystemParam eters.Load Parameters ;
  2410         actS aveParamet ers.Enable d := True;
  2411         pgct rl.ActiveP age := tbs htSystemPa rameters;
  2412       end;
  2413   end;
  2414  
  2415   actQualifi erSaveExec ute
  2416   Table 48:  Function
  2417   Function
  2418   Activities
  2419   Function N ame
  2420   actQualifi erSaveExec ute
  2421   Short Desc ription
  2422   Process th e save of  the requir ement sett ings for t he specifi c Vitals M easurement .
  2423   Enhancemen t Category
  2424    New
  2425    Modify
  2426    Delete
  2427    No Change
  2428   Related Op tions
  2429  
  2430  
  2431   Related Ro utines
  2432   Routines “ Called By”
  2433   Routines “ Called”   
  2434  
  2435  
  2436  
  2437  
  2438   Function N ame
  2439   Activities
  2440   Data Dicti onary (DD)  Reference s
  2441  
  2442   Related Pr otocols
  2443  
  2444   Related In tegration  Control Re gistration s (ICRs)
  2445  
  2446   Data Passi ng
  2447    Input
  2448    Output
  2449    Both
  2450    Global Re ference
  2451    Local Ref erence
  2452   Input Attr ibute Name  and Defin ition
  2453   Name: Send er
  2454  
  2455   Definition : TObject
  2456   Output Att ribute Nam e and Defi nition
  2457   Name:
  2458  
  2459   Definition :
  2460  
  2461   Current Lo gic
  2462   NA
  2463  
  2464   Modified L ogic (Chan ges are in  bold)
  2465   procedure  TfrmGMV_Ma nager.actQ ualifierSa veExecute( Sender: TO bject);
  2466   var
  2467    aRtnStr,  aHelpTxt,  aStrVal: S tring;
  2468    aParamLst : TStringL ist;
  2469    I: intege r;
  2470   begin
  2471     //save t he global  required
  2472     aParamLs t := TStri ngList.Cre ate;
  2473     try
  2474      aParamL st.NameVal ueSeparato r := '^';
  2475      aParamL st.Values[ TGMV_FileE ntry(tv.Se lected.Dat a).IEN] :=  IfThen(ch kQualReq.C hecked, 'T rue', 'Fal se');
  2476      for I : = 0 to clb QualReq.Co unt - 1 do
  2477      begin
  2478       aStrVa l := TGMV_ FileEntry( tv.Selecte d.Data).IE N+'_'+TGMV _FileEntry (clbQualRe q.Items.Ob jects[i]). IEN;
  2479       aParam Lst.Values [aStrVal]  := IfThen( clbQualReq .Checked[I ], 'True',  'False');
  2480      end;
  2481      aRtnStr  := setSys temParamet erList(GMV _Qualifier Required,  '', aParam Lst);
  2482  
  2483       if Pie ce(aRtnStr , '^', 1)  <> '1' the n
  2484       begin
  2485         aHel pTxt := ge tSystemPar ameterByNa me('GMRV H ELP DESK T EXT');
  2486         Mess ageDlg('Er ror markin g qualifie r required . Please c ontact ' +  aHelpTxt  + ' for he lp', mtErr or, [mbOK] , 0);
  2487       end;
  2488  
  2489       for I  := 0 to aP aramLst.Co unt - 1 do
  2490       begin
  2491         Upda teQualifie rGlobalReq uired(aPar amLst.Name s[i], aPar amLst.Valu eFromIndex [i]);
  2492         actQ ualifierSa ve.Enabled  := false;
  2493       end;
  2494     finally
  2495       aParam Lst.Free;
  2496     end;
  2497  
  2498   end;
  2499   LoadExcept ionLogger
  2500   Table 48:  Function
  2501   Function
  2502   Activities
  2503   Function N ame
  2504   LoadExcept ionLogger
  2505   Short Desc ription
  2506   Initialize s the acce ss violati on logger.
  2507   Enhancemen t Category
  2508    New
  2509    Modify
  2510    Delete
  2511    No Change
  2512   Related Op tions
  2513  
  2514  
  2515   Related Ro utines
  2516   Routines “ Called By”
  2517   Routines “ Called”   
  2518  
  2519  
  2520  
  2521  
  2522   Function N ame
  2523   Activities
  2524   Data Dicti onary (DD)  Reference s
  2525  
  2526   Related Pr otocols
  2527  
  2528   Related In tegration  Control Re gistration s (ICRs)
  2529  
  2530   Data Passi ng
  2531    Input
  2532    Output
  2533    Both
  2534    Global Re ference
  2535    Local Ref erence
  2536   Input Attr ibute Name  and Defin ition
  2537   Name: 
  2538  
  2539   Definition
  2540   Output Att ribute Nam e and Defi nition
  2541   Name:
  2542  
  2543   Definition :
  2544  
  2545   Current Lo gic
  2546   NA
  2547  
  2548   Modified L ogic (Chan ges are in  bold)
  2549     Procedur e TfrmGMV_ Manager.Lo adExceptio nLogger;
  2550     var
  2551      TmpLst:  TStringLi st;
  2552      TmpStr:  String;
  2553     begin
  2554       Except ionLog.Day sToPurge : = StrToInt Def(getSys temParamet erByName(' GMV EXCEPT ION PURGE' ), 60);
  2555       Except ionLog.Ena bled := Up percase(ge tSystemPar ameterByNa me('GMV EX CEPTION LO GGER')) =  'YES';
  2556       TmpLst  := getSys temParamet erListByNa me('GMV EX CEPTION EM AIL');
  2557       try
  2558         for  TmpStr in  TmpLst do
  2559          Exc eptionLog. EmailTo.Ad d(Piece(Tm pStr, '^',  2));
  2560       finall y
  2561         TmpL st.Free;
  2562       end;
  2563     end;
  2564   RestoreSet tings
  2565   Table 48:  Function
  2566   Function
  2567   Activities
  2568   Function N ame
  2569   RestoreSet tings
  2570   Short Desc ription
  2571   Used to in itialize t he Vitals  Manager an d the Vita ls Measure ments.
  2572   Enhancemen t Category
  2573    New
  2574    Modify
  2575    Delete
  2576    No Change
  2577   Related Op tions
  2578  
  2579  
  2580   Related Ro utines
  2581   Routines “ Called By”
  2582   Routines “ Called”   
  2583  
  2584  
  2585  
  2586  
  2587   Function N ame
  2588   Activities
  2589   Data Dicti onary (DD)  Reference s
  2590  
  2591   Related Pr otocols
  2592  
  2593   Related In tegration  Control Re gistration s (ICRs)
  2594  
  2595   Data Passi ng
  2596    Input
  2597    Output
  2598    Both
  2599    Global Re ference
  2600    Local Ref erence
  2601   Input Attr ibute Name  and Defin ition
  2602   Name: 
  2603  
  2604   Definition
  2605   Output Att ribute Nam e and Defi nition
  2606   Name:
  2607  
  2608   Definition :
  2609  
  2610   Current Lo gic
  2611   procedure  TfrmGMV_Ma nager.Rest oreSetting s;
  2612   var
  2613     i: integ er;
  2614   begin
  2615     Font :=  Screen.Men uFont;
  2616  
  2617     for i :=  0 to pgct rl.PageCou nt - 1 do
  2618       TTabSh eet(pgctrl .Pages[i]) .TabVisibl e := False ;
  2619  
  2620     pgctrl.A ctivePage  := tbshtBl ank;
  2621     tv.Enabl ed := Fals e;
  2622     tv.Items .Clear;
  2623     tv.ShowR oot := Fal se;
  2624     with tv. Items.Add( nil, 'Load ing, pleas e wait...' ) do
  2625       begin
  2626         Imag eIndex :=  -1;
  2627         sele ctedIndex  := -1;
  2628         Sele cted := Fa lse;
  2629       end;
  2630     Show;
  2631     Applicat ion.Proces sMessages;
  2632     LoadTree View;
  2633     tv.Enabl ed := True ;
  2634     for i :=  0 to GMVQ uals.Entri es.Count -  1 do
  2635       //AAN  07/18/2002 : We shoul d show Qua lifier nam es as they  are kept  in DB
  2636       clbxQu alifiers.I tems.AddOb ject({Titl eCase}(GMV Quals.Entr ies[i]), G MVQuals.En tries.Obje cts[i]);
  2637     clbxQual ifiers.Ena bled := Fa lse;
  2638     Caption  := 'Vitals  Managemen t. User: ' + GMVUser. Name + '   (' + GMVUs er.Title + ') Divisio n: '+ GMVU ser.Divisi on;
  2639     lvCatego riesResize (nil);
  2640     sb.Simpl ePanel :=  true;
  2641  
  2642   //{$IFDEF  GMRV*5*8}   //HDR
  2643     actQuali fierNew.En abled := F alse;
  2644     actQuali fierEdit.E nabled :=  False;
  2645   //{$ENDIF}
  2646   end;
  2647  
  2648   Modified L ogic (Chan ges are in  bold)
  2649   procedure  TfrmGMV_Ma nager.Rest oreSetting s;
  2650   var
  2651     i: integ er;
  2652   begin
  2653     Font :=  Screen.Men uFont;
  2654  
  2655     for i :=  0 to pgct rl.PageCou nt - 1 do
  2656       TTabSh eet(pgctrl .Pages[i]) .TabVisibl e := False ;
  2657  
  2658     pgctrl.A ctivePage  := tbshtBl ank;
  2659     tv.Enabl ed := Fals e;
  2660     tv.Items .Clear;
  2661     tv.ShowR oot := Fal se;
  2662     with tv. Items.Add( nil, 'Load ing, pleas e wait...' ) do
  2663       begin
  2664         Imag eIndex :=  -1;
  2665         sele ctedIndex  := -1;
  2666         Sele cted := Fa lse;
  2667       end;
  2668     Show;
  2669     Applicat ion.Proces sMessages;
  2670     LoadTree View;
  2671     tv.Enabl ed := True ;
  2672     for i :=  0 to GMVQ uals.Entri es.Count -  1 do
  2673       //AAN  07/18/2002 : We shoul d show Qua lifier nam es as they  are kept  in DB
  2674       clbxQu alifiers.I tems.AddOb ject({Titl eCase}(GMV Quals.Entr ies[i]), G MVQuals.En tries.Obje cts[i]);
  2675     clbxQual ifiers.Ena bled := Fa lse;
  2676     Caption  := 'Vitals  Managemen t. User: ' + GMVUser. Name + '   (' + GMVUs er.Title + ') Divisio n: '+ GMVU ser.Divisi on;
  2677     lvCatego riesResize (nil);
  2678     sb.Simpl ePanel :=  true;
  2679  
  2680   //{$IFDEF  GMRV*5*8}   //HDR
  2681     actQuali fierNew.En abled := T rue;
  2682     actQuali fierEdit.E nabled :=  False;
  2683   //{$ENDIF}
  2684   end;
  2685   actFileSav eTemplateE xecute
  2686   Table 48:  Function
  2687   Function
  2688   Activities
  2689   Function N ame
  2690   actFileSav eTemplateE xecute
  2691   Short Desc ription
  2692   Saves the  current ed ited templ ate and se ts the sav e action t o disabled  (until ne xt modific ation)
  2693   Enhancemen t Category
  2694    New
  2695    Modify
  2696    Delete
  2697    No Change
  2698   Related Op tions
  2699  
  2700  
  2701   Related Ro utines
  2702   Routines “ Called By”
  2703   Routines “ Called”   
  2704  
  2705  
  2706  
  2707  
  2708   Function N ame
  2709   Activities
  2710   Data Dicti onary (DD)  Reference s
  2711  
  2712   Related Pr otocols
  2713  
  2714   Related In tegration  Control Re gistration s (ICRs)
  2715  
  2716   Data Passi ng
  2717    Input
  2718    Output
  2719    Both
  2720    Global Re ference
  2721    Local Ref erence
  2722   Input Attr ibute Name  and Defin ition
  2723   Name: Send er
  2724  
  2725   Definition : TObject
  2726   Output Att ribute Nam e and Defi nition
  2727   Name:
  2728  
  2729   Definition :
  2730  
  2731   Current Lo gic
  2732   procedure  TfrmGMV_Ma nager.actF ileSaveTem plateExecu te(Sender:  TObject);
  2733   begin
  2734     fraGMV_E ditTemplat e1.SaveTem plate;
  2735     tv.Selec ted.Text : = TGMV_Tem plate(tv.S elected.Da ta).Templa teName;
  2736   end;
  2737  
  2738   Modified L ogic (Chan ges are in  bold)
  2739   procedure  TfrmGMV_Ma nager.actF ileSaveTem plateExecu te(Sender:  TObject);
  2740   begin
  2741     fraGMV_E ditTemplat e1.SaveTem plate;
  2742     tv.Selec ted.Text : = TGMV_Tem plate(tv.S elected.Da ta).Templa teName;
  2743     actFileS aveTemplat e.Enabled  := false;
  2744   end;
  2745   clbxQualif iersClickC heck
  2746   Table 48:  Function
  2747   Function
  2748   Activities
  2749   Function N ame
  2750   clbxQualif iersClickC heck
  2751   Short Desc ription
  2752   Currently  disabled b ut fires o ff logic w hen adding  qualifier s to a Vit als Measur ement. New  logic jus t reverts  the checkb ox since t his is not  allowed.
  2753   Enhancemen t Category
  2754    New
  2755    Modify
  2756    Delete
  2757    No Change
  2758   Related Op tions
  2759  
  2760  
  2761   Related Ro utines
  2762   Routines “ Called By”
  2763   Routines “ Called”   
  2764  
  2765  
  2766  
  2767  
  2768   Function N ame
  2769   Activities
  2770   Data Dicti onary (DD)  Reference s
  2771  
  2772   Related Pr otocols
  2773  
  2774   Related In tegration  Control Re gistration s (ICRs)
  2775  
  2776   Data Passi ng
  2777    Input
  2778    Output
  2779    Both
  2780    Global Re ference
  2781    Local Ref erence
  2782   Input Attr ibute Name  and Defin ition
  2783   Name: Send er
  2784  
  2785   Definition : TObject
  2786   Output Att ribute Nam e and Defi nition
  2787   Name:
  2788  
  2789   Definition :
  2790  
  2791   Current Lo gic
  2792   NA
  2793  
  2794   Modified L ogic (Chan ges are in  bold)
  2795   procedure  TfrmGMV_Ma nager.clbx Qualifiers ClickCheck (Sender: T Object);
  2796   var
  2797     i: integ er;
  2798     VitalIEN : string;
  2799     Category IEN: strin g;
  2800     Qualifie rIEN: stri ng;
  2801   begin
  2802   {$IFDEF DI SABLEQUALI FIERS}
  2803      //Rever t the chec kbox
  2804      clbxQua lifiers.Ch ecked[clbx Qualifiers .ItemIndex ] := not c lbxQualifi ers.Checke d[clbxQual ifiers.Ite mIndex];
  2805      Exit;
  2806   {$ENDIF}
  2807  
  2808  
  2809   {$IFDEF GM V*5*8}
  2810     actQuali fierEdit.E nabled :=  False;
  2811   {$ELSE}
  2812     actQuali fierEdit.E nabled :=  True;
  2813   {$ENDIF}
  2814  
  2815     VitalIEN  := TGMV_F ileEntry(t v.Selected .Data).IEN ;
  2816  
  2817     Category IEN := lvC ategories. ItemFocuse d.SubItems [0];
  2818     Qualifie rIEN := TG MV_FileEnt ry(clbxQua lifiers.It ems.Object s[clbxQual ifiers.Ite mIndex]).I EN;
  2819  
  2820     i := clb xQualifier s.ItemInde x;
  2821     if clbxQ ualifiers. Checked[i]  then
  2822        addQu alifier(Vi talIEN,Cat egoryIEN,Q ualifierIE N)
  2823     else
  2824        delQu alifier(Vi talIEN,Cat egoryIEN,Q ualifierIE N);
  2825     lvCatego ries.ItemF ocused.Sub Items[1] : = '[' + Qu alDisplayL ist + ']';
  2826   end;
  2827   Vitals Com mon
  2828   frmGMV_Edi tUserTempl ates
  2829   Summary of  changes
  2830   Cleaned up  form sinc e using al ignments o ptions as  well as ad ded requir ement chec kboxes (in herited)
  2831   Detailed C hanges
  2832   Table 46:  Forms
  2833   Forms
  2834   Descriptio n
  2835   Form Name
  2836   frmGMV_Edi tUserTempl ates
  2837   Enhancemen t Category
  2838    New
  2839    Modify
  2840    Delete
  2841    No Change
  2842   Form Funct ionality
  2843  
  2844  
  2845   Current Fo rm Layout
  2846  
  2847  
  2848   Modified F orm Layout  (Changes  are in bol d)
  2849  
  2850   Vitals Dat a Entry
  2851   frmGMV_Qua lifiers
  2852   Summary of  changes
  2853   Form used  to fill ou t qualifie rs for a V itals Meas uremenet..
  2854   Detailed C hanges
  2855   Uses Claus e
  2856   Added uGMV _Template  to first u ses sectio n. Added u GMV_Utils  into the s econd uses  statement
  2857   Table 40:  Events
  2858   Name
  2859   Type
  2860   Descriptio n
  2861   Form
  2862   OnCloseQue ry
  2863  
  2864   Table 46:  Forms
  2865   Forms
  2866   Descriptio n
  2867   Form Name
  2868   frmGMV_Qua lifiers
  2869   Enhancemen t Category
  2870    New
  2871    Modify
  2872    Delete
  2873    No Change
  2874   Form Funct ionality
  2875  
  2876  
  2877   Current Fo rm Layout
  2878  
  2879  
  2880   Modified F orm Layout  (Changes  are in bol d)
  2881  
  2882   FormCloseQ uery
  2883   Table 48:  Function
  2884   Function
  2885   Activities
  2886   Function N ame
  2887   FormCloseQ uery
  2888   Short Desc ription
  2889   Performs c heck to en sure that  required f ields are  filled out
  2890   Enhancemen t Category
  2891    New
  2892    Modify
  2893    Delete
  2894    No Change
  2895   Related Op tions
  2896  
  2897  
  2898   Related Ro utines
  2899   Routines “ Called By”
  2900   Routines “ Called”   
  2901  
  2902  
  2903  
  2904  
  2905   Function N ame
  2906   Activities
  2907   Data Dicti onary (DD)  Reference s
  2908  
  2909   Related Pr otocols
  2910  
  2911   Related In tegration  Control Re gistration s (ICRs)
  2912  
  2913   Data Passi ng
  2914    Input
  2915    Output
  2916    Both
  2917    Global Re ference
  2918    Local Ref erence
  2919   Input Attr ibute Name  and Defin ition
  2920   Name: Send er
  2921  
  2922   Definition : TObject
  2923   Output Att ribute Nam e and Defi nition
  2924   Name:
  2925  
  2926   Definition :
  2927  
  2928   Current Lo gic
  2929   NA
  2930  
  2931   Modified L ogic (Chan ges are in  bold)
  2932   procedure  TfrmGMV_Qu alifiers.F ormCloseQu ery(Sender : TObject;
  2933     var CanC lose: Bool ean);
  2934   Const
  2935    aMsg = '% s required ';
  2936   Var
  2937    I: intege r;
  2938    LookupIEN : String;
  2939    aFmtMsg:  TStringLis t;
  2940    aMsgStr:  String;
  2941   begin
  2942    CanClose  := True;
  2943    if ModalR esult = mr Ok then
  2944    begin
  2945      aFmtMsg  := TStrin glist.Crea te;
  2946      try
  2947        for i  := 0 to F PanelList. Count - 1  do
  2948        begin
  2949           Lo okupIEN :=  fGMV_Temp late.IEN +  '_' + TGM V_Template QualifierB ox(FPanelL ist[i]).Ca tegoryIEN;
  2950           if  fGMV_Temp late.IsReq uired[Look upIEN] the n
  2951           be gin
  2952              if TGMV_Te mplateQual ifierBox(F PanelList[ i]).Defaul tQualifier IEN = '' t hen
  2953               aFmtMsg.A dd(TitleCa se(GMVCats .Entries[G MVCats.Ind exOfIEN(TG MV_Templat eQualifier Box(FPanel List[i]).C ategoryIEN )]) );
  2954           en d;
  2955        end;
  2956  
  2957        if aF mtMsg.Coun t > 0 then
  2958        begin
  2959          for  I := 0 to  aFmtMsg.C ount - 1 d o
  2960          beg in
  2961           if  aFmtMsg.C ount > 1 t hen
  2962           be gin
  2963              If(I = aFm tMsg.Count  - 1) then
  2964               aMsgStr : = Trim(aMs gStr) + '  and '
  2965              else if I  > 0 then
  2966              aMsgStr :=  Trim(aMsg Str) + ',  ';
  2967           en d;
  2968           aM sgStr := T rim(aMsgSt r) + ' ' +  aFmtMsg.S trings[i]  + ' ';
  2969          end ;
  2970          if  aFmtMsg.Co unt = 1 th en
  2971           aM sgStr := T rim(aMsgSt r) + ' is'
  2972          els e
  2973           aM sgStr := T rim(aMsgSt r) + ' are ';
  2974  
  2975          Sho wMessage(F ormat(aMsg , [aMsgStr ]));
  2976          Can Close := F alse;
  2977        end;
  2978  
  2979      finally
  2980       aFmtMs g.Free;
  2981      end;
  2982    end;
  2983   end;
  2984   SelectQual ifiers
  2985   Table 48:  Function
  2986   Function
  2987   Activities
  2988   Function N ame
  2989   SelectQual ifiers
  2990   Short Desc ription
  2991   Opens up t he qualife rs for a g iven Vital s Measurem ent and pr eselects t he default s and or c urrent sel ections
  2992   Enhancemen t Category
  2993    New
  2994    Modify
  2995    Delete
  2996    No Change
  2997   Related Op tions
  2998  
  2999  
  3000   Related Ro utines
  3001   Routines “ Called By”
  3002   Routines “ Called”   
  3003  
  3004  
  3005  
  3006  
  3007   Function N ame
  3008   Activities
  3009   Data Dicti onary (DD)  Reference s
  3010  
  3011   Related Pr otocols
  3012  
  3013   Related In tegration  Control Re gistration s (ICRs)
  3014  
  3015   Data Passi ng
  3016    Input
  3017    Output
  3018    Both
  3019    Global Re ference
  3020    Local Ref erence
  3021   Input Attr ibute Name  and Defin ition
  3022   Name: VTyp e
  3023  
  3024   Definition : TVitalTy pe
  3025   Name: Qual s
  3026   Definition : string
  3027   Name: Qual sDisplay
  3028   Definition : string
  3029   Name: Ctrl
  3030   Definition : TControl
  3031   Name: aVal ue
  3032   Definition : string
  3033   Output Att ribute Nam e and Defi nition
  3034   Name: Resu lt
  3035  
  3036   Definition : Boolean
  3037  
  3038   Current Lo gic
  3039   function S electQuali fiers(VTyp e: TVitalT ype; var Q uals, Qual sDisplay:  string; Ct rl: TContr ol;aValue: String): B oolean;
  3040   var
  3041     s: Strin g;//AAN 07 /11/02 for  Debugging  only
  3042     _QForm:  TfrmGMV_Qu alifiers;
  3043     TQB,
  3044     QPanel:  TGMV_Templ ateQualifi erBox;
  3045     iOrder,
  3046     i, j: in teger;
  3047     ii: Inte ger;
  3048     pt: TPoi nt;
  3049     RetList:  TStrings;
  3050  
  3051   begin
  3052     Result : = False;
  3053     _QForm : = TfrmGMV_ Qualifiers .Create(Ap plication) ;
  3054     with _QF orm do
  3055     try
  3056       pt :=  Ctrl.Paren t.ClientTo Screen(Poi nt(Ctrl.Le ft, Ctrl.T op));
  3057       Left : = pt.x;
  3058       Top :=  pt.y + Ct rl.Height;
  3059  
  3060       RetLis t := getVi talQualifi erList(GMV VitalTypeA bbv[VType] );
  3061       _QForm .pnlTitle. Caption :=
  3062         piec e(RetList. Text,'^',3 ) + ' Qual ifiers';
  3063       for i  := 0 to Re tList.Coun t - 1 do
  3064         begi n
  3065   //         S := RetLi st[i];
  3066           if  Piece(Ret List[i], ' ^', 1) = ' C' then
  3067              begin
  3068                QPanel : = TGMV_Tem plateQuali fierBox.Cr eateParent ed(
  3069   //               _QFo rm.pnlMain ,
  3070                  _QForm ,_QForm.sb ,
  3071                  GMVVit alTypeIEN[ VType], pi ece(RetLis t[i], '^',  2),'');
  3072                FPanelLi st.Add(QPa nel);
  3073   //             _QForm .Width :=  FPanelList .Count * 1 00;
  3074              end;
  3075         end;
  3076       RetLis t.Free;
  3077  
  3078   //    if F PanelList. Count < 2  then
  3079   //      _Q Form.Width  := 150;
  3080       for i  := 0 to _Q Form.sb.Co ntrolCount  - 1 do
  3081         begi n
  3082           if  _QForm.sb .Controls[ i] is TGMV _TemplateQ ualifierBo x then
  3083              begin
  3084                iOrder : = _QForm.s b.ControlC ount - 1 -  i;
  3085                TGMV_Tem plateQuali fierBox(_Q Form.sb.Co ntrols[i]) .TabOrder  :=
  3086                iOrder;
  3087              end;
  3088         end;
  3089  
  3090       for i  := 0 to FP anelList.C ount - 1 d o
  3091         with  TGMV_Temp lateQualif ierBox(FPa nelList[i] ) do
  3092           be gin
  3093   {
  3094              Left := i  * (_QForm. Width div  FPanelList .Count);
  3095              Width := _ QForm.Widt h div FPan elList.Cou nt;
  3096              if i < (FP anelList.C ount - 1)  then
  3097                Align :=  alLeft
  3098              else
  3099                Align :=  alClient;
  3100   }
  3101              Align := a lTop;
  3102              Visible :=  True;
  3103              OnClick :=  Qualifier Clicked;
  3104              setPopupLa yout;
  3105           en d;
  3106  
  3107       i := 1 ;
  3108       for j  := 0 to FP anelList.C ount - 1 d o
  3109         begi n
  3110           TQ B := TGMV_ TemplateQu alifierBox (FPanelLis t[j]);
  3111           s  := TQB.Def aultQualif ierIEN;
  3112           ii  := StrToI ntDef(s,0) ;
  3113           if  ii < 1 th en
  3114              begin
  3115                s := pie ce(Quals,  ':', i);//  assigning  qualifier s as DEFAU LT (!?)
  3116                try
  3117                    if s <> ''  then // c hanged on  050708 by  DNS
  3118                    begi n
  3119                      TG MV_Templat eQualifier Box(FPanel List[j]).D efaultQual ifierIEN : = s; // pi ece(Quals,  ':', i);
  3120   //                    TGMV_Templ ateQualifi erBox(FPan elList[j]) .OnQualCli ck(TGMV_Te mplateQual ifierBox(F PanelList[ j]).CLB);
  3121                      TG MV_Templat eQualifier Box(FPanel List[j]).O nQualClick (nil);
  3122                    end
  3123                  else
  3124   //                 TG MV_Templat eQualifier Box(FPanel List[j]).O nQualClick (TGMV_Temp lateQualif ierBox(FPa nelList[j] ).CLB);
  3125                    TGMV _TemplateQ ualifierBo x(FPanelLi st[j]).OnQ ualClick(n il);
  3126                except
  3127                  on E:  Exception  do
  3128                    Show Message('E rror assig ning <'+s+ '> as the  default qu alifier'+# 13#10+
  3129                      E. Message);
  3130                end;
  3131              end;
  3132           in c(i);
  3133         end;
  3134   // ------- ---------- ---------- -----Set D efault Met hod for BP  if value  is like nn n/
  3135   //    if ( VType = vt BP) and (p os('/',aVa lue) = Len gth(aValue )) then
  3136   //      QF orm.SetDef aultQualif ier('2','4 5',vtBP);
  3137  
  3138       edtQua ls.Text :=  Qualifier Names;
  3139  
  3140       Positi onForm(_QF orm);
  3141       ShowMo dal;
  3142       if Mod alResult =  mrOk then
  3143         begi n
  3144           Qu als := _QF orm.FQIENS ;
  3145           Qu alsDisplay  := _QForm .edtQuals. Text;
  3146           Re sult := Tr ue;
  3147         end;
  3148     finally
  3149       free;
  3150     end;
  3151   end;
  3152  
  3153   Modified L ogic (Chan ges are in  bold)
  3154   function S electQuali fiers(VTyp e: TVitalT ype; var Q uals, Qual sDisplay:  string; Ct rl: TContr ol;aValue: String; aG MV_Templat e: TGMV_Te mplateVita l): Boolea n;
  3155   var
  3156     _QForm:  TfrmGMV_Qu alifiers;
  3157     QPanel:  TGMV_Templ ateQualifi erBox;
  3158     i, j: in teger;
  3159     pt: TPoi nt;
  3160     RetList,  QualList:  TStrings;
  3161     IsReq: B oolean;
  3162     LookupIE N: String;
  3163   begin
  3164     Result : = False;
  3165     //Create  the form
  3166     _QForm : = TfrmGMV_ Qualifiers .Create(Ap plication) ;
  3167     with _QF orm do
  3168     try
  3169       fGMV_T emplate :=  aGMV_Temp late;
  3170  
  3171       //set  the positi on relativ e to the b utton
  3172       pt :=  Ctrl.Paren t.ClientTo Screen(Poi nt(Ctrl.Le ft, Ctrl.T op));
  3173       Left : = pt.x;
  3174       Top :=  pt.y + Ct rl.Height;
  3175  
  3176       //Get  the catego ries
  3177       RetLis t := getCa tegoryQual ifiers(GMV VitalTypeI EN[VType]) ;
  3178       try
  3179         Qual List := TS tringList. Create;
  3180         try
  3181           // Set up the  qualifier  list
  3182           Qu alList.Del imiter :=  ':';
  3183           Qu alList.Del imitedText  := Quals;
  3184  
  3185           // Set the ti tle
  3186           _Q Form.pnlTi tle.Captio n := piece (RetList.S trings[0], '^',2) + '  Qualifier s';
  3187  
  3188           // Create the  panels fo r each cat egory (ign ore the fi rst return )
  3189           fo r i := 1 t o RetList. Count - 1  do
  3190              begin
  3191                LookupIE N := aGMV_ Template.I EN + '_' +  piece(Ret List[i], ' ^', 1);
  3192                IsReq :=  aGMV_Temp late.IsReq uired[Look upIEN];
  3193                QPanel : = TGMV_Tem plateQuali fierBox.Cr eateParent ed(_QForm, _QForm.sb,  GMVVitalT ypeIEN[VTy pe], piece (RetList[i ], '^', 1) ,'', IsReq );
  3194                QPanel.T op :=  QPa nel.Height ;
  3195                QPanel.V isible :=  True;
  3196                QPanel.O nClick :=  QualifierC licked;
  3197                QPanel.s etPopupLay out;
  3198  
  3199                //Look f or the qua lifiers
  3200                //Check  if there i s already  a default  set
  3201                if StrTo IntDef(QPa nel.Defaul tQualifier IEN, 0) <  1 then
  3202                begin
  3203                  //Loop  through t he list of  Qualifier s and try  to match
  3204                  for J  := (QualLi st.Count -  1) downto  0 do
  3205                  begin
  3206                    try
  3207                      // Check if I EN is in t he list
  3208                      If  QPanel.IE NExist(Qua lList[J])  then
  3209                      be gin
  3210                       Q Panel.Defa ultQualifi erIEN := Q ualList[J] ;
  3211                       Q ualList.De lete(J);
  3212                       b reak;
  3213                      en d;
  3214                      QP anel.OnQua lClick(nil );
  3215                    exce pt
  3216                      on  E: Except ion do
  3217                         ShowMessag e('Error a ssigning < '+QualList [J]+'> as  the defaul t qualifie r'+#13#10+
  3218                           E.Messag e);
  3219                    end;
  3220                  end;
  3221                end;
  3222  
  3223                //Add th e panel to  our list
  3224                FPanelLi st.Add(QPa nel);
  3225  
  3226              end;
  3227         fina lly
  3228           Qu alList.Fre e;
  3229         end;
  3230       Finall y
  3231         RetL ist.Free;
  3232       end;
  3233  
  3234       edtQua ls.Text :=  Qualifier Names;
  3235       Positi onForm(_QF orm);
  3236       ShowMo dal;
  3237       if Mod alResult =  mrOk then
  3238         begi n
  3239           Qu als := _QF orm.FQIENS ;
  3240           Qu alsDisplay  := _QForm .edtQuals. Text;
  3241           Re sult := Tr ue;
  3242         end;
  3243     finally
  3244       free;
  3245     end;
  3246   end;
  3247   FormActiva te
  3248   Table 48:  Function
  3249   Function
  3250   Activities
  3251   Function N ame
  3252   FormActiva te
  3253   Short Desc ription
  3254   Ensures th at the for m opens on  the prope r screen
  3255   Enhancemen t Category
  3256    New
  3257    Modify
  3258    Delete
  3259    No Change
  3260   Related Op tions
  3261  
  3262  
  3263   Related Ro utines
  3264   Routines “ Called By”
  3265   Routines “ Called”   
  3266  
  3267  
  3268  
  3269  
  3270   Function N ame
  3271   Activities
  3272   Data Dicti onary (DD)  Reference s
  3273  
  3274   Related Pr otocols
  3275  
  3276   Related In tegration  Control Re gistration s (ICRs)
  3277  
  3278   Data Passi ng
  3279    Input
  3280    Output
  3281    Both
  3282    Global Re ference
  3283    Local Ref erence
  3284   Input Attr ibute Name  and Defin ition
  3285   Name: Send er
  3286  
  3287   Definition : TObject
  3288   Output Att ribute Nam e and Defi nition
  3289   Name:
  3290  
  3291   Definition :
  3292  
  3293   Current Lo gic
  3294   NA
  3295  
  3296   Modified L ogic (Chan ges are in  bold)
  3297   procedure  TfrmGMV_Qu alifiers.F ormActivat e(Sender:  TObject);
  3298   Var
  3299     MaxW, Ma xH: Intege r;
  3300   begin
  3301    if Screen .MonitorCo unt = 1 th en
  3302    begin
  3303     MaxH :=  Screen.Wor kAreaHeigh t;
  3304     MaxW :=  Screen.Wor kAreaWidth ;
  3305    end else  begin
  3306     MaxH :=  Screen.Des ktopHeight ;
  3307     MaxW :=  Screen.Des ktopWidth;
  3308    end;
  3309  
  3310     if (Left  + Width)  > MaxW the n
  3311       Left : = MaxW - W idth;
  3312     if (Top  + Height)  > MaxH the n
  3313       Top :=  MaxH - He ight - pnl Bottom.Hei ght div 2;
  3314   end;
  3315  
  3316  
  3317   frmGMV_Ent eredInErro r
  3318   Summary of  changes
  3319   Added new  “entered i n error” r eason.
  3320   Detailed C hanges
  3321   Table 46:  Forms
  3322   Forms
  3323   Descriptio n
  3324   Form Name
  3325   frmGMV_Ent eredInErro r
  3326   Enhancemen t Category
  3327    New
  3328    Modify
  3329    Delete
  3330    No Change
  3331   Form Funct ionality
  3332  
  3333  
  3334   Current Fo rm Layout
  3335  
  3336  
  3337   Modified F orm Layout  (Changes  are in bol d)
  3338  
  3339   frmGMV_Sup O2
  3340   Summary of  changes
  3341   Allows use rs to fill  out O2 sp ecific qua lifiers
  3342   Detailed C hanges
  3343   Uses Claus e
  3344   Added uGMV _Template  to first u ses sectio n. 
  3345   Table 40:  Events
  3346   Name
  3347   Type
  3348   Descriptio n
  3349   Form
  3350   OnCloseQue ry
  3351  
  3352   Table 46:  Forms
  3353   Forms
  3354   Descriptio n
  3355   Form Name
  3356   frmGMV_Sup O2
  3357   Enhancemen t Category
  3358    New
  3359    Modify
  3360    Delete
  3361    No Change
  3362   Form Funct ionality
  3363  
  3364  
  3365   Current Fo rm Layout
  3366  
  3367  
  3368   Modified F orm Layout  (Changes  are in bol d)
  3369  
  3370   FormCloseQ uery
  3371   Table 48:  Function
  3372   Function
  3373   Activities
  3374   Function N ame
  3375   FormCloseQ uery
  3376   Short Desc ription
  3377   Performs c heck to en sure that  required f ields are  filled out
  3378   Enhancemen t Category
  3379    New
  3380    Modify
  3381    Delete
  3382    No Change
  3383   Related Op tions
  3384  
  3385  
  3386   Related Ro utines
  3387   Routines “ Called By”
  3388   Routines “ Called”   
  3389  
  3390  
  3391  
  3392  
  3393   Function N ame
  3394   Activities
  3395   Data Dicti onary (DD)  Reference s
  3396  
  3397   Related Pr otocols
  3398  
  3399   Related In tegration  Control Re gistration s (ICRs)
  3400  
  3401   Data Passi ng
  3402    Input
  3403    Output
  3404    Both
  3405    Global Re ference
  3406    Local Ref erence
  3407   Input Attr ibute Name  and Defin ition
  3408   Name: Send er
  3409  
  3410   Definition : TObject
  3411   Output Att ribute Nam e and Defi nition
  3412   Name:
  3413  
  3414   Definition :
  3415  
  3416   Current Lo gic
  3417   NA
  3418  
  3419   Modified L ogic (Chan ges are in  bold)
  3420   procedure  TfrmGMV_Su pO2.FormCl oseQuery(S ender: TOb ject; var  CanClose:  Boolean);
  3421   Const
  3422    aMsg = 'M ethod is r equired';
  3423   begin
  3424    CanClose  := True;
  3425    if fGMV_T emplate.Is Required[f GMV_Templa te.IEN +'_ ' + fCateg ory] and ( Trim(cbMet hod.Text)  = '') Then
  3426    begin
  3427     ShowMess age(aMsg);
  3428     CanClose  := false;
  3429    end;
  3430   end;
  3431   GetSupplem entO2Data
  3432   Table 48:  Function
  3433   Function
  3434   Activities
  3435   Function N ame
  3436   GetSupplem entO2Data
  3437   Short Desc ription
  3438   Change set s the requ ired label  as needed
  3439   Enhancemen t Category
  3440    New
  3441    Modify
  3442    Delete
  3443    No Change
  3444   Related Op tions
  3445  
  3446  
  3447   Related Ro utines
  3448   Routines “ Called By”
  3449   Routines “ Called”   
  3450  
  3451  
  3452  
  3453  
  3454   Function N ame
  3455   Activities
  3456   Data Dicti onary (DD)  Reference s
  3457  
  3458   Related Pr otocols
  3459  
  3460   Related In tegration  Control Re gistration s (ICRs)
  3461  
  3462   Data Passi ng
  3463    Input
  3464    Output
  3465    Both
  3466    Global Re ference
  3467    Local Ref erence
  3468   Input Attr ibute Name  and Defin ition
  3469   Name: Flow Rate
  3470  
  3471   Definition : string
  3472   Name: Perc entage
  3473   Definition : string
  3474   Name: ctrl
  3475   Definition : TControl
  3476   Name: sQua l
  3477   Definition : string
  3478  
  3479   Output Att ribute Nam e and Defi nition
  3480   Name: Resu lt
  3481  
  3482   Definition : Boolean
  3483  
  3484   Current Lo gic
  3485   function G etSuppleme ntO2Data(v ar FlowRat e: string;  var Perce ntage: str ing; ctrl:  TControl; sQual:Stri ng): Boole an;
  3486   var
  3487     s:String ;
  3488     sType, s Category:  String;
  3489     i: INteg er;
  3490     pt: TPoi nt;
  3491     SL: TStr ingList;
  3492   begin
  3493     Result : = False;
  3494     with Tfr mGMV_SupO2 .Create(Ap plication)  do
  3495     try
  3496       pt :=  Ctrl.Paren t.ClientTo Screen(Poi nt(Ctrl.Le ft, Ctrl.T op));
  3497       Left : = pt.x;
  3498       Top :=  pt.y + Ct rl.Height;
  3499  
  3500       edtFlo w.Text :=  FlowRate;
  3501       edtO2C on.Text :=  Percentag e;
  3502  
  3503       sType  := getVita lTypeIEN(' PULSE OXIM ETRY');
  3504       sCateg ory := get VitalCateg oryIEN('ME THOD');
  3505       SL :=  getQualifi ers(sType, sCategory) ;
  3506       if SL. Count > 1  then
  3507         begi n
  3508           if  pos('-Non e-',cbMeth od.Text) =  0 then
  3509              cbMethod.I tems.Add(' -None-');  //CQ Ticke t #6942
  3510           fo r i := 1 t o SL.Count  - 1 do
  3511              begin
  3512                s := SL[ i];
  3513                cbMethod .Items.Add Object(Tit leCase(Pie ce(s,'^',  2)),
  3514                  Pointe r(StrToInt Def(Piece( s,'^', 1),  0)));
  3515              end;
  3516         end;
  3517       SL.Fre e;
  3518  
  3519       s := P iece(sQual ,'[',2);
  3520       if pos ('  ',s)=  0 then
  3521         s :=  Piece(s,' ]',1)
  3522       else
  3523         s :=  Piece(s,'   ',1);
  3524       i := c bMethod.It ems.IndexO f(s);
  3525       if i > = 0 then
  3526         begi n
  3527           cb Method.Ite mIndex :=  i;
  3528           Qu alVal := i nteger(cbM ethod.Item s.Objects[ i]);   //A AN 11/5/20 02 initial  value add ed;
  3529         end;
  3530       Active Control :=  edtFlow;
  3531       ShowMo dal;
  3532       if Mod alResult =  mrOk then
  3533         begi n
  3534           Fl owRate :=  edtFlow.Te xt;
  3535   //AAN 07/0 9/2002         Percen tage := ed tO2Con.tex t;
  3536           Pe rcentage : = edtO2Con .text + '^ '+IntToStr (QualVal)+ '^'+cbMeth od.Text;
  3537           Re sult := Tr ue;
  3538         end;
  3539     finally
  3540       free;
  3541     end;
  3542   end;
  3543  
  3544   Modified L ogic (Chan ges are in  bold)
  3545   function G etSuppleme ntO2Data(v ar FlowRat e: string;  var Perce ntage: str ing; ctrl:  TControl; sQual:Stri ng; aGMV_T emplate: T GMV_Templa teVital):  Boolean;
  3546   var
  3547     s:String ;
  3548     sType: S tring;
  3549     i: INteg er;
  3550     pt: TPoi nt;
  3551     SL: TStr ingList;
  3552   begin
  3553     Result : = False;
  3554     with Tfr mGMV_SupO2 .Create(Ap plication)  do
  3555     try
  3556       pt :=  Ctrl.Paren t.ClientTo Screen(Poi nt(Ctrl.Le ft, Ctrl.T op));
  3557       Left : = pt.x;
  3558       Top :=  pt.y + Ct rl.Height;
  3559  
  3560       edtFlo w.Text :=  FlowRate;
  3561       edtO2C on.Text :=  Percentag e;
  3562  
  3563       sType  := getVita lTypeIEN(' PULSE OXIM ETRY');
  3564       fCateg ory := get VitalCateg oryIEN('ME THOD');
  3565  
  3566       fGMV_T emplate :=  aGMV_Temp late;
  3567       if aGM V_Template .IsRequire d[aGMV_Tem plate.IEN  +'_' + fCa tegory] th en
  3568         lblM ethodValue .Caption : = '*Method ';
  3569  
  3570       SL :=  getQualifi ers(sType, fCategory) ;
  3571       if SL. Count > 1  then
  3572         begi n
  3573           if  pos('-Non e-',cbMeth od.Text) =  0 then
  3574              cbMethod.I tems.Add(' -None-');  //CQ Ticke t #6942
  3575           fo r i := 1 t o SL.Count  - 1 do
  3576              begin
  3577                s := SL[ i];
  3578                cbMethod .Items.Add Object(Tit leCase(Pie ce(s,'^',  2)),
  3579                  Pointe r(StrToInt Def(Piece( s,'^', 1),  0)));
  3580              end;
  3581         end;
  3582       SL.Fre e;
  3583  
  3584       s := P iece(sQual ,'[',2);
  3585       if pos ('  ',s)=  0 then
  3586         s :=  Piece(s,' ]',1)
  3587       else
  3588         s :=  Piece(s,'   ',1);
  3589       i := c bMethod.It ems.IndexO f(s);
  3590       if i > = 0 then
  3591         begi n
  3592           cb Method.Ite mIndex :=  i;
  3593           Qu alVal := i nteger(cbM ethod.Item s.Objects[ i]);   //A AN 11/5/20 02 initial  value add ed;
  3594         end;
  3595       Active Control :=  edtFlow;
  3596       ShowMo dal;
  3597       if Mod alResult =  mrOk then
  3598         begi n
  3599           Fl owRate :=  edtFlow.Te xt;
  3600   //AAN 07/0 9/2002         Percen tage := ed tO2Con.tex t;
  3601           Pe rcentage : = edtO2Con .text + '^ '+IntToStr (QualVal)+ '^'+cbMeth od.Text;
  3602           Re sult := Tr ue;
  3603         end;
  3604     finally
  3605       free;
  3606     end;
  3607   end;
  3608   cbMethodCh ange
  3609   Table 48:  Function
  3610   Function
  3611   Activities
  3612   Function N ame
  3613   cbMethodCh ange
  3614   Short Desc ription
  3615   Change cle ans up han dled acces s violatio n that did  not have  to happen
  3616   Enhancemen t Category
  3617    New
  3618    Modify
  3619    Delete
  3620    No Change
  3621   Related Op tions
  3622  
  3623  
  3624   Related Ro utines
  3625   Routines “ Called By”
  3626   Routines “ Called”   
  3627  
  3628  
  3629  
  3630  
  3631   Function N ame
  3632   Activities
  3633   Data Dicti onary (DD)  Reference s
  3634  
  3635   Related Pr otocols
  3636  
  3637   Related In tegration  Control Re gistration s (ICRs)
  3638  
  3639   Data Passi ng
  3640    Input
  3641    Output
  3642    Both
  3643    Global Re ference
  3644    Local Ref erence
  3645   Input Attr ibute Name  and Defin ition
  3646   Name: Flow Rate
  3647  
  3648   Name: Send er
  3649   Definition : TObject
  3650   Output Att ribute Nam e and Defi nition
  3651   Name: 
  3652  
  3653   Definition
  3654  
  3655   Current Lo gic
  3656   procedure  TfrmGMV_Su pO2.cbMeth odChange(S ender: TOb ject);
  3657  
  3658     function  getQualVa l: Integer ;
  3659     begin
  3660         try
  3661           Re sult := in teger(cbMe thod.Items .Objects[c bMethod.It emIndex]);
  3662         exce pt
  3663           Re sult := -9 9;
  3664         end;
  3665     end;
  3666     procedur e setField s(anEnable d:Boolean) ;
  3667     var
  3668       _Color : TColor;
  3669     begin
  3670       if anE nabled the n _Color : = clWindow Text
  3671       else
  3672         begi n
  3673           _C olor := cl GrayText;
  3674           //  there sho uld be no  values of  concentrat ion for Ro om Air
  3675           ed tFlow.Text  := '';
  3676           ed tO2Con.Tex t := '';
  3677         end;
  3678  
  3679       edtFlo w.Enabled  := anEnabl ed;
  3680       edtO2C on.Enabled  := anEnab led;
  3681       udFlow .Enabled : = anEnable d;
  3682       udO2.E nabled :=  anEnabled;
  3683       lblFlo w.Font.Col or := _Col or;
  3684       lblO2C on.Font.Co lor := _Co lor;
  3685       lblLit Min.Font.C olor := _C olor;
  3686       lblPer cent.Font. Color := _ Color;
  3687  
  3688       QualVa l := getQu alVal;
  3689     end;
  3690  
  3691   begin
  3692     if (cbMe thod.ItemI ndex = 0)   // CQ Tic ket # 6942  - Start
  3693   //    or ( pos('ROOM  AIR',upper case(cbMet hod.Text)) >0)
  3694     then
  3695       setFie lds(False)
  3696     else   / / CQ Ticke t # 6942 -  end
  3697       setFie lds(True);
  3698   end;
  3699  
  3700   Modified L ogic (Chan ges are in  bold)
  3701   procedure  TfrmGMV_Su pO2.cbMeth odChange(S ender: TOb ject);
  3702  
  3703     function  getQualVa l: Integer ;
  3704     begin
  3705         if c bMethod.It emIndex >  0 then
  3706         begi n
  3707           tr y
  3708              Result :=  integer(cb Method.Ite ms.Objects [cbMethod. ItemIndex] );
  3709           ex cept
  3710              Result :=  -99;
  3711           en d;
  3712         end  else
  3713           Re sult := -9 9;
  3714     end;
  3715     procedur e setField s(anEnable d:Boolean) ;
  3716     var
  3717       _Color : TColor;
  3718     begin
  3719       if anE nabled the n _Color : = clWindow Text
  3720       else
  3721         begi n
  3722           _C olor := cl GrayText;
  3723           //  there sho uld be no  values of  concentrat ion for Ro om Air
  3724           ed tFlow.Text  := '';
  3725           ed tO2Con.Tex t := '';
  3726         end;
  3727  
  3728       edtFlo w.Enabled  := anEnabl ed;
  3729       edtO2C on.Enabled  := anEnab led;
  3730       udFlow .Enabled : = anEnable d;
  3731       udO2.E nabled :=  anEnabled;
  3732       lblFlo w.Font.Col or := _Col or;
  3733       lblO2C on.Font.Co lor := _Co lor;
  3734       lblLit Min.Font.C olor := _C olor;
  3735       lblPer cent.Font. Color := _ Color;
  3736  
  3737       QualVa l := getQu alVal;
  3738     end;
  3739  
  3740   begin
  3741     if (cbMe thod.ItemI ndex = 0)   // CQ Tic ket # 6942  - Start
  3742   //    or ( pos('ROOM  AIR',upper case(cbMet hod.Text)) >0)
  3743     then
  3744       setFie lds(False)
  3745     else   / / CQ Ticke t # 6942 -  end
  3746       setFie lds(True);
  3747   end;
  3748  
  3749   fGMV_Input Lite
  3750   Summary of  changes
  3751   Main form  used to fi ll out vit al measure ments.
  3752   Detailed C hanges
  3753   acSaveInpu tExecute
  3754   Table 48:  Function
  3755   Function
  3756   Activities
  3757   Function N ame
  3758   acSaveInpu tExecute
  3759   Short Desc ription
  3760   Change che cks to ver ify requir ed fields  (if applic able) are  filled out . Allso fi xes handle d access v iolation
  3761   Enhancemen t Category
  3762    New
  3763    Modify
  3764    Delete
  3765    No Change
  3766   Related Op tions
  3767  
  3768  
  3769   Related Ro utines
  3770   Routines “ Called By”
  3771   Routines “ Called”   
  3772  
  3773  
  3774  
  3775  
  3776   Function N ame
  3777   Activities
  3778   Data Dicti onary (DD)  Reference s
  3779  
  3780   Related Pr otocols
  3781  
  3782   Related In tegration  Control Re gistration s (ICRs)
  3783  
  3784   Data Passi ng
  3785    Input
  3786    Output
  3787    Both
  3788    Global Re ference
  3789    Local Ref erence
  3790   Input Attr ibute Name  and Defin ition
  3791   Name: Send er
  3792  
  3793   Definition : TObject
  3794   Output Att ribute Nam e and Defi nition
  3795   Name:
  3796  
  3797   Definition :
  3798  
  3799   Current Lo gic
  3800   procedure  TfrmGMV_In putLite.ac SaveInputE xecute(Sen der: TObje ct);
  3801   const
  3802     sLastPro cessedMess age = 'The  last pati ent in the  list proc essed' + # 13 + 'Clos e the inpu t window?' ;
  3803     sSelectH ospital =  'Please se lect a val id hospita l location  for this  patient.';
  3804   var
  3805     aTime: T DateTime;
  3806     sNoDataE ntered: St ring;
  3807     DT: TDat eTime;
  3808  
  3809     procedur e AssignIm ageIndex(a nIndex: In teger);
  3810     begin
  3811       if lvS elPatients .ItemFocus ed.SubItem s[3] = ''  then
  3812         begi n
  3813           lv SelPatient s.ItemFocu sed.ImageI ndex := an Index;
  3814           lv SelPatient s.ItemFocu sed.SubIte ms[3] := I ntToStr(an Index);
  3815         end
  3816       else
  3817         begi n
  3818           lv SelPatient s.ItemFocu sed.SubIte ms[3] := l vSelPatien ts.ItemFoc used.SubIt ems[3] + '  ' + IntTo Str(anInde x);
  3819           lv SelPatient s.ItemFocu sed.ImageI ndex := in dMultipleI nput;
  3820         end;
  3821     end;
  3822  
  3823     function  CheckData (aDT: TDat eTime): Bo olean;
  3824     var
  3825       i: Int eger;
  3826     begin
  3827       for i  := 0 to sb xMain.Comp onentCount  - 1 do
  3828         if n ot TfraGMV _InputOne2 (sbxMain.C omponents[ i]).Check( aDT) then
  3829           br eak;
  3830       Result  := i = sb xMain.Comp onentCount ;
  3831       if not  Result th en
  3832         begi n
  3833           Tf raGMV_Inpu tOne2(sbxM ain.Compon ents[i]).c bxInput.Se lStart :=  0;
  3834           Tf raGMV_Inpu tOne2(sbxM ain.Compon ents[i]).c bxInput.Se lLength :=  Length(Tf raGMV_Inpu tOne2(sbxM ain.Compon ents[i]).c bxInput.Te xt);
  3835           Tf raGMV_Inpu tOne2(sbxM ain.Compon ents[i]).c bxInput.Se tFocus;
  3836         end;
  3837     end;
  3838  
  3839     procedur e ProcessN ext(Result Index: Int eger);
  3840     begin
  3841       if (lv SelPatient s = nil) o r (lvSelPa tients.Ite ms.Count <  2) then
  3842         begi n
  3843           if  bSlave th en // DLL
  3844              begin
  3845                  if chkbClo seOnSave.C hecked or  (Sender =  btnSaveAnd Exit) // a dded  DNS  050707 fo r DLL use
  3846                then
  3847                  begin
  3848                    Clos e;
  3849                    Exit ;      //  Get out of  here now,  we just t riggered t he form De stroy with  caFree
  3850                  end
  3851                else
  3852                  Update LatestVita ls(FDFN, T rue);
  3853              end
  3854           el se
  3855              begin
  3856                // Do we  need to c lose windo w if the l ist contai ns only on e patient?
  3857                // Yes w e do
  3858                // Do we  need to h ave a mess age?
  3859                // No we  don't
  3860                // s :=  LastProces sedMessage ;
  3861                // if Me ssageDlgS( S,mtInform ation,mbOK Cancel,0)  = mrOK the n
  3862                if Sende r = btnSav eAndExit t hen
  3863                  ModalR esult := m rOk;
  3864              end;
  3865         end;
  3866  
  3867       try
  3868         if l vSelPatien ts.ItemFoc used.Index  < 0 then
  3869           lv SelPatient s.ItemFocu sed := lvS elPatients .Items[0];
  3870       except
  3871         lvSe lPatients. ItemFocuse d := lvSel Patients.I tems[0];
  3872       end;
  3873  
  3874       try
  3875         if l vSelPatien ts.ItemFoc used.Index  < 0 then
  3876           lv SelPatient s.ItemFocu sed := lvS elPatients .Items[0];
  3877         if l vSelPatien ts.ItemFoc used.Index  < lvSelPa tients.Ite ms.Count -  1 then
  3878           be gin
  3879              AssignImag eIndex(Res ultIndex);
  3880              lvSelPatie nts.ItemFo cused := l vSelPatien ts.Items[l vSelPatien ts.ItemFoc used.Index  + 1];
  3881              lvSelPatie nts.ItemFo cused.Imag eIndex :=  1;
  3882              lvSelPatie ntsClick(S ender);
  3883              CleanUpVit alsList;
  3884               SetVitalsL ist(FNewTe mplate + ' ^' + FNewT emplateDes cription);  //  DN S
  3885  
  3886              if not lvS elPatients .CheckBoxe s then
  3887                ckbOnPas s.Checked  := False;
  3888  
  3889              FocusInput Field;
  3890           en d
  3891         else
  3892           be gin
  3893              AssignImag eIndex(Res ultIndex);
  3894              lvSelPatie nts.Invali date;
  3895              // lvSelPa tientsClic k(Sender); // may be  it is too  much
  3896  
  3897              if lvSelPa tients.Ite ms.Count <  2 then
  3898                ModalRes ult := mrO k
  3899              else if Me ssageDLG(s LastProces sedMessage , mtInform ation, mbO KCancel, 0 ) = mrOk t hen
  3900                ModalRes ult := mrO k;
  3901           en d;
  3902       except
  3903       end;
  3904     end;
  3905  
  3906   begin
  3907     // Check  all input  panels fo r valid va lues
  3908     DT := Wi ndowsDateT imeToFMDat eTime(trun c(dtpDate. Date) + (d tpTime.Dat eTime - tr unc(dtpTim e.Date)));
  3909     if not C heckData(D T) then
  3910       exit;
  3911     // Hospi tal locati on should  be set bef ore saving  data -- 0 3/14/2003  AAN
  3912     if (_FHo spitalIEN  = '') or ( _FHospital IEN = '0')  then
  3913       Messag eDLG(sSele ctHospital , mtWarnin g, [mbOK],  0)
  3914     else
  3915       begin
  3916         if I nputString  <> '' the n
  3917           be gin
  3918              aTime := E ventStart( 'Save Vita ls -- Begi n');
  3919              SaveData(D T);
  3920              EventStop( 'Save Vita ls -- End' , '', aTim e);
  3921              if ckbOnPa ss.Checked  then
  3922                ProcessN ext(indOnP ass)
  3923              else
  3924                ProcessN ext(indSin gleInput);
  3925           en d
  3926         else
  3927           be gin
  3928              sNoDataEnt ered := 'N o data ent ered for p atient ' +  #13 + get PatientNam e + #13;
  3929              case lvSel Patients.I tems.Count  of
  3930                0, 1:
  3931                  begin
  3932                    if ( MessageDLG (sNoDataEn tered + 'C lose the w indow?', m tInformati on, [mbYes , mbNo], 0 ) = mrYes)  then
  3933                      if  bSlave th en
  3934                         Close
  3935                      el se
  3936                         ModalResul t := mrOk;
  3937                  end;
  3938              else
  3939                begin
  3940                  if (Me ssageDLG(s NoDataEnte red + 'Pro cess next  Patient?',  mtInforma tion, [mbY es, mbNo],  0) = mrYe s) then
  3941                    Proc essNext(in dBlankInpu t);
  3942                end;
  3943              end;
  3944           en d;
  3945       end;
  3946   end;
  3947  
  3948   Modified L ogic (Chan ges are in  bold)
  3949   procedure  TfrmGMV_In putLite.ac SaveInputE xecute(Sen der: TObje ct);
  3950   const
  3951     sLastPro cessedMess age = 'The  last pati ent in the  list proc essed' + # 13 + 'Clos e the inpu t window?' ;
  3952     sSelectH ospital =  'Please se lect a val id hospita l location  for this  patient.';
  3953   var
  3954     aTime: T DateTime;
  3955     sNoDataE ntered: St ring;
  3956     DT: TDat eTime;
  3957  
  3958     procedur e AssignIm ageIndex(a nIndex: In teger);
  3959     begin
  3960       if lvS elPatients .ItemFocus ed.SubItem s[3] = ''  then
  3961         begi n
  3962           lv SelPatient s.ItemFocu sed.ImageI ndex := an Index;
  3963           lv SelPatient s.ItemFocu sed.SubIte ms[3] := I ntToStr(an Index);
  3964         end
  3965       else
  3966         begi n
  3967           lv SelPatient s.ItemFocu sed.SubIte ms[3] := l vSelPatien ts.ItemFoc used.SubIt ems[3] + '  ' + IntTo Str(anInde x);
  3968           lv SelPatient s.ItemFocu sed.ImageI ndex := in dMultipleI nput;
  3969         end;
  3970     end;
  3971  
  3972     function  CheckData (aDT: TDat eTime): Bo olean;
  3973     const
  3974      ErrDisp layMsg = ' The follow ing error( s) occurre d:' + #10# 13 + '%s'  + #10#13 +  'Please c orrect and  try again ';
  3975     var
  3976       i, Fir stItem: In teger;
  3977       aMsg:  String;
  3978       aErrMs g: TString List;
  3979     begin
  3980       for i  := 0 to sb xMain.Comp onentCount  - 1 do
  3981         if n ot TfraGMV _InputOne2 (sbxMain.C omponents[ i]).Check( aDT) then
  3982           br eak;
  3983  
  3984       Result  := i = sb xMain.Comp onentCount ;
  3985  
  3986       if not  Result th en
  3987       begin
  3988         Tfra GMV_InputO ne2(sbxMai n.Componen ts[i]).cbx Input.SelS tart := 0;
  3989         Tfra GMV_InputO ne2(sbxMai n.Componen ts[i]).cbx Input.SelL ength :=
  3990           Le ngth(TfraG MV_InputOn e2(sbxMain .Component s[i]).cbxI nput.Text) ;
  3991         Tfra GMV_InputO ne2(sbxMai n.Componen ts[i]).cbx Input.SetF ocus;
  3992       end el se begin
  3993         //Ch eck the qu alifiers
  3994         aErr Msg := TSt ringList.C reate;
  3995         try
  3996         Firs tItem := - 1;
  3997         for  i := 0 to  sbxMain.Co mponentCou nt - 1 do
  3998         begi n
  3999           if  not TfraG MV_InputOn e2(sbxMain .Component s[i]).Chec kQualifer( aMsg) then
  4000           be gin
  4001              //Create t he error m essage str ing list
  4002              if FirstIt em = -1 th en
  4003                FirstIte m := I;
  4004              aErrMsg.Ad d(aMsg);
  4005           en d;
  4006         end;
  4007  
  4008         //Er rors prese nt, show m essage and  halt
  4009         if F irstItem < > -1 then
  4010         begi n
  4011          Res ult := Fal se;
  4012          Mes sageDlg(Fo rmat(ErrDi splayMsg,  [aErrMsg.T ext]), mtE rror, [mbO k], -1 );
  4013          Tfr aGMV_Input One2(sbxMa in.Compone nts[FirstI tem]).bbtn Qualifiers .Click;
  4014         end;
  4015  
  4016         fina lly
  4017           Fr eeAndNil(a ErrMsg);
  4018         end;
  4019       end;
  4020     end;
  4021  
  4022     procedur e ProcessN ext(Result Index: Int eger);
  4023     begin
  4024       if (lv SelPatient s = nil) o r (lvSelPa tients.Ite ms.Count <  2) then
  4025         begi n
  4026           if  bSlave th en // DLL
  4027              begin
  4028                  if chkbClo seOnSave.C hecked or  (Sender =  btnSaveAnd Exit) // a dded  DNS  050707 fo r DLL use
  4029                then
  4030                  begin
  4031                    Clos e;
  4032                    Exit ;      //  Get out of  here now,  we just t riggered t he form De stroy with  caFree
  4033                  end
  4034                else
  4035                  Update LatestVita ls(FDFN, T rue);
  4036              end
  4037           el se
  4038              begin
  4039                // Do we  need to c lose windo w if the l ist contai ns only on e patient?
  4040                // Yes w e do
  4041                // Do we  need to h ave a mess age?
  4042                // No we  don't
  4043                // s :=  LastProces sedMessage ;
  4044                // if Me ssageDlgS( S,mtInform ation,mbOK Cancel,0)  = mrOK the n
  4045                if Sende r = btnSav eAndExit t hen
  4046                  ModalR esult := m rOk;
  4047              end;
  4048         end;
  4049  
  4050       {try
  4051         if l vSelPatien ts.ItemFoc used.Index  < 0 then
  4052           lv SelPatient s.ItemFocu sed := lvS elPatients .Items[0];
  4053       except
  4054         lvSe lPatients. ItemFocuse d := lvSel Patients.I tems[0];
  4055       end;        }
  4056  
  4057       if Ass igned(lvSe lPatients. ItemFocuse d) then
  4058       begin
  4059         try
  4060           if  lvSelPati ents.ItemF ocused.Ind ex < 0 the n
  4061              lvSelPatie nts.ItemFo cused := l vSelPatien ts.Items[0 ];
  4062           if  lvSelPati ents.ItemF ocused.Ind ex < lvSel Patients.I tems.Count  - 1 then
  4063              begin
  4064                AssignIm ageIndex(R esultIndex );
  4065                lvSelPat ients.Item Focused :=  lvSelPati ents.Items [lvSelPati ents.ItemF ocused.Ind ex + 1];
  4066                lvSelPat ients.Item Focused.Im ageIndex : = 1;
  4067                lvSelPat ientsClick (Sender);
  4068                CleanUpV italsList;
  4069                  SetVitalsL ist(FNewTe mplate + ' ^' + FNewT emplateDes cription);  //  DN S
  4070  
  4071                if not l vSelPatien ts.CheckBo xes then
  4072                  ckbOnP ass.Checke d := False ;
  4073  
  4074                FocusInp utField;
  4075              end
  4076           el se
  4077              begin
  4078                AssignIm ageIndex(R esultIndex );
  4079                lvSelPat ients.Inva lidate;
  4080                // lvSel PatientsCl ick(Sender );// may b e it is to o much
  4081  
  4082                if lvSel Patients.I tems.Count  < 2 then
  4083                  ModalR esult := m rOk
  4084                else if  MessageDLG (sLastProc essedMessa ge, mtInfo rmation, m bOKCancel,  0) = mrOk  then
  4085                  ModalR esult := m rOk;
  4086              end;
  4087         exce pt
  4088         end;
  4089       end;
  4090     end;
  4091  
  4092   begin
  4093     // Check  all input  panels fo r valid va lues
  4094     DT := Wi ndowsDateT imeToFMDat eTime(trun c(dtpDate. Date) + (d tpTime.Dat eTime - tr unc(dtpTim e.Date)));
  4095     if not C heckData(D T) then
  4096       exit;
  4097     // Hospi tal locati on should  be set bef ore saving  data -- 0 3/14/2003  AAN
  4098     if (_FHo spitalIEN  = '') or ( _FHospital IEN = '0')  then
  4099       Messag eDLG(sSele ctHospital , mtWarnin g, [mbOK],  0)
  4100     else
  4101       begin
  4102         if I nputString  <> '' the n
  4103           be gin
  4104              aTime := E ventStart( 'Save Vita ls -- Begi n');
  4105              SaveData(D T);
  4106              EventStop( 'Save Vita ls -- End' , '', aTim e);
  4107              if ckbOnPa ss.Checked  then
  4108                ProcessN ext(indOnP ass)
  4109              else
  4110                ProcessN ext(indSin gleInput);
  4111           en d
  4112         else
  4113           be gin
  4114              sNoDataEnt ered := 'N o data ent ered for p atient ' +  #13 + get PatientNam e + #13;
  4115              case lvSel Patients.I tems.Count  of
  4116                0, 1:
  4117                  begin
  4118                    if ( MessageDLG (sNoDataEn tered + 'C lose the w indow?', m tInformati on, [mbYes , mbNo], 0 ) = mrYes)  then
  4119                      if  bSlave th en
  4120                         Close
  4121                      el se
  4122                         ModalResul t := mrOk;
  4123                  end;
  4124              else
  4125                begin
  4126                  if (Me ssageDLG(s NoDataEnte red + 'Pro cess next  Patient?',  mtInforma tion, [mbY es, mbNo],  0) = mrYe s) then
  4127                    Proc essNext(in dBlankInpu t);
  4128                end;
  4129              end;
  4130           en d;
  4131       end;
  4132   end;
  4133   mGMV_Input One2
  4134   Summary of  changes
  4135   Holds the  data for e ach vital  measuremen t to be us ed on Inpu tLite.
  4136   Detailed C hanges
  4137   Table 44:  Class Prop erties
  4138   Class Prop erties Nam e
  4139   Type
  4140   Visibility
  4141   Descriptio n
  4142   CheckError Message
  4143   String
  4144   Public
  4145   Returns th e error me ssage prod uced from  the check  function
  4146  
  4147   SetRequire Indicator
  4148   Table 48:  Function
  4149   Function
  4150   Activities
  4151   Function N ame
  4152   SetRequire Indicator
  4153   Short Desc ription
  4154   Sets the l abel for t he methods  to requir ed (if app licable)
  4155   Enhancemen t Category
  4156    New
  4157    Modify
  4158    Delete
  4159    No Change
  4160   Related Op tions
  4161  
  4162  
  4163   Related Ro utines
  4164   Routines “ Called By”
  4165   Routines “ Called”   
  4166  
  4167  
  4168  
  4169  
  4170   Function N ame
  4171   Activities
  4172   Data Dicti onary (DD)  Reference s
  4173  
  4174   Related Pr otocols
  4175  
  4176   Related In tegration  Control Re gistration s (ICRs)
  4177  
  4178   Data Passi ng
  4179    Input
  4180    Output
  4181    Both
  4182    Global Re ference
  4183    Local Ref erence
  4184   Input Attr ibute Name  and Defin ition
  4185   Name: 
  4186  
  4187   Definition
  4188   Output Att ribute Nam e and Defi nition
  4189   Name:
  4190  
  4191   Definition :
  4192  
  4193   Current Lo gic
  4194       NA
  4195  
  4196   Modified L ogic (Chan ges are in  bold)
  4197   Procedure  TfraGMV_In putOne2.Se tRequireIn dicator;
  4198   begin
  4199    //Only ad d the * if  there is  a value en tered
  4200    if (FTemp lateVital. IsRequired [FTemplate Vital.IEN] ) and (cbx Input.Text  <> '') an d (Pos('*' , lblQuali fiers.Capt ion) < 1)  then
  4201      lblQual ifiers.Cap tion := '* ' + lblQua lifiers.Ca ption
  4202    else begi n
  4203      //strip  the * if  no text
  4204      if (Pos ('*', lblQ ualifiers. Caption) >  0) and (c bxInput.Te xt = '') t hen
  4205       lblQua lifiers.Ca ption := C opy(lblQua lifiers.Ca ption, Pos ('*', lblQ ualifiers. Caption) +  1, length (lblQualif iers.Capti on));
  4206    end;
  4207  
  4208   end;
  4209   CheckQuali fer
  4210   Table 48:  Function
  4211   Function
  4212   Activities
  4213   Function N ame
  4214   CheckQuali fer
  4215   Short Desc ription
  4216   Sets the l abel for t he methods  to requir ed (if app licable)
  4217   Enhancemen t Category
  4218    New
  4219    Modify
  4220    Delete
  4221    No Change
  4222   Related Op tions
  4223  
  4224  
  4225   Related Ro utines
  4226   Routines “ Called By”
  4227   Routines “ Called”   
  4228  
  4229  
  4230  
  4231  
  4232   Function N ame
  4233   Activities
  4234   Data Dicti onary (DD)  Reference s
  4235  
  4236   Related Pr otocols
  4237  
  4238   Related In tegration  Control Re gistration s (ICRs)
  4239  
  4240   Data Passi ng
  4241    Input
  4242    Output
  4243    Both
  4244    Global Re ference
  4245    Local Ref erence
  4246   Input Attr ibute Name  and Defin ition
  4247   Name: aRtn Msg
  4248  
  4249   Definition : String
  4250   Output Att ribute Nam e and Defi nition
  4251   Name: aRtn Msg
  4252  
  4253   Definition : String
  4254   Name: Resu lt
  4255   Definition : Boolean
  4256  
  4257   Current Lo gic
  4258       NA
  4259  
  4260   Modified L ogic (Chan ges are in  bold)
  4261   Function T fraGMV_Inp utOne2.Che ckQualifer (var aRtnM sg: String ): Boolean ;
  4262   Const
  4263    aQualMiss ing = '%s  requires t hat qualif ers be ent ered.';
  4264   begin
  4265    aRtnMsg : = '';
  4266    Result :=  True;
  4267    if cbxInp ut.Text <>  '' then
  4268    begin
  4269     //Check  for requir ed qualifi ers
  4270     if (fTem plateVital .IsRequire d[fTemplat eVital.IEN ]) and (Tr im(fVitalQ ualifiers)  = '') the n
  4271     begin
  4272       aRtnMs g := Forma t(aQualMis sing, [Tit leCase(FTe mplateVita l.VitalNam e)]);
  4273       Result  := False;
  4274     end;
  4275    end;
  4276  
  4277   end;
  4278   bbtnQualif iersClick
  4279   Table 48:  Function
  4280   Function
  4281   Activities
  4282   Function N ame
  4283   bbtnQualif iersClick
  4284   Short Desc ription
  4285   Opens the  qualifier  form for a  given Vit al Measure mement
  4286   Enhancemen t Category
  4287    New
  4288    Modify
  4289    Delete
  4290    No Change
  4291   Related Op tions
  4292  
  4293  
  4294   Related Ro utines
  4295   Routines “ Called By”
  4296   Routines “ Called”   
  4297  
  4298  
  4299  
  4300  
  4301   Function N ame
  4302   Activities
  4303   Data Dicti onary (DD)  Reference s
  4304  
  4305   Related Pr otocols
  4306  
  4307   Related In tegration  Control Re gistration s (ICRs)
  4308  
  4309   Data Passi ng
  4310    Input
  4311    Output
  4312    Both
  4313    Global Re ference
  4314    Local Ref erence
  4315   Input Attr ibute Name  and Defin ition
  4316   Name: Send er
  4317  
  4318   Definition : TObejct
  4319   Output Att ribute Nam e and Defi nition
  4320   Name:
  4321  
  4322   Definition :
  4323  
  4324   Current Lo gic
  4325       proced ure TfraGM V_InputOne 2.bbtnQual ifiersClic k(Sender:  TObject);
  4326   var
  4327     s: Strin g;
  4328     Quals: s tring;
  4329     QualsTex t: string;
  4330     PO2FlowR ate: strin g;
  4331     PO2Perce ntage: str ing;
  4332   //const //   DNS  050714
  4333   //    cRoomAir =  'ROOM AIR '; //  DNS  050714
  4334  
  4335   begin
  4336     if FTemp lateVitalT ype = vtPO 2 then
  4337       begin
  4338         PO2F lowRate :=  FPO2FlowR ate;
  4339         PO2P ercentage  := FPO2Per centage;
  4340         if G etSuppleme ntO2Data(P O2FlowRate , PO2Perce ntage, TCo ntrol(Send er),lblQua lifiers.Ca ption) the n
  4341           be gin
  4342              FPO2FlowRa te := PO2F lowRate;
  4343              FPO2Percen tage := pi ece(PO2Per centage,'^ ',1);
  4344              FVitalQual ifiers :=  piece(PO2P ercentage, '^',2);
  4345              QualsText  := piece(P O2Percenta ge,'^',3);
  4346              s := ' ';/ /AAN 11/07 /2002 -- t wo spaces  between Qu alifier an d data
  4347              if FPO2Flo wRate <> ' ' then
  4348                  s := s  + ' ' + F PO2FlowRat e + ' l/mi n';
  4349              if FPO2Per centage <>  '' then
  4350                s := s +  ' ' + FPO 2Percentag e + ' %';
  4351              if s = ' '  then s :=  '';
  4352   // 2007122 DNS  --- all f low rates  and %% val ues are in cluded ---  /////
  4353              lblQualifi ers.Captio n := '[' +  QualsText  + s + ']'
  4354   (* ======= ========== ========== ========== ========== ========== ========== = 20071220
  4355              if (FPO2Fl owRate <>  '') or (FP O2Percenta ge <> '')  then
  4356                 lblQual ifiers.Cap tion := '[ ' + QualsT ext + s +  ']'
  4357               else if po s(cRoomAir ,uppercase (QualsText )) > 0 the n //  DNS  050714
  4358                   lblQualifi ers.Captio n := '[' +  QualsText  + ']' //  DNS  050714
  4359              else
  4360                 lblQual ifiers.Cap tion := '[ ]';
  4361   ========== ========== ========== ========== ========== ========== ========== ========*)
  4362           en d;
  4363         Exit ;
  4364       end;
  4365  
  4366     Quals :=  FVitalQua lifiers;
  4367     if Selec tQualifier s(FTemplat eVitalType , Quals, Q ualsText,  TControl(S ender),cbx Input.Text ) then
  4368       begin
  4369         FVit alQualifie rs := Qual s;
  4370         lblQ ualifiers. Caption :=  '[' + Qua lsText + ' ]';
  4371       end;
  4372   end;
  4373  
  4374   Modified L ogic (Chan ges are in  bold)
  4375   procedure  TfraGMV_In putOne2.bb tnQualifie rsClick(Se nder: TObj ect);
  4376   var
  4377     s: Strin g;
  4378     Quals: s tring;
  4379     QualsTex t: string;
  4380     PO2FlowR ate: strin g;
  4381     PO2Perce ntage: str ing;
  4382   //const //   DNS  050714
  4383   //    cRoomAir =  'ROOM AIR '; //  DNS  050714
  4384  
  4385   begin
  4386     if FTemp lateVitalT ype = vtPO 2 then
  4387       begin
  4388         PO2F lowRate :=  FPO2FlowR ate;
  4389         PO2P ercentage  := FPO2Per centage;
  4390         if G etSuppleme ntO2Data(P O2FlowRate , PO2Perce ntage, TCo ntrol(Send er),lblQua lifiers.Ca ption, fTe mplateVita l) then
  4391           be gin
  4392              FPO2FlowRa te := PO2F lowRate;
  4393              FPO2Percen tage := pi ece(PO2Per centage,'^ ',1);
  4394              FVitalQual ifiers :=  piece(PO2P ercentage, '^',2);
  4395              QualsText  := piece(P O2Percenta ge,'^',3);
  4396              s := ' ';/ /AAN 11/07 /2002 -- t wo spaces  between Qu alifier an d data
  4397              if FPO2Flo wRate <> ' ' then
  4398                  s := s  + ' ' + F PO2FlowRat e + ' l/mi n';
  4399              if FPO2Per centage <>  '' then
  4400                s := s +  ' ' + FPO 2Percentag e + ' %';
  4401              if s = ' '  then s :=  '';
  4402   // 2007122 DNS  --- all f low rates  and %% val ues are in cluded ---  /////
  4403              lblQualifi ers.Captio n := '[' +  QualsText  + s + ']'
  4404   (* ======= ========== ========== ========== ========== ========== ========== = 20071220
  4405              if (FPO2Fl owRate <>  '') or (FP O2Percenta ge <> '')  then
  4406                 lblQual ifiers.Cap tion := '[ ' + QualsT ext + s +  ']'
  4407               else if po s(cRoomAir ,uppercase (QualsText )) > 0 the n //  DNS  050714
  4408                   lblQualifi ers.Captio n := '[' +  QualsText  + ']' //  DNS  050714
  4409              else
  4410                 lblQual ifiers.Cap tion := '[ ]';
  4411   ========== ========== ========== ========== ========== ========== ========== ========*)
  4412           en d;
  4413         Exit ;
  4414       end;
  4415  
  4416     Quals :=  FVitalQua lifiers;
  4417     if Selec tQualifier s(FTemplat eVitalType , Quals, Q ualsText,  TControl(S ender),cbx Input.Text , fTemplat eVital) th en
  4418       begin
  4419         FVit alQualifie rs := Qual s;
  4420         lblQ ualifiers. Caption :=  '[' + Qua lsText + ' ]';
  4421         SetR equireIndi cator;
  4422       end;
  4423   end;
  4424   CheckQuali fer
  4425   Table 48:  Function
  4426   Function
  4427   Activities
  4428   Function N ame
  4429   cbxInputCh ange
  4430   Short Desc ription
  4431   Used when  text is en terd into  the value  field
  4432   Enhancemen t Category
  4433    New
  4434    Modify
  4435    Delete
  4436    No Change
  4437   Related Op tions
  4438  
  4439  
  4440   Related Ro utines
  4441   Routines “ Called By”
  4442   Routines “ Called”   
  4443  
  4444  
  4445  
  4446  
  4447   Function N ame
  4448   Activities
  4449   Data Dicti onary (DD)  Reference s
  4450  
  4451   Related Pr otocols
  4452  
  4453   Related In tegration  Control Re gistration s (ICRs)
  4454  
  4455   Data Passi ng
  4456    Input
  4457    Output
  4458    Both
  4459    Global Re ference
  4460    Local Ref erence
  4461   Input Attr ibute Name  and Defin ition
  4462   Name: Send er
  4463  
  4464   Definition : TObject
  4465   Output Att ribute Nam e and Defi nition
  4466   Name:
  4467  
  4468   Definition :
  4469  
  4470   Current Lo gic
  4471       proced ure TfraGM V_InputOne 2.cbxInput Change(Sen der: TObje ct);
  4472   begin
  4473     if (cbxI nput.Text  = cRefused ) or (cbxI nput.Text  = cUnavail able) then
  4474       SetPan elStatus(F alse)
  4475     else
  4476       SetPan elStatus(T rue);
  4477     GetParen tForm(self ).Perform( CM_VITALCH ANGED,0,0) ;//09/11/0 2
  4478   end;
  4479  
  4480   Modified L ogic (Chan ges are in  bold)
  4481   procedure  TfraGMV_In putOne2.cb xInputChan ge(Sender:  TObject);
  4482   begin
  4483     if (cbxI nput.Text  = cRefused ) or (cbxI nput.Text  = cUnavail able) then
  4484       SetPan elStatus(F alse)
  4485     else
  4486       SetPan elStatus(T rue);
  4487     GetParen tForm(self ).Perform( CM_VITALCH ANGED,0,0) ;//09/11/0 2
  4488     SetRequi reIndicato r;
  4489   end;
  4490   uGMV_Quali fyBox
  4491   Summary of  changes
  4492   This holds  the logic  for the q ualifier b oxes
  4493   IENExist
  4494   Table 48:  Function
  4495   Function
  4496   Activities
  4497   Function N ame
  4498   IENExist
  4499   Short Desc ription
  4500   Checks to  see if the  qualifier  already e xist
  4501   Enhancemen t Category
  4502    New
  4503    Modify
  4504    Delete
  4505    No Change
  4506   Related Op tions
  4507  
  4508  
  4509   Related Ro utines
  4510   Routines “ Called By”
  4511   Routines “ Called”   
  4512  
  4513  
  4514  
  4515  
  4516   Function N ame
  4517   Activities
  4518   Data Dicti onary (DD)  Reference s
  4519  
  4520   Related Pr otocols
  4521  
  4522   Related In tegration  Control Re gistration s (ICRs)
  4523  
  4524   Data Passi ng
  4525    Input
  4526    Output
  4527    Both
  4528    Global Re ference
  4529    Local Ref erence
  4530   Input Attr ibute Name  and Defin ition
  4531   Name: aIEN
  4532  
  4533   Definition : Integer
  4534   Output Att ribute Nam e and Defi nition
  4535   Name:
  4536  
  4537   Definition :
  4538  
  4539   Current Lo gic
  4540       NA
  4541  
  4542   Modified L ogic (Chan ges are in  bold)
  4543   function T GMV_Templa teQualifie rBox.IENEx ist(aIEN:  String): B oolean;
  4544   Var
  4545     s:String ;
  4546     i: Integ er;
  4547   begin
  4548    Result :=  false;
  4549    for i :=  1 to  fQua lifierItem s.Count -  1 do
  4550       begin
  4551         s :=  fQualifie rItems[i];
  4552         if p iece(s,'^' ,1) = aIEN  then
  4553           be gin
  4554              Result :=  True;
  4555              break;
  4556           en d;
  4557       end;
  4558   end;
  4559   getIENByNa me
  4560   Table 48:  Function
  4561   Function
  4562   Activities
  4563   Function N ame
  4564   getIENByNa me
  4565   Short Desc ription
  4566   Returns th e IEN base d on a qua lifier nam e
  4567   Enhancemen t Category
  4568    New
  4569    Modify
  4570    Delete
  4571    No Change
  4572   Related Op tions
  4573  
  4574  
  4575   Related Ro utines
  4576   Routines “ Called By”
  4577   Routines “ Called”   
  4578  
  4579  
  4580  
  4581  
  4582   Function N ame
  4583   Activities
  4584   Data Dicti onary (DD)  Reference s
  4585  
  4586   Related Pr otocols
  4587  
  4588   Related In tegration  Control Re gistration s (ICRs)
  4589  
  4590   Data Passi ng
  4591    Input
  4592    Output
  4593    Both
  4594    Global Re ference
  4595    Local Ref erence
  4596   Input Attr ibute Name  and Defin ition
  4597   Name: aNam e
  4598  
  4599   Definition : String
  4600   Output Att ribute Nam e and Defi nition
  4601   Name: Resu lt
  4602  
  4603   Definition : String
  4604  
  4605   Current Lo gic
  4606       functi on TGMV_Te mplateQual ifierBox.g etIENByNam e(anIEN:St ring):Stri ng;
  4607   var
  4608     s:String ;
  4609     i: Integ er;
  4610   begin
  4611     Result : = '';
  4612     for i :=  1 to  fQu alifierIte ms.Count -  1 do
  4613       begin
  4614         s :=  fQualifie rItems[i];
  4615         if p iece(s,'^' ,2) = uppe rcase(fDef aultQualif ierName) t hen
  4616           be gin
  4617              Result :=  piece(s,'^ ',1);
  4618              break;
  4619           en d;
  4620       end;
  4621   end;
  4622  
  4623   Modified L ogic (Chan ges are in  bold)
  4624   function T GMV_Templa teQualifie rBox.getIE NByName(aN ame:String ):String;
  4625   var
  4626     s:String ;
  4627     i: Integ er;
  4628   begin
  4629     Result : = '';
  4630     for i :=  1 to  fQu alifierIte ms.Count -  1 do
  4631       begin
  4632         s :=  fQualifie rItems[i];
  4633         if p iece(s,'^' ,2) = uppe rcase(aNam e) then
  4634           be gin
  4635              Result :=  piece(s,'^ ',1);
  4636              break;
  4637           en d;
  4638       end;
  4639   end;
  4640   CreatePare nted
  4641   Table 48:  Function
  4642   Function
  4643   Activities
  4644   Function N ame
  4645   CreatePare nted
  4646   Short Desc ription
  4647   Creates th e qualifie r entry sc reen
  4648   Enhancemen t Category
  4649    New
  4650    Modify
  4651    Delete
  4652    No Change
  4653   Related Op tions
  4654  
  4655  
  4656   Related Ro utines
  4657   Routines “ Called By”
  4658   Routines “ Called”   
  4659  
  4660  
  4661  
  4662  
  4663   Function N ame
  4664   Activities
  4665   Data Dicti onary (DD)  Reference s
  4666  
  4667   Related Pr otocols
  4668  
  4669   Related In tegration  Control Re gistration s (ICRs)
  4670  
  4671   Data Passi ng
  4672    Input
  4673    Output
  4674    Both
  4675    Global Re ference
  4676    Local Ref erence
  4677   Input Attr ibute Name  and Defin ition
  4678   Name: anOw ner 
  4679  
  4680   Definition : TWinCont rol  
  4681   Name: aPar ent 
  4682   Definition : TWinCont rol 
  4683   Name: Vita lIEN 
  4684   Definition : string 
  4685   Name: Cate goryIEN 
  4686   Definition : string 
  4687   Name: Defa ultIEN 
  4688   Definition : string 
  4689   Name: Requ ired 
  4690   Definition : Boolean 
  4691   Name: View Mode 
  4692   Definition : String 
  4693   Output Att ribute Nam e and Defi nition
  4694   Name:
  4695  
  4696   Definition :
  4697  
  4698   Current Lo gic
  4699       constr uctor TGMV _TemplateQ ualifierBo x.CreatePa rented(anO wner,aPare nt: TWinCo ntrol;
  4700     VitalIEN , Category IEN, Defau ltIEN: str ing;ViewMo de:String= '');
  4701   var
  4702     SL: TStr ingList;
  4703  
  4704     procedur e setRadio Group;
  4705     var
  4706       iDefau lt,
  4707       i: int eger;
  4708       SB: TS crollBox;
  4709  
  4710     begin
  4711       SB :=  TScrollBox .Create(se lf);
  4712       SB.Par ent := sel f;
  4713       SB.Ali gn := alCl ient;
  4714  
  4715       fRG :=  TRadioGro up.Create( self);
  4716       with f RG do
  4717         begi n
  4718           Ca ption := T itleCase(G MVCats.Ent ries[GMVCa ts.IndexOf IEN(Catego ryIEN)]);
  4719           Pa rent := SB ;
  4720           Co lor := clW indow;
  4721           Al ign := alC lient;
  4722           iD efault :=  0;
  4723           fo r i := 0 t o fQualifi erItems.Co unt - 1 do
  4724              begin
  4725                Items.Ad d(TitleCas e(Piece(fQ ualifierIt ems[i], '^ ', 2)));
  4726                if Piece (fQualifie rItems[i],  '^', 1)=D efaultIEN  then
  4727                  iDefau lt := i;
  4728              end;
  4729           It emIndex :=  iDefault;
  4730           On Click := O nQualClick ;
  4731           On Enter := O nQualEnter ;
  4732           On Exit := On QualExit;
  4733         end;
  4734     end;
  4735  
  4736     procedur e setDropD ownList;
  4737     var
  4738       iDefau lt,
  4739       i: int eger;
  4740     begin
  4741       Height  := 22;
  4742       Parent Font := Fa lse;
  4743       lblNam e := TLabe l.Create(A nOwner);
  4744       lblNam e.Caption  := TitleCa se(GMVCats .Entries[G MVCats.Ind exOfIEN(Ca tegoryIEN) ]);
  4745       lblNam e.Top := 4 ;
  4746       lblNam e.Left :=  8;
  4747       lblNam e.Parent : = self;
  4748  
  4749       fcb :=  TComboBox .Create(Se lf);
  4750       fcb.Le ft := 80;
  4751       fcb.To p := 2;
  4752       fcb.Pa rent := Se lf;
  4753       iDefau lt := -1;
  4754       for i  := 0 to fQ ualifierIt ems.Count  - 1 do
  4755         begi n
  4756           fc b.Items.Ad d(TitleCas e(Piece(fQ ualifierIt ems[i], '^ ', 2)));
  4757           if  Piece(fQu alifierIte ms[i], '^' , 1)=Defau ltIEN then
  4758              iDefault : = i;
  4759         end;
  4760       fcb.It emIndex :=  iDefault;
  4761       fcb.On Change :=  OnQualClic k;
  4762       fCB.On Enter := O nQualEnter ;
  4763       fCB.On Exit:= OnQ ualExit;
  4764       lblNam e.FocusCon trol := fC B;
  4765     end;
  4766  
  4767   begin
  4768     inherite d Create(a nOwner);
  4769     fQualifi erItems :=  TStringLi st.Create;
  4770  
  4771     Visible  := False;
  4772     Parent : = aParent;
  4773     Align :=  alTop;
  4774  
  4775     BevelInn er := bvNo ne;
  4776     BevelOut er := bvNo ne;
  4777     Caption  := '  '+Ti tleCase(GM VCats.Entr ies[GMVCat s.IndexOfI EN(Categor yIEN)]);
  4778  
  4779     FVitalIE N := Vital IEN;
  4780     FCategor yIEN := Ca tegoryIEN;
  4781     FDefault QualifierN ame := Def aultIEN;
  4782  
  4783     SL := ge tQualifier s(VitalIEN ,CategoryI EN);
  4784     fQualifi erItems.Te xt := SL.T ext;
  4785     if fQual ifierItems .Count > 0  then
  4786       fQuali fierItems[ 0] := '-No ne-';
  4787     SL.Free;
  4788  
  4789     fViewMod e := ViewM ode;
  4790     if fView Mode = ''  then
  4791       setDro pDownList
  4792     else
  4793       setRad ioGroup;
  4794   end;
  4795  
  4796   Modified L ogic (Chan ges are in  bold)
  4797   constructo r TGMV_Tem plateQuali fierBox.Cr eateParent ed(anOwner ,aParent:  TWinContro l;
  4798     VitalIEN , Category IEN, Defau ltIEN: str ing; Requi red: Boole an; ViewMo de:String= '');
  4799   var
  4800     SL: TStr ingList;
  4801  
  4802     procedur e setRadio Group;
  4803     var
  4804       iDefau lt,
  4805       i: int eger;
  4806       SB: TS crollBox;
  4807  
  4808     begin
  4809       SB :=  TScrollBox .Create(se lf);
  4810       SB.Par ent := sel f;
  4811       SB.Ali gn := alCl ient;
  4812  
  4813       fRG :=  TRadioGro up.Create( self);
  4814       with f RG do
  4815         begi n
  4816           Ca ption := T itleCase(G MVCats.Ent ries[GMVCa ts.IndexOf IEN(Catego ryIEN)]);
  4817           if  Required  then
  4818            C aption :=  '*' + Trim (Caption);
  4819           Pa rent := SB ;
  4820           Co lor := clW indow;
  4821           Al ign := alC lient;
  4822           iD efault :=  0;
  4823           fo r i := 0 t o fQualifi erItems.Co unt - 1 do
  4824              begin
  4825                Items.Ad d(TitleCas e(Piece(fQ ualifierIt ems[i], '^ ', 2)));
  4826                if Piece (fQualifie rItems[i],  '^', 1)=D efaultIEN  then
  4827                  iDefau lt := i;
  4828              end;
  4829           It emIndex :=  iDefault;
  4830           On Click := O nQualClick ;
  4831           On Enter := O nQualEnter ;
  4832           On Exit := On QualExit;
  4833         end;
  4834     end;
  4835  
  4836     procedur e setDropD ownList;
  4837     var
  4838       iDefau lt,
  4839       i: int eger;
  4840     begin
  4841       Height  := 22;
  4842       Parent Font := Fa lse;
  4843       lblNam e := TLabe l.Create(A nOwner);
  4844       
  4845       lblNam e.Caption  := TitleCa se(GMVCats .Entries[G MVCats.Ind exOfIEN(Ca tegoryIEN) ]);
  4846       if Req uired then
  4847         lblN ame.Captio n := '*' +  Trim(Capt ion);
  4848       lblNam e.align :=  alLeft;
  4849       lblNam e.AlignWit hMargins : = true;
  4850       lblNam e.Margins. Top := 4;
  4851       lblNam e.Margins. Left := 8;
  4852       lblNam e.Margins. Right := 0 ;
  4853       lblNam e.Margins. Bottom :=  0;
  4854       lblNam e.Width :=  80;
  4855       lblNam e.AutoSize  := false;
  4856       //lblN ame.Top :=  4;
  4857       //lblN ame.Left : = 8;
  4858       lblNam e.Parent : = self;
  4859  
  4860       fcb :=  TComboBox .Create(Se lf);
  4861       fcb.al ign := alC lient;
  4862       fcb.Al ignWithMar gins := tr ue;
  4863       fcb.Ma rgins.Top  := 2;
  4864       fcb.Ma rgins.Left  := 0;
  4865       fcb.Ma rgins.Righ t := 10;
  4866       fcb.Ma rgins.Bott om := 0;
  4867       //fcb. Left := 80 ;
  4868      // fcb. Top := 2;
  4869       fcb.Pa rent := Se lf;
  4870       iDefau lt := -1;
  4871       for i  := 0 to fQ ualifierIt ems.Count  - 1 do
  4872         begi n
  4873           fc b.Items.Ad d(TitleCas e(Piece(fQ ualifierIt ems[i], '^ ', 2)));
  4874           if  Piece(fQu alifierIte ms[i], '^' , 1)=Defau ltIEN then
  4875              iDefault : = i;
  4876         end;
  4877       fcb.It emIndex :=  iDefault;
  4878       fcb.On Change :=  OnQualClic k;
  4879       fCB.On Enter := O nQualEnter ;
  4880       fCB.On Exit:= OnQ ualExit;
  4881       lblNam e.FocusCon trol := fC B;
  4882     end;
  4883  
  4884   begin
  4885     inherite d Create(a nOwner);
  4886     fQualifi erItems :=  TStringLi st.Create;
  4887  
  4888     Visible  := False;
  4889     Parent : = aParent;
  4890     Align :=  alTop;
  4891  
  4892     BevelInn er := bvNo ne;
  4893     BevelOut er := bvNo ne;
  4894     Caption  := '  '+Ti tleCase(GM VCats.Entr ies[GMVCat s.IndexOfI EN(Categor yIEN)]);
  4895  
  4896     FVitalIE N := Vital IEN;
  4897     FCategor yIEN := Ca tegoryIEN;
  4898     FDefault QualifierN ame := Def aultIEN;
  4899  
  4900     SL := ge tQualifier s(VitalIEN ,CategoryI EN);
  4901     fQualifi erItems.Te xt := SL.T ext;
  4902     if fQual ifierItems .Count > 0  then
  4903       fQuali fierItems[ 0] := '-No ne-';
  4904     SL.Free;
  4905  
  4906     fViewMod e := ViewM ode;
  4907     if fView Mode = ''  then
  4908       setDro pDownList
  4909     else
  4910       setRad ioGroup;
  4911   end;
  4912   uGMV_Templ ate
  4913   Summary of  changes
  4914   This holds  the logic  for templ ates
  4915   Table 38:  GUI Classe s
  4916   GUI Classe s
  4917   Instructio ns
  4918   Class Name
  4919   TGMV_QualR eqRec
  4920   Derived Fr om Class 
  4921   Record
  4922   Purpose
  4923   Holds vita l measurem ent and qu alifiers I D and requ irement se tting
  4924   Table 44:  Class Prop erties
  4925   Class Prop erties Nam e
  4926   Type
  4927   Visibility
  4928   Descriptio n
  4929   IsRequired
  4930   Boolean
  4931   Public
  4932   Return Boo lean if IE N passed i n is requi red
  4933   IsSystemWi deRequired
  4934   Boolean
  4935   Public
  4936   Return Boo lean if cu rrent Vita l Measurem ent IEN is  system wi de require d
  4937   RequiredAs String
  4938   String
  4939   Public
  4940   Retrun the  Vitals/Qu alifiers a nd their r equirement  settings  for the da tabase
  4941   Required
  4942   TGMV_QualR equireType
  4943   Public
  4944   Return Qua lRequireTy pe if IEN  passed in  is require d
  4945   SetRequire dString
  4946   Table 48:  Function
  4947   Function
  4948   Activities
  4949   Function N ame
  4950   SetRequire dString
  4951   Short Desc ription
  4952   Setter for  RequiredS tring prop erty
  4953   Enhancemen t Category
  4954    New
  4955    Modify
  4956    Delete
  4957    No Change
  4958   Related Op tions
  4959  
  4960  
  4961   Related Ro utines
  4962   Routines “ Called By”
  4963   Routines “ Called”   
  4964  
  4965  
  4966  
  4967  
  4968   Function N ame
  4969   Activities
  4970   Data Dicti onary (DD)  Reference s
  4971  
  4972   Related Pr otocols
  4973  
  4974   Related In tegration  Control Re gistration s (ICRs)
  4975  
  4976   Data Passi ng
  4977    Input
  4978    Output
  4979    Both
  4980    Global Re ference
  4981    Local Ref erence
  4982   Input Attr ibute Name  and Defin ition
  4983   Name: aVal ue
  4984  
  4985   Definition : String
  4986   Output Att ribute Nam e and Defi nition
  4987   Name:
  4988  
  4989   Definition :
  4990  
  4991   Current Lo gic
  4992       NA
  4993  
  4994   Modified L ogic (Chan ges are in  bold)
  4995   procedure  TGMV_Templ ateVital.S etRequired String(con st aValue:  String);
  4996   Var
  4997     i: integ er;
  4998     aTmpLst:  TStringLi st;
  4999     aIEN: St ring;
  5000     aReqVal:  TGMV_Qual RequireTyp e;
  5001   begin
  5002     if Trim( aValue) =  '' then
  5003     begin
  5004       // If  nothing pa ssed insys tem wide t hen set
  5005       if IsQ ualifierGl obalRequir ed(FIEN) t hen
  5006         Requ ired[FIEN]  := qrSyst emWide;
  5007     end
  5008     else
  5009     begin
  5010       aTmpLs t := TStri ngList.Cre ate;
  5011       try
  5012         aTmp Lst.CommaT ext := aVa lue;
  5013         for  i := 0 to  aTmpLst.Co unt - 1 do
  5014         begi n
  5015           aI EN := Piec e(aTmpLst. Strings[i] , '~', 1);
  5016           aR eqVal := T GMV_QualRe quireType
  5017              (StrToIntD ef(Piece(a TmpLst.Str ings[i], ' ~', 2), 0) );
  5018           Re quired[aIE N] := aReq Val;
  5019  
  5020           {  if IsQuali fierGlobal Required(a IEN) then
  5021              begin
  5022              if aReqVal  <> qrTemp lateBypass  then
  5023              Required[F IEN] := qr SystemWide ;
  5024              end else b egin
  5025              if aReqVal  = qrTempl ateBypass  then
  5026              Required[F IEN] := qr No;
  5027              end; }
  5028         end;
  5029  
  5030       finall y
  5031         aTmp Lst.Free;
  5032       end;
  5033     end;
  5034   end;
  5035   GetIsRequi red
  5036   Table 48:  Function
  5037   Function
  5038   Activities
  5039   Function N ame
  5040   GetIsRequi red
  5041   Short Desc ription
  5042   Getter for  IsRequire d property
  5043   Enhancemen t Category
  5044    New
  5045    Modify
  5046    Delete
  5047    No Change
  5048   Related Op tions
  5049  
  5050  
  5051   Related Ro utines
  5052   Routines “ Called By”
  5053   Routines “ Called”   
  5054  
  5055  
  5056  
  5057  
  5058   Function N ame
  5059   Activities
  5060   Data Dicti onary (DD)  Reference s
  5061  
  5062   Related Pr otocols
  5063  
  5064   Related In tegration  Control Re gistration s (ICRs)
  5065  
  5066   Data Passi ng
  5067    Input
  5068    Output
  5069    Both
  5070    Global Re ference
  5071    Local Ref erence
  5072   Input Attr ibute Name  and Defin ition
  5073   Name: aIEN
  5074  
  5075   Definition : String
  5076   Output Att ribute Nam e and Defi nition
  5077   Name:
  5078  
  5079   Definition :
  5080  
  5081   Current Lo gic
  5082       NA
  5083  
  5084   Modified L ogic (Chan ges are in  bold)
  5085   function T GMV_Templa teVital.Ge tIsRequire d(aIEN: St ring): Boo lean;
  5086   begin
  5087    result :=  IsRequire dType(Requ ired[aIEN] );
  5088   end;
  5089   IsRequired Type
  5090   Table 48:  Function
  5091   Function
  5092   Activities
  5093   Function N ame
  5094   IsRequired Type
  5095   Short Desc ription
  5096  
  5097   Enhancemen t Category
  5098    New
  5099    Modify
  5100    Delete
  5101    No Change
  5102   Related Op tions
  5103  
  5104  
  5105   Related Ro utines
  5106   Routines “ Called By”
  5107   Routines “ Called”   
  5108  
  5109  
  5110  
  5111  
  5112   Function N ame
  5113   Activities
  5114   Data Dicti onary (DD)  Reference s
  5115  
  5116   Related Pr otocols
  5117  
  5118   Related In tegration  Control Re gistration s (ICRs)
  5119  
  5120   Data Passi ng
  5121    Input
  5122    Output
  5123    Both
  5124    Global Re ference
  5125    Local Ref erence
  5126   Input Attr ibute Name  and Defin ition
  5127   Name: aTyp e
  5128  
  5129   Definition : TGMV_Qua lRequireTy pe
  5130   Output Att ribute Nam e and Defi nition
  5131   Name:
  5132  
  5133   Definition :
  5134  
  5135   Current Lo gic
  5136       NA
  5137  
  5138   Modified L ogic (Chan ges are in  bold)
  5139   Function T GMV_Templa teVital.Is RequiredTy pe(aType:  TGMV_QualR equireType ): Boolean ;
  5140   begin
  5141    case aTyp e of
  5142      qrSyste mWide: Res ult := tru e;
  5143      qrTempl ateOnly: R esult := t rue;
  5144      qrTempl ateBypass:  Result :=  False;
  5145      qrNo: R esult := F alse;
  5146      else Re sult := fa lse; //fai l safe
  5147    end;
  5148   end;
  5149   GetIsSyste mWideRequi red
  5150   Table 48:  Function
  5151   Function
  5152   Activities
  5153   Function N ame
  5154   GetIsSyste mWideRequi red
  5155   Short Desc ription
  5156   Getter for  IsSystemW ideRequire d property
  5157   Enhancemen t Category
  5158    New
  5159    Modify
  5160    Delete
  5161    No Change
  5162   Related Op tions
  5163  
  5164  
  5165   Related Ro utines
  5166   Routines “ Called By”
  5167   Routines “ Called”   
  5168  
  5169  
  5170  
  5171  
  5172   Function N ame
  5173   Activities
  5174   Data Dicti onary (DD)  Reference s
  5175  
  5176   Related Pr otocols
  5177  
  5178   Related In tegration  Control Re gistration s (ICRs)
  5179  
  5180   Data Passi ng
  5181    Input
  5182    Output
  5183    Both
  5184    Global Re ference
  5185    Local Ref erence
  5186   Input Attr ibute Name  and Defin ition
  5187   Name: 
  5188  
  5189   Definition
  5190   Output Att ribute Nam e and Defi nition
  5191   Name:
  5192  
  5193   Definition :
  5194  
  5195   Current Lo gic
  5196       NA
  5197  
  5198   Modified L ogic (Chan ges are in  bold)
  5199   function T GMV_Templa teVital.Ge tIsSystemW ideRequire d: Boolean ;
  5200   begin
  5201    case Requ ired[FIEN]  of
  5202      qrSyste mWide: Res ult := tru e;
  5203      else Re sult := fa lse; //fai l safe
  5204    end;
  5205   end;
  5206   GetRequire dString
  5207   Table 48:  Function
  5208   Function
  5209   Activities
  5210   Function N ame
  5211   GetRequire dString
  5212   Short Desc ription
  5213   Setter for  RequiredS tring prop erty
  5214   Enhancemen t Category
  5215    New
  5216    Modify
  5217    Delete
  5218    No Change
  5219   Related Op tions
  5220  
  5221  
  5222   Related Ro utines
  5223   Routines “ Called By”
  5224   Routines “ Called”   
  5225  
  5226  
  5227  
  5228  
  5229   Function N ame
  5230   Activities
  5231   Data Dicti onary (DD)  Reference s
  5232  
  5233   Related Pr otocols
  5234  
  5235   Related In tegration  Control Re gistration s (ICRs)
  5236  
  5237   Data Passi ng
  5238    Input
  5239    Output
  5240    Both
  5241    Global Re ference
  5242    Local Ref erence
  5243   Input Attr ibute Name  and Defin ition
  5244   Name: 
  5245  
  5246   Definition
  5247   Output Att ribute Nam e and Defi nition
  5248   Name:
  5249  
  5250   Definition :
  5251  
  5252   Current Lo gic
  5253       NA
  5254  
  5255   Modified L ogic (Chan ges are in  bold)
  5256   function T GMV_Templa teVital.Ge tRequiredS tring: Str ing;
  5257   Var
  5258    I: intege r;
  5259   begin
  5260     Result : = '';
  5261    for I :=  Low(FRequi redArray)  to High(FR equiredArr ay) do
  5262    begin
  5263     if I <>  Low(FRequi redArray)  then
  5264      Result  := Result  + ',';
  5265  
  5266     Result : = Result +  FRequired Array[i].I EN + '~' +  IntToStr( Ord(FRequi redArray[i ].Required ));
  5267    end;
  5268  
  5269   end;
  5270   GetRequire d
  5271   Table 48:  Function
  5272   Function
  5273   Activities
  5274   Function N ame
  5275   GetRequire d
  5276   Short Desc ription
  5277   Getter for  Required  property
  5278   Enhancemen t Category
  5279    New
  5280    Modify
  5281    Delete
  5282    No Change
  5283   Related Op tions
  5284  
  5285  
  5286   Related Ro utines
  5287   Routines “ Called By”
  5288   Routines “ Called”   
  5289  
  5290  
  5291  
  5292  
  5293   Function N ame
  5294   Activities
  5295   Data Dicti onary (DD)  Reference s
  5296  
  5297   Related Pr otocols
  5298  
  5299   Related In tegration  Control Re gistration s (ICRs)
  5300  
  5301   Data Passi ng
  5302    Input
  5303    Output
  5304    Both
  5305    Global Re ference
  5306    Local Ref erence
  5307   Input Attr ibute Name  and Defin ition
  5308   Name: aIEN
  5309  
  5310   Definition : String
  5311   Output Att ribute Nam e and Defi nition
  5312   Name:
  5313  
  5314   Definition :
  5315  
  5316   Current Lo gic
  5317       NA
  5318  
  5319   Modified L ogic (Chan ges are in  bold)
  5320   function T GMV_Templa teVital.Ge tRequired( aIEN: Stri ng): TGMV_ QualRequir eType;
  5321   Var
  5322    I: intege r;
  5323    IsGlobal,  FndRec: B oolean;
  5324   begin
  5325    Result :=  qrNo;
  5326    FndRec :=  false;
  5327    IsGlobal  := IsQuali fierGlobal Required(a IEN);
  5328  
  5329    for I :=  Low(FRequi redArray)  to High(FR equiredArr ay) do
  5330    begin
  5331     if FRequ iredArray[ i].IEN = a IEN then
  5332     begin
  5333       if IsG lobal then
  5334       begin
  5335         if F RequiredAr ray[i].Req uired <> q rTemplateB ypass then
  5336          FRe quiredArra y[i].Requi red := qrS ystemWide;
  5337       end el se begin
  5338        if FR equiredArr ay[i].Requ ired = qrT emplateByp ass then
  5339          FRe quiredArra y[i].Requi red := qrN o;
  5340       end;
  5341  
  5342       Result  := FRequi redArray[i ].Required ;
  5343       FndRec  := True;
  5344       break;
  5345     end;
  5346    end;
  5347  
  5348    if not Fn dRec and I sGlobal th en
  5349    begin
  5350      Require d[aIen] :=  qrSystemW ide;
  5351      Result  := qrSyste mWide;
  5352    end;
  5353  
  5354   end;
  5355   SetRequire d
  5356   Table 48:  Function
  5357   Function
  5358   Activities
  5359   Function N ame
  5360   SetRequire d
  5361   Short Desc ription
  5362   Getter for  Required  property
  5363   Enhancemen t Category
  5364    New
  5365    Modify
  5366    Delete
  5367    No Change
  5368   Related Op tions
  5369  
  5370  
  5371   Related Ro utines
  5372   Routines “ Called By”
  5373   Routines “ Called”   
  5374  
  5375  
  5376  
  5377  
  5378   Function N ame
  5379   Activities
  5380   Data Dicti onary (DD)  Reference s
  5381  
  5382   Related Pr otocols
  5383  
  5384   Related In tegration  Control Re gistration s (ICRs)
  5385  
  5386   Data Passi ng
  5387    Input
  5388    Output
  5389    Both
  5390    Global Re ference
  5391    Local Ref erence
  5392   Input Attr ibute Name  and Defin ition
  5393   Name: aIEN
  5394  
  5395   Definition : String
  5396   Output Att ribute Nam e and Defi nition
  5397   Name:
  5398  
  5399   Definition :
  5400  
  5401   Current Lo gic
  5402       NA
  5403  
  5404   Modified L ogic (Chan ges are in  bold)
  5405   procedure  TGMV_Templ ateVital.S etRequired (aIEN: Str ing;
  5406     const Va lue: TGMV_ QualRequir eType);
  5407   Var
  5408    I: intege r;
  5409    RecRnd: B oolean;
  5410   begin
  5411    RecRnd :=  False;
  5412    for I :=  Low(FRequi redArray)  to High(FR equiredArr ay) do
  5413    begin
  5414     if FRequ iredArray[ i].IEN = a IEN then
  5415     begin
  5416       FRequi redArray[i ].Required  := Value;
  5417       RecRnd  := true;
  5418       break;
  5419     end;
  5420    end;
  5421  
  5422    if not Re cRnd then
  5423    begin
  5424      SetLeng th(FRequir edArray, L ength(FReq uiredArray ) + 1);
  5425      FRequir edArray[Hi gh(FRequir edArray)]. IEN :=  aI EN;
  5426      FRequir edArray[Hi gh(FRequir edArray)]. Required : = Value;
  5427    end;
  5428   end;
  5429   Create
  5430   Table 48:  Function
  5431   Function
  5432   Activities
  5433   Function N ame
  5434   Create
  5435   Short Desc ription
  5436   Constructo r
  5437   Enhancemen t Category
  5438    New
  5439    Modify
  5440    Delete
  5441    No Change
  5442   Related Op tions
  5443  
  5444  
  5445   Related Ro utines
  5446   Routines “ Called By”
  5447   Routines “ Called”   
  5448  
  5449  
  5450  
  5451  
  5452   Function N ame
  5453   Activities
  5454   Data Dicti onary (DD)  Reference s
  5455  
  5456   Related Pr otocols
  5457  
  5458   Related In tegration  Control Re gistration s (ICRs)
  5459  
  5460   Data Passi ng
  5461    Input
  5462    Output
  5463    Both
  5464    Global Re ference
  5465    Local Ref erence
  5466   Input Attr ibute Name  and Defin ition
  5467   Name: 
  5468  
  5469   Definition
  5470   Output Att ribute Nam e and Defi nition
  5471   Name:
  5472  
  5473   Definition :
  5474  
  5475   Current Lo gic
  5476   constructo r TGMV_Tem plateVital .Create;
  5477   begin
  5478     inherite d;
  5479   end;
  5480  
  5481   Modified L ogic (Chan ges are in  bold)
  5482   constructo r TGMV_Tem plateVital .Create;
  5483   begin
  5484     inherite d;
  5485     SetLengt h(FRequire dArray, 0) ;
  5486   end;
  5487   CreateFrom XPAR
  5488   Table 48:  Function
  5489   Function
  5490   Activities
  5491   Function N ame
  5492   CreateFrom XPAR
  5493   Short Desc ription
  5494   Create the  vital for m from ser ver settin gs
  5495   Enhancemen t Category
  5496    New
  5497    Modify
  5498    Delete
  5499    No Change
  5500   Related Op tions
  5501  
  5502  
  5503   Related Ro utines
  5504   Routines “ Called By”
  5505   Routines “ Called”   
  5506  
  5507  
  5508  
  5509  
  5510   Function N ame
  5511   Activities
  5512   Data Dicti onary (DD)  Reference s
  5513  
  5514   Related Pr otocols
  5515  
  5516   Related In tegration  Control Re gistration s (ICRs)
  5517  
  5518   Data Passi ng
  5519    Input
  5520    Output
  5521    Both
  5522    Global Re ference
  5523    Local Ref erence
  5524   Input Attr ibute Name  and Defin ition
  5525   Name: XPAR Val
  5526  
  5527   Definition : String
  5528   Output Att ribute Nam e and Defi nition
  5529   Name:
  5530  
  5531   Definition :
  5532  
  5533   Current Lo gic
  5534   constructo r TGMV_Tem plateVital .CreateFro mXPAR(XPAR Val: strin g);
  5535   begin
  5536     inherite d Create;
  5537     FIEN :=  Piece(XPAR Val, ':',  1);
  5538     try
  5539       FVital Name := GM VTypes.Ent ries[GMVTy pes.IndexO fIEN(FIEN) ];
  5540     except
  5541       FVital Name := 'U nknown ('  + FIEN + ' )';
  5542     end;
  5543     FMetric  := (Piece( XPARVal, ' :', 2) = ' 1');
  5544     FQualifi ers := Pie ce(XPARVal , ':', 3);
  5545   end;
  5546  
  5547   Modified L ogic (Chan ges are in  bold)
  5548   constructo r TGMV_Tem plateVital .CreateFro mXPAR(XPAR Val: strin g);
  5549   begin
  5550     inherite d Create;
  5551     FIEN :=  Piece(XPAR Val, ':',  1);
  5552     try
  5553       FVital Name := GM VTypes.Ent ries[GMVTy pes.IndexO fIEN(FIEN) ];
  5554     except
  5555       FVital Name := 'U nknown ('+ FIEN+')';
  5556     end;
  5557     FMetric  := (Piece( XPARVal, ' :', 2) = ' 1');
  5558     FQualifi ers := Pie ce(XPARVal , ':', 3);
  5559  
  5560     Required AsString : = Piece(XP ARVal, ':' , 4);
  5561   end;
  5562   Destroy
  5563   Table 48:  Function
  5564   Function
  5565   Activities
  5566   Function N ame
  5567   Destroy
  5568   Short Desc ription
  5569   Destructor
  5570   Enhancemen t Category
  5571    New
  5572    Modify
  5573    Delete
  5574    No Change
  5575   Related Op tions
  5576  
  5577  
  5578   Related Ro utines
  5579   Routines “ Called By”
  5580   Routines “ Called”   
  5581  
  5582  
  5583  
  5584  
  5585   Function N ame
  5586   Activities
  5587   Data Dicti onary (DD)  Reference s
  5588  
  5589   Related Pr otocols
  5590  
  5591   Related In tegration  Control Re gistration s (ICRs)
  5592  
  5593   Data Passi ng
  5594    Input
  5595    Output
  5596    Both
  5597    Global Re ference
  5598    Local Ref erence
  5599   Input Attr ibute Name  and Defin ition
  5600   Name: 
  5601  
  5602   Definition
  5603   Output Att ribute Nam e and Defi nition
  5604   Name:
  5605  
  5606   Definition :
  5607  
  5608   Current Lo gic
  5609   // destruc tor TGMV_T emplateVit al.Destroy ;
  5610   // begin
  5611   // inherit ed;
  5612   // end;
  5613  
  5614   Modified L ogic (Chan ges are in  bold)
  5615   destructor  TGMV_Temp lateVital. Destroy;
  5616   begin
  5617    SetLength (FRequired Array, 0);
  5618    inherited ;
  5619   end;
  5620  
  5621   Vitals Uti ls
  5622   uGMV_Commo n
  5623   Summary of  changes
  5624   Added new  common fun ctions
  5625   Detailed C hanges
  5626   Uses Claus e
  5627   Added Syst em.Charact er to seco nd uses se ction.
  5628   MixedCase
  5629   Table 48:  Function
  5630   Function
  5631   Activities
  5632   Function N ame
  5633   MixedCase
  5634   Short Desc ription
  5635   Returns a  stirng in  mix case f ormating
  5636   Enhancemen t Category
  5637    New
  5638    Modify
  5639    Delete
  5640    No Change
  5641   Related Op tions
  5642  
  5643  
  5644   Related Ro utines
  5645   Routines “ Called By”
  5646   Routines “ Called”   
  5647  
  5648  
  5649  
  5650  
  5651   Function N ame
  5652   Activities
  5653   Data Dicti onary (DD)  Reference s
  5654  
  5655   Related Pr otocols
  5656  
  5657   Related In tegration  Control Re gistration s (ICRs)
  5658  
  5659   Data Passi ng
  5660    Input
  5661    Output
  5662    Both
  5663    Global Re ference
  5664    Local Ref erence
  5665   Input Attr ibute Name  and Defin ition
  5666   Name: x
  5667  
  5668   Definition : String
  5669   Output Att ribute Nam e and Defi nition
  5670   Name:
  5671  
  5672   Definition :
  5673  
  5674   Current Lo gic
  5675   NA
  5676  
  5677   Modified L ogic (Chan ges are in  bold)
  5678   function M ixedCase(c onst x: st ring): str ing;
  5679   var
  5680     i: integ er;
  5681   begin
  5682     {
  5683       NOTICE : IsUpper,  ToLower,  ToUpper, e tc. have b een deprec ated in XE 8 ONLY.
  5684       TCharH elper.Meth ods are th e replacem ents. Merg es from XE 3 must be  carefully
  5685       handle d here or  the XE8 co de throws  warnings.
  5686     }
  5687     Result : = x;
  5688     for i :=  2 to Leng th(x) do
  5689       if (no t CharInSe t(x[i - 1] , [' ', ', ', '-', '. ', '/', '^ ', '[', '' ''])) and  x[i].IsUpp er then
  5690         begi n
  5691           Re sult[i] :=  x[i].ToLo wer;
  5692         end
  5693       else i f (CharInS et(x[i - 1 ], [' ', ' ,', '-', ' .', '/', ' ^', '[', ' '''])) and  x[i].IsLo wer then
  5694         begi n
  5695           Re sult[i] :=  x[i].ToUp per;
  5696         end
  5697       else i f (x[i] =  'S') and ( x[i - 1] =  '''') and  x[i - 2]. IsLetter t hen
  5698         begi n
  5699           if  (i < Leng th(x)) and  (CharInSe t(x[i + 1] , [' ', ', ', '-', '. ', '/', '^ ', '[', '' ''])) then
  5700              begin
  5701                Result[i ] := x[i]. ToLower;
  5702              end
  5703           el se if (i =  Length(x) ) then
  5704              begin
  5705                Result[i ] := x[i]. ToLower;
  5706              end
  5707         end;
  5708  
  5709   end;
  5710   PositionFo rm
  5711   Table 48:  Function
  5712   Function
  5713   Activities
  5714   Function N ame
  5715   PositionFo rm
  5716   Short Desc ription
  5717   Sets the p ostion of  the form
  5718   Enhancemen t Category
  5719    New
  5720    Modify
  5721    Delete
  5722    No Change
  5723   Related Op tions
  5724  
  5725  
  5726   Related Ro utines
  5727   Routines “ Called By”
  5728   Routines “ Called”   
  5729  
  5730  
  5731  
  5732  
  5733   Function N ame
  5734   Activities
  5735   Data Dicti onary (DD)  Reference s
  5736  
  5737   Related Pr otocols
  5738  
  5739   Related In tegration  Control Re gistration s (ICRs)
  5740  
  5741   Data Passi ng
  5742    Input
  5743    Output
  5744    Both
  5745    Global Re ference
  5746    Local Ref erence
  5747   Input Attr ibute Name  and Defin ition
  5748   Name: x
  5749  
  5750   Definition : String
  5751   Output Att ribute Nam e and Defi nition
  5752   Name:
  5753  
  5754   Definition :
  5755  
  5756   Current Lo gic
  5757   procedure  PositionFo rm(aForm:  TForm);
  5758   var
  5759     iHeight,
  5760     iWidth:  Integer;
  5761   begin
  5762     iHeight  := Screen. WorkAreaHe ight;
  5763     iWidth : = Screen.W orkAreaWid th;
  5764  
  5765     if aForm .Width > i Width then  aForm.Wid th := iWid th;
  5766     if aForm .Height >  iHeight th en aForm.H eight := i Height;
  5767  
  5768     if aForm .Top> iHei ght then a Form.Top : = 0;
  5769     if aForm .Left> iWi dth then a Form.Left  := 0;
  5770     if aForm .Top < 0 t hen aForm. Top := 0;
  5771     if aForm .Left < 0  then aForm .Left := 0 ;
  5772  
  5773     if aForm .Top + aFo rm.Height  > iHeight  then
  5774       aForm. Top := iHe ight - aFo rm.Height;
  5775  
  5776     if aForm .Left + aF orm.Width  > iWidth t hen
  5777       aForm. Left := iW idth - aFo rm.Width;
  5778   end;
  5779  
  5780   Modified L ogic (Chan ges are in  bold)
  5781   procedure  PositionFo rm(aForm:  TForm);
  5782   var
  5783     iHeight,
  5784     iWidth:  Integer;
  5785   begin
  5786    if Screen .MonitorCo unt = 1 th en
  5787    begin
  5788     iHeight  := Screen. WorkAreaHe ight;
  5789     iWidth : = Screen.W orkAreaWid th;
  5790    end else  begin
  5791     iHeight  := Screen. DesktopHei ght;
  5792     iWidth : = Screen.D esktopWidt h;
  5793    end;
  5794  
  5795  
  5796     if aForm .Width > i Width then  aForm.Wid th := iWid th;
  5797     if aForm .Height >  iHeight th en aForm.H eight := i Height;
  5798  
  5799     if aForm .Top> iHei ght then a Form.Top : = 0;
  5800     if aForm .Left> iWi dth then a Form.Left  := 0;
  5801     if aForm .Top < 0 t hen aForm. Top := 0;
  5802     if aForm .Left < 0  then aForm .Left := 0 ;
  5803  
  5804     if aForm .Top + aFo rm.Height  > iHeight  then
  5805       aForm. Top := iHe ight - aFo rm.Height;
  5806  
  5807     if aForm .Left + aF orm.Width  > iWidth t hen
  5808       aForm. Left := iW idth - aFo rm.Width;
  5809   end;
  5810   uGMV_Engin e
  5811   Summary of  changes
  5812   Communtion  module fo r Vitals 
  5813   Detailed C hanges
  5814   getSystemP arameterLi stByName
  5815   Table 48:  Function
  5816   Function
  5817   Activities
  5818   Function N ame
  5819   getSystemP arameterLi stByName
  5820   Short Desc ription
  5821   Return a l ist from a  VistA par ameter
  5822   Enhancemen t Category
  5823    New
  5824    Modify
  5825    Delete
  5826    No Change
  5827   Related Op tions
  5828  
  5829  
  5830   Related Ro utines
  5831   Routines “ Called By”
  5832   Routines “ Called”   
  5833  
  5834  
  5835  
  5836  
  5837   Function N ame
  5838   Activities
  5839   Data Dicti onary (DD)  Reference s
  5840  
  5841   Related Pr otocols
  5842  
  5843   Related In tegration  Control Re gistration s (ICRs)
  5844  
  5845   Data Passi ng
  5846    Input
  5847    Output
  5848    Both
  5849    Global Re ference
  5850    Local Ref erence
  5851   Input Attr ibute Name  and Defin ition
  5852   Name: aNam e
  5853  
  5854   Definition : String
  5855   Output Att ribute Nam e and Defi nition
  5856   Name: Resu lt
  5857  
  5858   Definition : TStringL ist
  5859  
  5860   Current Lo gic
  5861   NA
  5862  
  5863   Modified L ogic (Chan ges are in  bold)
  5864   function g etSystemPa rameterLis tByName(aN ame: strin g): TStrin gList;
  5865   var
  5866     SL: TStr ingList;
  5867   begin
  5868     SL := TS tringList. Create;
  5869     CallRPC( RPC_PARAME TER, ['GET LST', 'SYS ', aName],  nil, [rpc Silent, rp cNoResChk] , SL);
  5870     Result : = SL;
  5871   end;
  5872   getQualifi erReqired
  5873   Table 48:  Function
  5874   Function
  5875   Activities
  5876   Function N ame
  5877   getQualifi erReqired
  5878   Short Desc ription
  5879   Load requi red parame ter into n ame value  seperators
  5880   Enhancemen t Category
  5881    New
  5882    Modify
  5883    Delete
  5884    No Change
  5885   Related Op tions
  5886  
  5887  
  5888   Related Ro utines
  5889   Routines “ Called By”
  5890   Routines “ Called”   
  5891  
  5892  
  5893  
  5894  
  5895   Function N ame
  5896   Activities
  5897   Data Dicti onary (DD)  Reference s
  5898  
  5899   Related Pr otocols
  5900  
  5901   Related In tegration  Control Re gistration s (ICRs)
  5902  
  5903   Data Passi ng
  5904    Input
  5905    Output
  5906    Both
  5907    Global Re ference
  5908    Local Ref erence
  5909   Input Attr ibute Name  and Defin ition
  5910   Name: 
  5911  
  5912   Definition
  5913   Output Att ribute Nam e and Defi nition
  5914   Name: Resu lt
  5915  
  5916   Definition : TStringL ist
  5917  
  5918   Current Lo gic
  5919   NA
  5920  
  5921   Modified L ogic (Chan ges are in  bold)
  5922   function g etQualifie rReqired:  TStringLis t;
  5923   var
  5924     SL: TStr ingList;
  5925   begin
  5926     SL := TS tringList. Create;
  5927     CallRPC( RPC_PARAME TER, ['GET LST', 'SYS ', GMV_Qua lifierRequ ired], nil , [rpcSile nt, rpcNoR esChk], SL );
  5928     Result : = SL;
  5929     //Conver t to name= value stri nglist
  5930     Result.N ameValueSe parator :=  '^';
  5931    // Result .text := S tringRepla ce(Result. text,'^',' =', [rfRep laceAll]);
  5932   end;
  5933   IsQualifie rGlobalReq uired
  5934   Table 48:  Function
  5935   Function
  5936   Activities
  5937   Function N ame
  5938   IsQualifie rGlobalReq uired
  5939   Short Desc ription
  5940   Checks if  a vital is  system wi de require d
  5941   Enhancemen t Category
  5942    New
  5943    Modify
  5944    Delete
  5945    No Change
  5946   Related Op tions
  5947  
  5948  
  5949   Related Ro utines
  5950   Routines “ Called By”
  5951   Routines “ Called”   
  5952  
  5953  
  5954  
  5955  
  5956   Function N ame
  5957   Activities
  5958   Data Dicti onary (DD)  Reference s
  5959  
  5960   Related Pr otocols
  5961  
  5962   Related In tegration  Control Re gistration s (ICRs)
  5963  
  5964   Data Passi ng
  5965    Input
  5966    Output
  5967    Both
  5968    Global Re ference
  5969    Local Ref erence
  5970   Input Attr ibute Name  and Defin ition
  5971   Name: aVit al
  5972  
  5973   Definition : String
  5974   Output Att ribute Nam e and Defi nition
  5975   Name: Resu lt
  5976  
  5977   Definition : Boolean
  5978  
  5979   Current Lo gic
  5980   NA
  5981  
  5982   Modified L ogic (Chan ges are in  bold)
  5983   Function I sQualifier GlobalRequ ired(aVita l: String) : Boolean;
  5984   //var
  5985   //  SL: TS tringList;
  5986   begin
  5987     result : = false;
  5988     // inita l fill of  the list
  5989     if not A ssigned(FR eqQual) th en
  5990       FReqQu al := getQ ualifierRe qired;
  5991  
  5992     // If th e lookup d oes not ex ist then r e fill fro m the serv er
  5993   {  if FReq Qual.Index OfName(aVi tal) = -1  then
  5994     begin
  5995       //If l ist alread y exist fr ee it sinc e we will  be recreat ing it (sh ould alway s be assig ned but be tter safe  than sorry )
  5996       if Ass igned(FReq Qual) then
  5997         Free AndNil(FRe qQual);
  5998       //Relo ad the lis t
  5999       FReqQu al := getQ ualifierRe qired;
  6000     end;   }
  6001  
  6002     //If in  the list u se the ret urn
  6003     if FReqQ ual.IndexO fName(aVit al) > 0 th en
  6004       Result  := FReqQu al.Values[ aVital] =  'True';
  6005   end;
  6006   UpdateQual ifierGloba lRequired
  6007   Table 48:  Function
  6008   Function
  6009   Activities
  6010   Function N ame
  6011   UpdateQual ifierGloba lRequired
  6012   Short Desc ription
  6013   Update the  internal  vital requ ired list
  6014   Enhancemen t Category
  6015    New
  6016    Modify
  6017    Delete
  6018    No Change
  6019   Related Op tions
  6020  
  6021  
  6022   Related Ro utines
  6023   Routines “ Called By”
  6024   Routines “ Called”   
  6025  
  6026  
  6027  
  6028  
  6029   Function N ame
  6030   Activities
  6031   Data Dicti onary (DD)  Reference s
  6032  
  6033   Related Pr otocols
  6034  
  6035   Related In tegration  Control Re gistration s (ICRs)
  6036  
  6037   Data Passi ng
  6038    Input
  6039    Output
  6040    Both
  6041    Global Re ference
  6042    Local Ref erence
  6043   Input Attr ibute Name  and Defin ition
  6044   Name: aVit al
  6045  
  6046   Definition : String
  6047   Name: aVal ue
  6048   Definition : String
  6049   Output Att ribute Nam e and Defi nition
  6050   Name: Resu lt
  6051  
  6052   Definition : Boolean
  6053  
  6054   Current Lo gic
  6055   NA
  6056  
  6057   Modified L ogic (Chan ges are in  bold)
  6058   Function U pdateQuali fierGlobal Required(a Vital, aVa lue: Strin g): Boolea n;
  6059   begin
  6060     try
  6061       FReqQu al.Values[ aVital] :=  aValue;
  6062       Result  := true;
  6063     except
  6064       result  := false;
  6065     end;
  6066   end;
  6067   setSystemP arameter
  6068   Table 48:  Function
  6069   Function
  6070   Activities
  6071   Function N ame
  6072   setSystemP arameter
  6073   Short Desc ription
  6074   Updates a  VistA para meter
  6075   Enhancemen t Category
  6076    New
  6077    Modify
  6078    Delete
  6079    No Change
  6080   Related Op tions
  6081  
  6082  
  6083   Related Ro utines
  6084   Routines “ Called By”
  6085   Routines “ Called”   
  6086  
  6087  
  6088  
  6089  
  6090   Function N ame
  6091   Activities
  6092   Data Dicti onary (DD)  Reference s
  6093  
  6094   Related Pr otocols
  6095  
  6096   Related In tegration  Control Re gistration s (ICRs)
  6097  
  6098   Data Passi ng
  6099    Input
  6100    Output
  6101    Both
  6102    Global Re ference
  6103    Local Ref erence
  6104   Input Attr ibute Name  and Defin ition
  6105   Name: aNam e
  6106  
  6107   Definition : String
  6108   Name: aIns tance
  6109   Definition : String
  6110   Name: aVal ue
  6111   Definition : String
  6112   Output Att ribute Nam e and Defi nition
  6113   Name:
  6114  
  6115   Definition :
  6116  
  6117   Current Lo gic
  6118   function s etSystemPa rameter(aN ame, aValu e, anOptio n: string) : string;
  6119   begin
  6120     CallRPC( RPC_PARAME TER, ['SET PAR', 'SYS ', aName,  aValue, an Option], n il, []);
  6121     Result : = RPCBroke r.Results[ 0];
  6122   end;
  6123  
  6124   Modified L ogic (Chan ges are in  bold)
  6125   function s etSystemPa rameter(aN ame, aInst ance, aVal ue: string ): string;
  6126   begin
  6127     CallRPC( RPC_PARAME TER, ['SET PAR', 'SYS ', aName,  aInstance,  aValue],  nil, []);
  6128     Result : = RPCBroke r.Results[ 0];
  6129   end;
  6130   setSystemP arameterLi st
  6131   Table 48:  Function
  6132   Function
  6133   Activities
  6134   Function N ame
  6135   setSystemP arameterLi st
  6136   Short Desc ription
  6137   Updates a  VistA para meter as a  list
  6138   Enhancemen t Category
  6139    New
  6140    Modify
  6141    Delete
  6142    No Change
  6143   Related Op tions
  6144  
  6145  
  6146   Related Ro utines
  6147   Routines “ Called By”
  6148   Routines “ Called”   
  6149  
  6150  
  6151  
  6152  
  6153   Function N ame
  6154   Activities
  6155   Data Dicti onary (DD)  Reference s
  6156  
  6157   Related Pr otocols
  6158  
  6159   Related In tegration  Control Re gistration s (ICRs)
  6160  
  6161   Data Passi ng
  6162    Input
  6163    Output
  6164    Both
  6165    Global Re ference
  6166    Local Ref erence
  6167   Input Attr ibute Name  and Defin ition
  6168   Name: aNam e
  6169  
  6170   Definition : String
  6171   Name: aIns tance
  6172   Definition : String
  6173   Name: aVal ue
  6174   Definition : String
  6175   Output Att ribute Nam e and Defi nition
  6176   Name: Resu lt
  6177  
  6178   Definition : String
  6179  
  6180   Current Lo gic
  6181   NA
  6182  
  6183   Modified L ogic (Chan ges are in  bold)
  6184   function s etSystemPa rameterLis t(aName, a Instance:  string; aV alue: TStr ingList):  string;
  6185   begin
  6186     CallRPC( RPC_PARAME TER, ['SET LST', 'SYS ', aName,  aInstance] , aValue,  []);
  6187     Result : = RPCBroke r.Results[ 0];
  6188   end;
  6189   Finalizati on
  6190   Table 48:  Function
  6191   Function
  6192   Activities
  6193   Function N ame
  6194   Finalizati on
  6195   Short Desc ription
  6196   Clean up
  6197   Enhancemen t Category
  6198    New
  6199    Modify
  6200    Delete
  6201    No Change
  6202   Related Op tions
  6203  
  6204  
  6205   Related Ro utines
  6206   Routines “ Called By”
  6207   Routines “ Called”   
  6208  
  6209  
  6210  
  6211  
  6212   Function N ame
  6213   Activities
  6214   Data Dicti onary (DD)  Reference s
  6215  
  6216   Related Pr otocols
  6217  
  6218   Related In tegration  Control Re gistration s (ICRs)
  6219  
  6220   Data Passi ng
  6221    Input
  6222    Output
  6223    Both
  6224    Global Re ference
  6225    Local Ref erence
  6226   Input Attr ibute Name  and Defin ition
  6227   Name: 
  6228  
  6229   Definition
  6230   Output Att ribute Nam e and Defi nition
  6231   Name:
  6232  
  6233   Definition :
  6234  
  6235   Current Lo gic
  6236   NA
  6237  
  6238   Modified L ogic (Chan ges are in  bold)
  6239   Finalizati on
  6240    if assign ed(FReqQua l) then
  6241     FreeAndN il(FReqQua l);
  6242  
  6243  
  6244   Not the en d of the w ork
  6245   Design Ele ment Table s
  6246   The design  element t ables are  provided f or your co nvenience.  Copy each  table as  many times  as necess ary to add ress multi ple items  within eac h section.  Add rows  and headin gs to the  tables to  provide an y addition al require d informat ion to def ine the it em or to s pecify the  modificat ions to th e item. Nu mbering of  the desig n element  tables to  align them  underneat h the appl icable req uirement o r sub-requ irement is  recommend ed, but is  left to t he author’ s discreti on. For th at reason  they are n ot numbere d in this  template.
  6247   Routines ( Entry Poin ts)
  6248   This secti on is an i llustratio n that is  VistA spec ific. The  authors ar e free to  organize t his inform ation by t echnology,  different  templates , or optio nal sectio ns dependi ng on the  task at ha nd. 
  6249   Complete t he table f or each ro utine affe cted by th e function ality bein g designed .
  6250   Table 14:  Routines ( Instructio ns)
  6251   Routines
  6252   Instructio ns
  6253   Routine Na me
  6254   List the r outine aff ected by t he functio nality bei ng designe d.
  6255   Enhancemen t Category
  6256   Check the  appropriat e box: New , Modify,  Delete, or  No Change .
  6257   RTM
  6258   List the R SD item nu mber withi n the SDD  (i.e., If  the RSD ha s a requir ement of 3 .3.1, add  Support fo r a new AP I, then in  this colu mn list RS D Requirem ent 3.3.1)
  6259   Related Op tions
  6260   List optio ns that di rectly cal l or are c alled by t he routine .
  6261   Related Ro utines
  6262   List routi nes that d irectly ca ll or are  called by  the routin e.
  6263   Data Dicti onary (DD)  Reference s
  6264   List files  that refe rence the  routine th rough inpu t transfor ms, cross  reference  logic, etc .
  6265   Related Pr otocols
  6266   List proto cols that  reference  or are ref erenced by  the routi ne.
  6267   Related In tegration  Control Re gistration s (ICRs)
  6268   List propo sed new IC Rs and sub scribed IC Rs. Also,  list any o bscure Sup ported ICR s.
  6269   Data Passi ng
  6270   Check the  appropriat e box. Als o a short  descriptio n of what  invokes th e new/chan ged routin e should b e included  in this s ection. An  example o f such a d escription  would be  a note tha t the new/ changed ro utine will  be invoke d as part  of a funct ion call o r it would  be invoke d through  user menu- driven opt ions, syst em protoco ls, HL7 Lo gical Link s, etc. Th is section  refers sp ecifically  to the ch ange imple mented wit h the desi gn.
  6271   Input Attr ibute Name  and Defin ition
  6272   List the I nput Attri butes pass ed into th e new or c hanged rou tine logic . Each att ribute sho uld be def ined.
  6273   Output Att ribute Nam e and Defi nition
  6274   List the O utput Attr ibutes ret urned from  the new o r changed  routine lo gic. Each  attribute  should be  defined.
  6275   Current Lo gic
  6276   Define the  current l ogic in th e routine  that the d esign will  modify. I f this is  new code,  enter “N/A ”.
  6277   Modified L ogic (Chan ges are in  bold)
  6278   Define the  logic in  the routin e that the  design wi ll impleme nt.
  6279  
  6280   Table 15 ( Grouping):  Routines
  6281   Routines
  6282   Activities
  6283   Routine Na me
  6284  
  6285   Enhancemen t Category
  6286    New
  6287    Modify
  6288    Delete
  6289    No Change
  6290   RTM
  6291  
  6292   Related Op tions
  6293  
  6294  
  6295   Related Ro utines
  6296   Routines “ Called By”
  6297   Routines “ Called”   
  6298  
  6299  
  6300  
  6301  
  6302   Routines
  6303   Activities
  6304   Data Dicti onary (DD)  Reference s
  6305  
  6306   Related Pr otocols
  6307  
  6308   Related In tegration  Control Re gistration s (ICRs)
  6309  
  6310   Data Passi ng
  6311    Input
  6312    Output Re ference
  6313    Both
  6314    Global Re ference
  6315    Local
  6316   Input Attr ibute Name  and Defin ition
  6317   Name:
  6318   Definition :
  6319   Output Att ribute Nam e and Defi nition
  6320   Name:
  6321   Definition :
  6322  
  6323   Current Lo gic
  6324  
  6325  
  6326   Modified L ogic (Chan ges are in  bold)
  6327  
  6328  
  6329   Templates
  6330   Complete T able 16 fo r each tem plate affe cted by th e function ality bein g designed . A short  descriptio n of what  change wil l be made  to the tem plates sho uld be inc luded in t his sectio n.
  6331   Note: If p referred,  copy and p aste this  section di rectly fro m VA FileM an DDs ins tead of us ing the ta bles.
  6332   Table 16:  Templates  (Instructi ons)
  6333   Templates
  6334   Instructio ns
  6335   Template N ame
  6336   Identify t he templat e affected  by the fu nctionalit y being de signed
  6337   Enhancemen t Category
  6338   Check the  appropriat e box: New , Modify,  Delete, or  No Change .
  6339   RSD Tracea bility
  6340   List the R equirement  Specifica tion Docum ent (RSD)  item numbe r within t he SDD (i. e., If the  RSD has a  requireme nt of 3.3. 1, add Sup port for a  new API,  then this  column sho uld list R SD Require ment 3.3.1 )
  6341   Template T ype
  6342   Indicate t he type of  template  identified  (Sort, In put, or Pr int).
  6343   Related Op tions
  6344   List optio ns that di rectly cal l or are c alled by t he templat e.
  6345   Related Ro utines
  6346   List routi nes that d irectly ca ll or are  called by  the templa te.
  6347   Data Dicti onary (DD)  Reference s
  6348   List files /fields th at referen ce the tem plate(s) t hrough inp ut transfo rms, and c ross refer ence logic .
  6349   Global Ref erences
  6350   List the I CRs for gl obal refer ences that  are outsi de your na mespace.
  6351   Table 17:  Templates
  6352   Templates
  6353   Descriptio n
  6354   Template N ame
  6355  
  6356   Enhancemen t Category
  6357    New
  6358    Modify
  6359    Delete
  6360    No Change
  6361   RSD
  6362  
  6363   Template T ype
  6364    Sort
  6365    Input
  6366    Print
  6367    Other
  6368   Related Op tions
  6369  
  6370  
  6371   Related Ro utines
  6372   Routines “ Called By”
  6373   Routines “ Called”   
  6374  
  6375  
  6376  
  6377  
  6378   Routines
  6379   Descriptio n
  6380   Data Dicti onary (DD)  Reference s
  6381  
  6382   Global Ref erences
  6383  
  6384   Bulletins
  6385   If the pro ject devel ops or aff ects bulle tins, then  complete  this secti on; if not  then stat e that the  section i s not appl icable and  delete th e tables a nd content  of the se ction. Com plete the  table for  each bulle tin affect ed by the  functional ity being  designed.  A short de scription  of what ch ange will  be made to  the bulle tins shoul d be inclu ded in thi s section.
  6386   Note: If p referred,  copy and p aste this  section di rectly fro m VA FileM an DDs ins tead of us ing the ta bles.
  6387   Table 18:  Bulletins  (Instructi ons)
  6388   Bulletins
  6389   Instructio ns
  6390   Bulletin N ame
  6391   List the s pecific bu lletin aff ected by t he functio nality bei ng designe d.
  6392   Enhancemen t Category
  6393   Check the  appropriat e box: New , Modify,  Delete, or  No Change .
  6394   RTM
  6395   List the R SD item nu mber withi n the SDD  (i.e., If  the RSD ha s a requir ement of 3 .3.1, add  Support fo r a new AP I, then in  this colu mn list RS D Requirem ent 3.3.1) .
  6396   Related Op tions
  6397   List optio ns that di rectly sen d the bull etin.
  6398   Related Ro utines
  6399   List routi nes that d irectly se nd the bul letin.
  6400   Mail Subje ct
  6401   List the s ubject of  the mail m essage, i. e., which  bulletin t his affect s.
  6402   Mail Group
  6403   List the m ail group  (recipient s) of the  mail messa ge.
  6404   Parameters
  6405   List neces sary param eters.
  6406   Data Dicti onary (DD)  Reference s
  6407   List files /fields th at referen ce the bul letin(s) t hrough inp ut transfo rms, cross  reference  logic, et c. should  be listed  under Data  Dictionar y (DD) Ref erences.
  6408  
  6409   Table 19:  Bulletins
  6410   Bulletins
  6411   Descriptio n
  6412   Bulletin N ame
  6413  
  6414   Enhancemen t Category
  6415    New
  6416    Modify
  6417    Delete
  6418    No Change
  6419   RTM
  6420  
  6421  
  6422   Related Ro utines
  6423   Routines “ Called By”
  6424   Routines “ Called”   
  6425  
  6426  
  6427  
  6428  
  6429   Routines
  6430   Descriptio n
  6431   Mail Subje ct
  6432  
  6433   Mail Group
  6434  
  6435   Parameters
  6436  
  6437   Data Dicti onary (DD)  Reference s
  6438  
  6439   Data Entri es Affecte d by the D esign
  6440   Provide th e followin g data for  each fiel d to be cr eated, mod ified, or  deleted or  provide a  “Before a nd After:  Data Entri es Affecte d by the D esign.”
  6441   Identify t he entries  affected  by the des ign. If a  blanket ch ange will  be made to  each entr y affected , that cha nge should  be define d in this  table. 
  6442   Only chang es that ar e unique t o each rec ord should  be define d in the U nique Reco rd(s) sect ion (Secti on 6.2.2.3 .5). Redun dant infor mation sho uld not be  entered i nto each c hart in th e Unique R ecord(s) s ection.
  6443   Table 20:  Data Entri es Affecte d by the D esign
  6444   Field Name
  6445   Current Va lue
  6446   New Value
  6447  
  6448  
  6449  
  6450   Unique Rec ord(s) 
  6451   List the u nique reco rd ID(s) t hat will b e affected  by the ch anges impl emented by  the desig n. This is  commonly  done in th e .01 fiel d. The val ues define d in the C urrent Val ue and New  Value col umns shoul d be the e xact value  of the da ta. For ea ch unique  record ID,  copy this  table and  provide t he informa tion.
  6452   Table 21:  Unique Rec ord ID
  6453   Field Name (s)
  6454   Current Va lue
  6455   New Value
  6456  
  6457  
  6458  
  6459   File or Gl obal Size  Changes
  6460   Indicate t he change  to the siz e of the f ile or glo bal as a r esult of t he design  implemente d with thi s descript ion. Globa l size cha nges tie b ack to the  business  requiremen ts and RSD . Growth o r reductio n in the s ize of the  global sh ould be in dicated in  this sect ion. If th e file is  static acr oss all Vi stA system s, a blank et stateme nt of how  the change  will affe ct the siz e of the g lobal will  suffice. 
  6461   For exampl e, “The Na tional Pro cedure fil e is a new  file and  will requi re 8.7K of  disk spac e to insta ll.” 
  6462   If a file  is dynamic  and its s ize may va ry from Vi stA system  to VistA  system, th e descript ion should  indicate  the change  in the fi le per rec ord and th e number o f records  that the s ite may an ticipate.  For exampl e, if a fi eld is bei ng added t o the pati ent file t hat will r esult in a n increase  of 7K per  patient,  the site c an estimat e the glob al growth  based on t he number  of entries  in that f ile.
  6463   Note: If t he Capacit y Planning  analysis  is availab le, then e nter it he re. If not , then use  the Proje ct Team pr ojection.
  6464   Table 22:  File or Gl obal Size  Changes
  6465   File/Globa l Name(s)
  6466   Estimated  Increase
  6467   Estimated  Decrease
  6468  
  6469  
  6470  
  6471   Mail Group s
  6472   Complete t he table f or each of  the mail  groups aff ected by t he functio nality bei ng designe d. A short  descripti on of what  changes w ill be mad e to the a ffected ma il groups  should be  included i n this sec tion.
  6473   Note: If p referred,  this can b e captured  directly  from VA Fi leMan DDs  after the  fact.
  6474   Table 23:  Mail Group s (Instruc tions)
  6475   Mail Group s
  6476   Instructio ns
  6477   Mail Group  Name
  6478   List the n ame of the  mail grou p being mo dified. Th e mail gro up name ma y include  a domain n ame.
  6479   Enhancemen t Category
  6480   Check the  appropriat e box: New , Modify,  Delete, or  No Change .
  6481   Related Op tions
  6482   List optio ns that di rectly ref erence the  file.
  6483   Related Ro utines
  6484   List routi nes that r eference t he mail gr oup.
  6485   Data Dicti onary (DDs ) Referenc es
  6486   List files  that refe rence the  mail group  through i nput trans forms, cro ss-referen ce logic,  etc. 
  6487   Related Pr otocols
  6488   List proto cols that  directly r eference t he mail gr oup.
  6489   Mail Group  Descripti on
  6490   Describe t he purpose  for the m ail group.
  6491   Self-Enrol lment Allo wed
  6492   Check the  appropriat e box eith er Yes or  No.
  6493   Type
  6494   Check the  appropriat e box eith er Public  or Private .
  6495   Table 24:  Mail Group s
  6496   Mail Group s
  6497   Activities
  6498   Mail Group  Name
  6499  
  6500   Enhancemen t Category
  6501    New
  6502    Modify
  6503    Delete
  6504    No Change
  6505   Related Op tions
  6506  
  6507  
  6508   Related Ro utines
  6509   Routines “ Called By”
  6510   Routines “ Called”   
  6511  
  6512  
  6513  
  6514  
  6515   Mail Group s
  6516   Instructio ns
  6517   Data Dicti onary (DD)  Reference s
  6518  
  6519   Related Pr otocols
  6520  
  6521   Mail Group  Descripti on
  6522  
  6523   Self-Enrol lment Allo wed
  6524    Yes
  6525    No
  6526   Type
  6527    Public
  6528   Private
  6529   Security K eys
  6530   This secti on lists t he specifi c security  keys affe cted by th e function ality bein g designed . A short  descriptio n of the c hanges tha t will be  made to th e security  keys affe cted shoul d be inclu ded in thi s section.
  6531   Note: If p referred,  this can b e captured  directly  from VA Fi leMan DDs  after the  fact.
  6532   Table 25:  Security K eys (Instr uctions)
  6533   Security K eys
  6534   Instructio ns
  6535   Security K ey Name
  6536   List the s pecific na me of the  security k ey being m odified.
  6537   Enhancemen t Category
  6538   Check the  appropriat e box: New , Modify,  Delete, or  No Change .
  6539   Related Op tions
  6540   List optio ns that di rectly ref erence the  security  key.
  6541   Related Ro utines
  6542   List routi nes that r eference t he securit y key.
  6543   Data Passi ng
  6544   Check the  appropriat e box. Ent er a short  descripti on of an e vent that  would trig ger the ne w/changed  routine, f or example , a note t hat the ch ange to th e security  key will  be referen ced throug h user men u driven o ptions, ro utines, et c. This se ction refe rs specifi cally to t he change  implemente d with the  design.
  6545   Security K ey Descrip tion
  6546   List a bri ef descrip tion of th e security  key.
  6547   Subordinat e Keys
  6548   List any s ubordinate  keys.
  6549   Mutually E xclusive K eys
  6550   Enter the  name of a  key that m ay not be  held joint ly with th is one.
  6551   Granting C ondition L ogic
  6552   Define the  logic for  the Grant ing Condit ion of the  Security  Key affect ed by the  functional ity being  designed.
  6553   Current Lo gic
  6554   If the sec urity key  currently  has a gran ting condi tion, defi ne the cur rent logic  for that  granting c ondition.  If the sec urity key  did not ex ist before , indicate  that ther e is curre ntly no se curity key .
  6555   Modified L ogic (Chan ges are in  bold)
  6556   Define the  granting  condition  that the d esign will  implement . If the s ecurity ke y is new t o the fiel d, define  the logic  here.
  6557   Hierarchic al Precede nce
  6558   Define whi ch key is  used if on e key will  take prec edence ove r another  key.
  6559   Table 26:  Security K eys
  6560   Security K eys
  6561   Activities
  6562   Security K ey Name
  6563  
  6564   Enhancemen t Category
  6565    New
  6566    Modify
  6567    Delete
  6568    No Change
  6569   Related Op tions
  6570  
  6571  
  6572   Related Ro utines
  6573   Routines “ Called By”
  6574   Routines “ Called”   
  6575  
  6576  
  6577  
  6578  
  6579   Security K eys
  6580   Activities
  6581   Data Passi ng
  6582    Input
  6583    Output
  6584    Both
  6585    Global Re ference
  6586    Local Ref erence
  6587   Security K ey Descrip tion
  6588  
  6589   Subordinat e Keys
  6590  
  6591   Mutually E xclusive K eys
  6592  
  6593   Granting C ondition L ogic
  6594  
  6595  
  6596   Current Lo gic
  6597  
  6598  
  6599   Modified L ogic (Chan ges are in  bold)
  6600  
  6601  
  6602   Security K eys
  6603   Activities
  6604   Hierarchic al Precede nce
  6605  
  6606   Options
  6607   Complete t he table f or each of  the optio ns affecte d by the f unctionali ty being d esigned. A  short des cription o f the chan ges that w ill be mad e to the o ptions aff ected shou ld be incl uded. Chan ges to the  OPTION fi le (#19) a re to be i ncluded, n ot the fun ctionality  of the op tion invok ed.
  6608   Note: If p referred,  this can b e captured  directly  from VA Fi leMan DD a fter the f act.
  6609   Table 27:  Options (I nstruction s)
  6610   Options
  6611   Instructio ns
  6612   Option Nam
  6613   (MENU TEXT  field)
  6614   Enter the  name of th e option a ffected.
  6615   Enhancemen t Category
  6616   Check the  appropriat e box: New , Modify,  Delete, or  No Change
  6617   Associated  Menu Opti ons that w ill invoke  this refe rence
  6618   List the m enu type o ptions on  which the  respective  option is  or will b e containe d.
  6619   Data Passi ng
  6620   Check the  appropriat e box. Als o a short  descriptio n of what  invokes th e new/chan ged routin e should b e included  in this s ection. An  example o f such a d escription  would be  a note tha t the chan ge to the  option wil l be refer enced thro ugh VA Mai lman serve r messages , user sel ection of  the option  from the  VA Kernel  Menu Manag ement syst em, etc. T his sectio n refers s pecificall y to the c hange impl emented wi th the des ign.
  6621   Menu Text  Descriptio n
  6622   Enter the  name of th e option a s it will  be display ed to the  user withi n the menu  system.
  6623   Option Typ e
  6624   Specify th e type of  option
  6625   Option Def inition
  6626   Provide al l the info rmation ne cessary to  fully def ine the op tion. Incl ude option s that are  included  in the men u, if appl icable.
  6627   Current En try Action  Logic
  6628   Define the  current l ogic for t he entry a ction of t he option  affected b y the func tionality  being desi gned. If t he entry a ction did  not exist  before, in dicate tha t there cu rrently is  no entry  action.
  6629   Modified E ntry Actio n Logic (C hanges are  in bold)
  6630   Define the  entry act ion that t he design  will imple ment. If t he entry a ction is n ew to the  field, def ine the lo gic here.
  6631   Current Ex it Action  Logic
  6632   Define the  current l ogic for t he exit ac tion of th e option a ffected by  the funct ionality b eing desig ned. If th e exit act ion did no t exist be fore, indi cate that  there curr ently is n o exit act ion.
  6633   Modified E xit Action  Logic 
  6634   (Changes a re in bold )
  6635   Define the  exit acti on that th e design w ill implem ent. If th e exit act ion is new  to the fi eld, defin e the logi c here.
  6636  
  6637  
  6638  
  6639  
  6640   Table28: O ptions
  6641   Options
  6642   Activities
  6643   Option Nam e
  6644  
  6645   Enhancemen t Category
  6646    New
  6647    Modify
  6648    Delete
  6649    No Change
  6650   Associated  Menu Opti ons that w ill invoke  this refe rence
  6651  
  6652   Data Passi ng
  6653    Input
  6654    Output
  6655    Both
  6656    Global Re ference
  6657    Local Ref erence
  6658   Menu Text  Descriptio n
  6659  
  6660   Option Typ e
  6661    Edit
  6662    Print
  6663    Menu
  6664    Inquire
  6665  
  6666    Action
  6667    Run Routi ne
  6668    Other
  6669  
  6670   Associated  Routine
  6671  
  6672   Option Def inition
  6673  
  6674  
  6675   Current En try Action  Logic
  6676  
  6677  
  6678   Modified E ntry Actio n Logic (C hanges are  in bold)
  6679  
  6680  
  6681   Current Ex it Action  Logic
  6682  
  6683  
  6684   Modified E xit Action  Logic (Ch anges are  in bold)
  6685  
  6686   Protocols
  6687   Complete t he table f or each of  the proto cols affec ted by the  functiona lity being  designed.  A short d escription  of the ch anges that  will be m ade to the  protocols  affected  should be  included i n this sec tion. Chan ges to the  PROTOCOL  file (#101 ) are to b e included , not the  functional ity of the  protocol  invoked.
  6688   Note: If p referred,  this can b e captured  directly  from VA Fi leMan DDs  after the  fact.
  6689   Table29: P rotocols ( Instructio ns)
  6690  
  6691   Protocols
  6692   Instructio ns
  6693   Protocol N ame
  6694   List the n ame of the  protocol  affected.
  6695   Enhancemen t Category
  6696   Check the  appropriat e box: New , Modify,  Delete, or  No Change .
  6697   Associated  Protocols
  6698   List the a ncestors o f the prot ocol being  designed,  i.e., tho se protoco ls that co ntain the  respective  protocol  as an item .
  6699   Data Passi ng
  6700   Check the  appropriat e box. An  event that  would tri gger the n ew/changed  protocol  should be  included i n this sec tion.  An  example wo uld be a n ote that t he change  to the pro tocol will  be refere nced throu gh the VA  event driv er, List M anager, us er selecti on of a pr otocol fro m the VA K ernel Menu  Managemen t system.  This secti on refers  specifical ly to the  change imp lemented w ith the de sign.
  6701   Item Text  Descriptio n
  6702   Enter the  protocol's  text as i t appears  to the use r on the m enu or sub -header.
  6703   Protocol T ype
  6704   Define the  type of p rotocol to  be execut ed
  6705   Associated  Routine
  6706   List any a ssociated  routines a ffected by  the proto col being  designed.
  6707   Current En try Action  Logic
  6708   Define the  current l ogic for t he entry a ction of t he protoco l affected  by the fu nctionalit y being de signed. If  the entry  action di d not exis t before,  indicate t hat there  currently  is no entr y action.
  6709   Modified E ntry Actio n Logic (C hanges are  in bold)
  6710   Define the  entry act ion that t he design  will imple ment. If t he entry a ction is n ew to the  field, def ine the lo gic here.
  6711   Current Ex it Action  Logic
  6712   Define the  current l ogic for t he exit ac tion of th e protocol  affected  by the fun ctionality  being des igned. If  the exit a ction did  not exist  before, in dicate tha t there cu rrently is  no exit a ction.
  6713   Modified E xit Action  Logic (Ch anges are  in bold)
  6714   Define the  exit acti on that th e design w ill implem ent. If th e exit act ion is new  to the fi eld, defin e the logi c here.
  6715   Table 30:  Protocols
  6716   Protocols
  6717   Activities
  6718   Protocol N ame
  6719  
  6720   Enhancemen t Category
  6721    New    Mo dify    De lete    No  Change
  6722   Associated  Protocols
  6723  
  6724   Data Passi ng
  6725    Input     Output     Both    Gl obal Refer ence    Lo cal Refere nce
  6726   Item Text  Descriptio n
  6727  
  6728   Protocol T ype
  6729    Action     Menu    P rotocol     Protocol  Menu    Li mited Prot ocol    Ex tended Act ion    Dia log    Oth er
  6730   Associated  Routine
  6731  
  6732  
  6733   Current En try Action  Logic
  6734  
  6735  
  6736   Modified E ntry Actio n Logic (C hanges are  in bold)
  6737  
  6738  
  6739   Current Ex it Action  Logic
  6740  
  6741  
  6742   Modified E xit Action  Logic (Ch anges are  in bold)
  6743  
  6744   Remote Pro cedure Cal l (RPC)
  6745   Complete t he table f or each RP C affected  by the fu nctionalit y being de signed.
  6746   Note: If p referred,  this can b e captured  directly  from VA Fi leMan DDs  after the  fact.
  6747   Table 31:  RPCs (Inst ructions)
  6748   RPCs
  6749   Instructio ns
  6750   Name
  6751   List the s pecific na me of the  RPC affect ed.
  6752   TAG^RTN
  6753   List the t ag (label)  and routi ne.
  6754   Input Para meters
  6755   This field  is used t o identify  an input  parameter  for the AP I.
  6756   Results Ar ray
  6757   This field  tells the  RPC Broke r how to p rocess the  resulting  data from  the call.
  6758   Descriptio n
  6759   Provide a  brief desc ription of  the RPC a ffected.
  6760   Table 32:  RPCs
  6761   RPCs
  6762   Activities
  6763   Name
  6764  
  6765   TAG^RTN
  6766  
  6767   Input Para meters
  6768  
  6769   Results Ar ray
  6770    Single Va lue
  6771    Array
  6772    Word Proc essing
  6773  
  6774    Global Ar ray
  6775    Global In stance
  6776  
  6777   Descriptio n
  6778  
  6779   Constants  Defined in  Interface
  6780   Provide th e name and  descripti on.
  6781   Table 33:  Constants  Defined in  Interface
  6782   Name
  6783   Descriptio n
  6784  
  6785  
  6786   Variables  Defined in  Interface
  6787   Provide th e name, ty pe, and de scription.
  6788   Table 34:   Variables  Defined i n Interfac e
  6789   Name
  6790   Type
  6791   Descriptio n
  6792  
  6793  
  6794  
  6795   Types Defi ned in Int erface
  6796   Provide th e name, ty pe, and de scription.
  6797   Table 35:  Types Defi ned in Int erface
  6798   Name
  6799   Type
  6800   Descriptio n
  6801  
  6802  
  6803  
  6804   GUI
  6805   List the G UI affecte d by the f unctionali ty being d esigned an d include  a short de scription  of the cha nges made  to the aff ected GUI.  The heade rs in the  following  tables hav e names fo r the info rmation ou tlined. Th ere are a  number of  items in t his sectio n that wou ld general ly be glob al informa tion and v isible to  all other  aspects.
  6806   Table 36:  GUI
  6807   Unit Name
  6808   Descriptio n
  6809  
  6810  
  6811   GUI Classe s
  6812   Table 37:  GUI Classe s (Instruc tions)
  6813   GUI Classe s
  6814   Instructio ns
  6815   Class Name
  6816   List the n ame of the  class aff ected. The  headers i n the foll owing tabl es have na mes for th e informat ion outlin ed. Note t hat only t he new pro perties an d methods  for a clas s are list ed below.  All ancest or propert ies and me thods are  still avai lable and  unchanged.
  6817   Derived Fr om Class
  6818   List the c lass that  this is de rived from , its pare nt and any  interface s listed a s part of  this class .
  6819   Purpose
  6820   Describe t he functio nality tha t users ca n access f rom this c lass and r elated for m, if any.
  6821   Table 38:  GUI Classe s
  6822   GUI Classe s
  6823   Instructio ns
  6824   Class Name
  6825  
  6826   Derived Fr om Class 
  6827  
  6828   Purpose
  6829  
  6830   Current Fo rm 
  6831   Provide a  screen cap ture or gr aphical re presentati on of the  current la yout.
  6832   Modified F orm
  6833   Provide a  screen cap ture or gr aphical re presentati on of the  layout tha t the desi gn will im plement.
  6834   Components  on Form
  6835   Table 39:  Components  on Form
  6836   Name
  6837   Type
  6838   Descriptio n
  6839  
  6840  
  6841  
  6842   Events
  6843   Table 40:  Events
  6844   Name
  6845   Type
  6846   Descriptio n
  6847  
  6848  
  6849  
  6850   Methods
  6851   Table 41:  Methods
  6852   Method Nam e
  6853   Procedure/ Function
  6854   Descriptio n
  6855  
  6856  
  6857  
  6858   Special Re ferences
  6859   Include re ferences t hat are no t listed e lsewhere.
  6860   Special Re ference Na me
  6861   Type
  6862   Descriptio n
  6863  
  6864  
  6865  
  6866   Class Even ts
  6867   Table 42:  Class Even ts
  6868   Name
  6869   Type
  6870   Descriptio n
  6871  
  6872  
  6873  
  6874   Class Meth ods
  6875   Table 43:  Class Meth ods
  6876   Name
  6877   Procedure/ Function
  6878   Descriptio n
  6879  
  6880  
  6881  
  6882   Class Prop erties
  6883   Table 44:  Class Prop erties
  6884   Class Prop erties Nam e
  6885   Type
  6886   Visibility
  6887   Descriptio n
  6888  
  6889  
  6890  
  6891  
  6892   Uses Claus e
  6893   Use this s ection to  provide a  uses claus e that lis ts the oth er units ( code or fo rm units)  that this  unit will  use. This  may be doc umented in  the form  of a Unifi ed Modelin g Language  (UML) dra wing.
  6894   Forms
  6895   This secti on lists t he forms t hat will b e affected  or create d by the f unctionali ty being d esigned. A  short des cription o f the chan ge that wi ll be made  to the fo rms should  be includ ed.
  6896   Table 45:  Forms (Ins tructions)
  6897   Forms
  6898   Instructio ns
  6899   Form Name
  6900   List the n ame of the  form affe cted by th e function ality bein g designed .
  6901   Enhancemen t Category
  6902   Check the  appropriat e box: New , Modify,  Delete, or  No Change .
  6903   Form Funct ionality
  6904   Describe t he form’s  functional ity and re fer to the  usage of  the form.  An example  of such a  descripti on is “Thi s form is  used to en ter patien t demograp hic data.”
  6905   Current Fo rm Layout
  6906   Define the  current f orm layout  that the  design wil l modify.  If this is  a new for m, enter “ N/A”.
  6907   Modified F orm Layout  (Changes  are in bol d)
  6908   Define the  form layo ut that th e design w ill implem ent.
  6909   Table 46:  Forms
  6910   Forms
  6911   Descriptio n
  6912   Form Name
  6913  
  6914   Enhancemen t Category
  6915    New
  6916    Modify
  6917    Delete
  6918    No Change
  6919   Form Funct ionality
  6920  
  6921  
  6922   Current Fo rm Layout
  6923  
  6924  
  6925   Modified F orm Layout  (Changes  are in bol d)
  6926  
  6927   Functions
  6928   The functi ons affect ed by the  capabiliti es being d esigned sh ould be li sted in th is section . A short  descriptio n of what  change wil l be made  to the fun ctions and /or new fu nctions sh ould be in cluded.
  6929   Table 47:  Functions  (Instructi ons)
  6930   Functions
  6931   Instructio ns
  6932   Function N ame
  6933   List the s pecific fu nction aff ected by t he capabil ity being  designed.
  6934   Short Desc ription
  6935   List a sho rt descrip tion of th e change t hat will b e made to  the functi ons and/or  new funct ions.
  6936   Enhancemen t Category
  6937   Check the  appropriat e box: New , Modify,  Delete, or  No Change .
  6938   Related Op tions
  6939   List the o ptions tha t directly  call or a re called  by the fun ction.
  6940   Related Ro utines
  6941   List the r outines th at directl y call or  are called  by the fu nction. 
  6942   Data Dicti onary (DD)  Reference s
  6943   List the f iles that  reference  the functi on through  input tra nsforms, c ross refer ence logic , etc.
  6944   Related Pr otocols
  6945   List the p rotocols t hat refere nce or are  reference d by the f unction.
  6946   Related In tegration  Control Re gistration s (ICRs)
  6947   List propo sed new IC Rs and sub scribed IC Rs. Also,  list any o bscure Sup ported ICR s.
  6948   Data Passi ng
  6949   Check the  appropriat e box. An  event that  would tri gger the n ew/changed  function  should be  included i n this sec tion. An e xample of  such a des cription w ould be a  note that  the new/ch anged func tion will  be invoked  as part o f a functi on call or  it would  be invoked  through s ystem prot ocols, HL7  Logical L inks, etc.  This sect ion refers  specifica lly to the  change im plemented  with the d esign.
  6950   Input Attr ibute Name  and Defin ition
  6951   List the i nput attri butes pass ed into th e new or c hanged fun ction logi c. Each at tribute sh ould be de fined.
  6952   Output Att ribute Nam e and Defi nition
  6953   List the o utput attr ibutes ret urned from  the new o r changed  function l ogic. Each  attribute  should be  defined.
  6954   Current Lo gic
  6955   Define the  current l ogic in th e function  that the  design wil l modify.  If this is  new code,  enter “N/ A”.
  6956   Modified L ogic (Chan ges are in  bold)
  6957   Define the  logic in  the functi on that th e design w ill implem ent.
  6958   Table 48:  Forms
  6959   Function N ame
  6960   Activities
  6961   Short Desc ription
  6962  
  6963   Enhancemen t Category
  6964    New
  6965    Modify
  6966    Delete
  6967    No Change
  6968   Related Op tions
  6969  
  6970  
  6971   Related Ro utines
  6972   Routines “ Called By”
  6973   Routines “ Called”   
  6974  
  6975  
  6976  
  6977  
  6978   Function N ame
  6979   Activities
  6980   Data Dicti onary (DD)  Reference s
  6981  
  6982   Related Pr otocols
  6983  
  6984   Related In tegration  Control Re gistration s (ICRs)
  6985  
  6986   Data Passi ng
  6987    Input
  6988    Output
  6989    Both
  6990    Global Re ference
  6991    Local Ref erence
  6992   Input Attr ibute Name  and Defin ition
  6993   Name:
  6994  
  6995   Definition :
  6996   Output Att ribute Nam e and Defi nition
  6997   Name:
  6998  
  6999   Definition :
  7000  
  7001   Current Lo gic
  7002  
  7003  
  7004   Modified L ogic (Chan ges are in  bold)
  7005  
  7006   Dialog
  7007   In this se ction list  the chang es to the  DIALOG fil e (#.84).
  7008   Table 49:  Dialog (In structions )
  7009   Dialog
  7010   Instructio ns
  7011   Dialog Mes sage (Desc ription)
  7012   List the s pecific me ssage affe cted or ne eded by th e changes  being desi gned.
  7013   Enhancemen t Category
  7014   Select the  appropria te categor y: New, Mo dify, Dele te, or No  Change.
  7015   Dialog Mes sage (Desc ription) C ondition
  7016   Describe t he dialog  message (d escription ) function ality. An  example of  such a de scription  would be t he conditi on that wo uld trigge r the outp ut of the  message (d ialog). Th is section  refers to  the condi tion gener ating the  message (d ialog).
  7017   Current Di alog Messa ge (Descri ption)
  7018   Define the  current d ialog mess age (descr iption) th at the des ign will m odify. If  this is a  new dialog  message ( descriptio n) enter N /A.
  7019   Modified D ialog Mess age (Descr iption) (C hanges are  in bold)
  7020   Define the  dialog me ssage (des cription)  that the d esign will  implement .
  7021   Table 50:  Dialog
  7022   Dialog
  7023   Instructio ns
  7024   Dialog Mes sage (Desc ription)
  7025  
  7026   Enhancemen t Category
  7027    New
  7028    Modify
  7029    Delete
  7030    No Change
  7031   Dialog Mes sage (Desc ription) C ondition
  7032  
  7033   Current Di alog Messa ge (Descri ption)
  7034  
  7035   Modified D ialog Mess age (Descr iption) (C hanges are  in bold)
  7036  
  7037   Help Frame
  7038   A short de scription  of what ch ange will  be made to  the Help  Frame text  and/or ne w text sho uld be inc luded in t his sectio n. Help fr ames may b e associat ed with op tions or w ith data d ictionary  fields to  provide on -line inst ruction.
  7039   Table 51:  Help Frame  (Instruct ions)
  7040   Help Frame
  7041   Instructio ns
  7042   Help Frame  Text
  7043   List the t ext affect ed or need ed by the  changes be ing design ed.
  7044   Enhancemen t Category
  7045   Check the  appropriat e box: New , Modify,  Delete, or  No Change .
  7046   Help Frame  Text Call ing Mechan ism
  7047   Provide a  short desc ription of  the mecha nism used  to call th e Help Fra me text in  this sect ion. An ex ample of a  mechanism  would be  the name o f the rout ine or an  explanatio n of how t he Help Fr ame is cal led. An ex ample of a  calling m echanism w ould be th e Standard  VA FileMa n API and  the keystr oke(s) tha t would tr igger the  output of  the text.
  7048   Current He lp Frame T ext
  7049   List the c urrent Hel p Frame Te xt that th e design w ill modify . If new t ext enter  N/A.
  7050   Modified H elp Frame  Text (Chan ges are in  bold)
  7051   List the H elp Frame  Text that  the design  will modi fy.
  7052   Table 52:  Help Frame
  7053   Help Frame
  7054   Descriptio n
  7055   Help Frame  Text
  7056  
  7057   Enhancemen t Category
  7058    New
  7059    Modify
  7060    Delete
  7061    No Change
  7062   Help Frame  Text Call ing Mechan ism
  7063  
  7064  
  7065   Current He lp Frame T ext
  7066  
  7067  
  7068   Modified H elp Frame  Text (Chan ges are in  bold)
  7069  
  7070   HL7 Applic ation Para meter
  7071   Table 53:  HL7 Applic ation Para meter (Ins tructions)
  7072   HL7 Applic ation Para meter
  7073   Instructio ns
  7074   HL7 Applic ation Para meter Name
  7075   List the H L7 Applica tion Param eter affec ted or nee ded by the  changes b eing desig ned.
  7076   Enhancemen t Category
  7077   Check the  appropriat e box: New , Modify,  Delete, or  No Change .
  7078   Applicatio n Status
  7079   Check the  appropriat e box in t he applica ble column  for Curre nt and Mod ified
  7080   Facility N ame
  7081   List the c urrent and  modified  value in t he appropr iate colum n.
  7082   Country Co de
  7083   List the c urrent and  modified  value in t he appropr iate colum n.
  7084   HL7 Field  Separator
  7085   List the c urrent and  modified  value in t he appropr iate colum n.
  7086   HL7 Encodi ng Charact ers
  7087   List the c urrent and  modified  value in t he appropr iate colum n.
  7088   Mail Group
  7089   List the c urrent and  modified  value in t he appropr iate colum n.
  7090   Table 54:  HL7 Applic ation Para meter
  7091   HL7 Applic ation Para meter Name
  7092   Descriptio n
  7093  
  7094   Enhancemen t Category
  7095    New
  7096    Modify
  7097    Delete
  7098    No Change
  7099  
  7100   Applicatio n Status
  7101    Active
  7102   Inactive
  7103    Active
  7104   Inactive
  7105  
  7106  
  7107  
  7108   Enhancemen t Category
  7109   Current
  7110   Modified
  7111   Facility N ame
  7112  
  7113  
  7114   Country Co de
  7115  
  7116  
  7117   HL7 Field  Separator
  7118  
  7119  
  7120   HL7 Encodi ng Charact ers
  7121  
  7122  
  7123   Mail Group
  7124  
  7125  
  7126   HL7 Logica l Link
  7127   Table 55:  HL7 Logica l Link (In structions )
  7128   HL7 Logica l Link
  7129   Instructio ns
  7130   HL7 Logica l Link Par ameter (LL P) Name
  7131   List the s pecific HL 7 Logical  Link affec ted or nee ded by the  changes b eing desig ned.
  7132   Enhancemen t Category
  7133   Check the  appropriat e box: New , Modify,  Delete, or  No Change .
  7134   Node
  7135   List the c urrent and  modified  value in t he appropr iate colum n.
  7136   Institutio n
  7137   List the c urrent and  modified  value in t he appropr iate colum n.
  7138   Domain
  7139   List the c urrent and  modified  value in t he appropr iate colum n.
  7140   Autostart
  7141   List the c urrent and  modified  value in t he appropr iate colum n.
  7142   Queue Size
  7143   List the c urrent and  modified  value in t he appropr iate colum n.
  7144   LLP Type
  7145   List the c urrent and  modified  value in t he appropr iate colum n.
  7146   Table 56:  HL7 Logica l Link
  7147   HL7 Logica l Link
  7148   Descriptio n
  7149   HL7 Logica l Link Par ameter Nam e
  7150  
  7151  
  7152   Enhancemen t Category
  7153    New
  7154    Modify
  7155    Delete
  7156    No Change
  7157  
  7158   Enhancemen t Category
  7159   Current
  7160   Modified
  7161   Node
  7162  
  7163  
  7164   Institutio n
  7165  
  7166  
  7167   Domain
  7168  
  7169  
  7170   Autostart
  7171  
  7172  
  7173   Queue Size
  7174  
  7175  
  7176   LLP Type
  7177  
  7178  
  7179   COTS Inter face
  7180   The specif ic communi cation met hod(s) and  Applicati on Interfa ce(s) that  will be c reated or  modified f or the COT S system b eing inter faced shou ld be desc ribed in t his sectio n. A short  descripti on of the  existing t ools that  will be us ed and any  new tools  that will  be develo ped should  also be i ncluded.
  7181   Table 57:  COTS Inter face (Inst ructions)
  7182   COTS Inter face
  7183   Instructio ns
  7184   Communicat ion Method
  7185   List the s pecific co mmunicatio n method c reated or  modified f or the fun ctionality  being des igned.
  7186   Applicatio n Interfac e
  7187   List the s pecific ap plication  interface  created or  modified  for the fu nctionalit y being de signed.
  7188   Table 58:  COTS Inter face
  7189   COTS Inter face
  7190   Descriptio n
  7191   Communicat ion Method
  7192  
  7193   Applicatio n Interfac e
  7194  
  7195   Network De tailed Des ign 
  7196   Provide en ough detai led inform ation abou t the comm unication  requiremen ts to buil d and/or p rocure the  communica tion compo nents for  the system .  This se ction shou ld provide  sufficien t detail t o support  the procur ement of h ardware fo r the syst em install ation. Inc lude the f ollowing i nformation  in the fo rm of deta iled desig ns (as app ropriate):
  7197   Details of  servers a nd clients  to be inc luded on e ach area n etwork
  7198   Specificat ions for b us timing  requiremen ts and bus  control
  7199   Format(s)  for data b eing excha nged betwe en compone nts
  7200   Diagrams s howing con nectivity  between co mponents,  data flow  (if applic able), and  distances  between c omponents
  7201   LAN topolo gy.
  7202   Security a nd Privacy
  7203   Security
  7204   Describe s pecific se curity mec hanisms at  the appli cation lev el, as gui ded by NIS T 800-53 r evision 3  (or most c urrent ver sion). Als o, summari ze the sec urity mech anisms to  be provide d by the V A GSSs. Re ference th e Security  Risk Asse ssment.
  7205   The follow ing inform ation shou ld be prov ided to ad dress secu rity contr ols:
  7206   A high-lev el descrip tion of th e security  controls,  grouped a ccording t o the 18 c ontrol fam ilies iden tified in  NIST 800-5 3 revision  3 (or mos t current  version).  A descript ion of all  18 contro l families  must be a ddressed;  if a contr ol family  is not app licable, t hen state  that contr ol family  does not a pply and e xplain why  it does n ot apply.
  7207   A descript ion of the  specific  security c ontrols th at will be  provided  by existin g VA infra structure  or VA GSSs .
  7208   Describe t he planned  use by th e applicat ion of the  infrastru cture’s ce ntralized  security m echanisms  and VA GSS s (in part icular, th e identifi cation and  authentic ation, acc ess contro l, and aud it mechani sms), and  infrastruc ture mecha nisms, (e. g., Direct ory Servic es) to sto re user ac count info rmation. S ufficient  detail sho uld be pro vided to s how the fe asibility  of the int egration a nd/or inte r operatio n of appli cation sec urity mech anisms wit h infrastr ucture sec urity mech anisms.
  7209   Privacy
  7210   Identify p rivacy des ign consid erations.  Describe s pecific pr ivacy mech anisms at  the applic ation. Des cribe how  the applic ation’s pr ivacy requ irements w ill be met . Referenc e the Syst em Securit y Plan (SS P) and Pri vacy Impac t Assessme nt (PIA). 
  7211  
  7212   Service Or iented Arc hitecture  / ESS Deta iled Desig
  7213   This secti on provide s details  of provide d and cons umed servi ces as fol lows:
  7214   Consumed S ervices: P rovide lin k to Servi ce Descrip tion Docum ent for ea ch consume d service.  
  7215   Provided S ervices: G ive servic e design f or each pr ovided ser vice. 
  7216   The inform ation you  provide he re will be  used to u pload to t he ESS Reg istry and  Repository .  At some  point in  the near f uture, we  do not exp ect these  SOA artifa cts such a s SLA, Ser vice Descr iption, et c. to be s tatic docu ments. The y will be  dynamicall y generate d from the  ESS Regis try and Re pository t ool in the  form of r eports. An y applicat ion and se rvice inte gration de sign is al so documen ted here.
  7217   A list of  currently  available  Enterprise  Shared Se rvices is  available  here: <ins ert link t o ESS list >
  7218   Service De scription  for <Consu med Servic e Name>
  7219   Provide li nk to Serv ice Descri ption docu ment for t he consume d service.  This sect ion will r epeat for  each consu med servic e. The Ser vice Descr iption inc ludes Serv ice Interf ace and Se rvice Leve l Definiti on (SLD) t o address  anticipate d capacity  requireme nts.
  7220   Service De sign for < Provided S ervice Nam e>
  7221   This secti on should  describe t he detaile d service  design for  each ESS  and SOA se rvice need ed to obta in an inte nded resul t. The Ser vice Desig n includes  Service I nterface a nd Service  Level Def inition (S LD) to add ress antic ipated cap acity requ irements.
  7222   This secti on will re peat for e ach provid ed service
  7223   Introducti on
  7224   Purpose an d Scope of  Service
  7225   This servi ce was des cribed at  a high lev el in the  charter do cument. Pl ease refer  to it her e via a li nk. 
  7226   Links to O ther Docum ents 
  7227   Provide li nks to oth er documen ts created  for this  service so  far in th e SOA life cycle. At  a minimum,  provide l inks to:
  7228   Service Ch arter
  7229   Service Ro admap
  7230   Service De scription
  7231   Service De tails
  7232   Service Id entificati on
  7233   This secti on will be  written a s a table  to provide  a quick r eference t o the serv ice's what , where, w hy and how  - cheat s heet.
  7234   Service At tribute
  7235   Value
  7236   Name and A lias (if a ny)
  7237   Name of th e service  and other  names for  the servic e, which m ight be us ed by some one search ing for th is service . Please f ollow ESS  naming sta ndards. 
  7238   Overview
  7239   Brief text ual overvi ew of the  service. 
  7240   Version
  7241   Version nu mber of th e service  being desc ribed here
  7242   Latest Sta tus
  7243   This field  shows the  latest st atus for t he above r eferenced  version of  this serv ice! The s tatus of a  service s hows the p rogress of  the servi ce from in itiation t hrough dev elopment,  deployment , and even tual retir ement. The  status al so has a s tatus date  associate d with the  status -  and we wil l be using  the lates t one here  in this d ocument. V alid value s include:  Inception , Design,  Provisioni ng, Certif ication /  Testing, O peration,  Deprecated , Retired,  Rejected  - Owner ha s decided  not to dev elop the s ervice.
  7244   Service Ty pe
  7245   Used to de fine appli cable arch itecture p atterns. E xamples (f rom Open G roup):
  7246   • Interact ion
  7247   • Process
  7248   • Informat ion
  7249   • Partner
  7250   • Business  Applicati on
  7251   • Access
  7252   • Service  Connectivi ty
  7253   Architectu re Layer
  7254   Referred t o as class  in VA Ser vice templ ate. Used  to define  applicable  architect ure patter ns and rel ationships  to govern ing bodies . Examples
  7255   • Solution
  7256   • Process
  7257   • Informat ion
  7258   • Utility
  7259   • Underlyi ng
  7260   Business D omain
  7261   Business V ertical or  Business  Division w here this  service be longs. 
  7262   Service Do main
  7263   The servic e or techn ical domai n that the  service b elongs to.  Can be us ed to esta blish the  namespace.  
  7264   Business O rganizatio n and Owne r
  7265   Person who  approves  this servi ce & any c hanges.  I nclude ema il.
  7266   Technical  Organizati on and Own er
  7267   Person res ponsible f or provisi oning (spe cifying, a cquiring c ertifying)  this serv ice. Inclu de email.
  7268   Developmen t Organiza tion and O wner
  7269   Person who  is respon sible for  the develo pment proc esses and  activities  for this  service. I nclude ema il.
  7270   Support Or ganization  and Owner
  7271   Person who  is respon sible for  the suppor t of this  service wh ile in pro duction. I nclude ema il.
  7272   Target Con sumer Orga nization(s ) and Owne r(s)
  7273   Organizati ons and/or  developer s roles th at service  is intend ed for.
  7274   Service Ve rsions
  7275   Version Nu mbers
  7276   Current St atus of Ve rsion 
  7277   A Brief De scription  of the cha nge implem ented in t hat versio n
  7278   This versi on
  7279   Being Desi gned
  7280  
  7281   Example: v ersion 2
  7282   Example: I n producti on. Will b e retired  with this  release.
  7283   Example: T his releas e added th e ability  to look up  a person  by address
  7284   Provide a  link to ea ch version  of the se rvice.
  7285   Example: v ersion 1
  7286   Example: R etired.
  7287   Example: T his releas e provided  the base  minimum fu nctionalit y to look  up a perso n by name.  
  7288   Provide a  link to ea ch version  of the se rvice.
  7289   Summary of  Design an d Platform  Details 
  7290   SOA Patter n(s) Imple mented
  7291   Name of th e SOA patt ern implem ented – fo r instance , this may  be a Pub/ Sub model.  Just a na me and ref erence to  the docume nt or book  with the  pattern is  sufficien t for popu lar patter ns or VA's  own patte rns. If yo u are usin g some eso teric patt ern, more  details wi ll help.  
  7292   COTS Platf orm vendor  names and  versions  for hostin g platform
  7293   Example, T IBCO.
  7294   Dependenci es
  7295   The Depend ency Model  identifie s other se rvices, sy stems, dat abases, et c. that [S ervice Nam e] is depe ndent upon  or intera cts with t o perform  its functi on.
  7296    This sect ion should  clearly i dentify al l sources  and extern al systems  that are  accessed b y this ser vice to fu lfill the  service co nsumers’ r equest.  T his sectio n should i nclude dia grams to s how as muc h detail a s necessar y to infor m the deve loper. Pro vide a con text diagr am for the  service. 
  7297   Note: Here  our prima ry audienc e includes  the provi ders of th e service.  So this d ocument in  general w ill emphas ize system  component s and sub- systems as  much as e xternal in teractions
  7298   Service De sign Detai ls
  7299   The next s ub-section  on Interf ace Techni cal Specs  could be j ust a copy  from the  correspond ing sub-se ction in I nterface s ection in  the Servic e Descript ion Docume nt. Here,  you could  provide mo re detail  necessary  for buildi ng this se rvice but  the interf ace spec n eeds to be  consisten t between  this docum ent and th e Service  Descriptio n Document . This sec tion conta ins all in formation  necessary  to fully d escribe an  interface  published  by this s ervice... 
  7300   Interface  Technical  Specs
  7301   The techni cal specif ication al lows devel opers of s ervice con sumers to  locate and  discover  the servic e for run  time consu mption. 
  7302   Service In vocation T ype 
  7303   Such as: S OAP over H TTP, REST.  
  7304   Service In terface Ty pe 
  7305   Such as: W SDL via We b Service  2.0
  7306   Service Na me
  7307   Technical  Service Na me. Comply  with ESS  naming sta ndards. 
  7308   Interface
  7309   Link to WS DL or othe r interfac e document .
  7310   End Points
  7311   Provide if  known! Ca lls that c an be made  into the  service. C an be refe renced to  the WSDL o r can be i n a separa te table.   
  7312   Operations  or Method s
  7313   In the tab le below,  the techni cal names  of the ope rations, i nputs and  outputs ar e used. In puts and o utputs, if  parameter s, must ha ve a data  type. 
  7314   Non-primit ive data t ypes must  be defined  in the Se rvice Info rmation Mo del sectio n. 
  7315   This table  could be  generated  automatica lly from t he WSDL co ntent or i ts equival ent.
  7316   Style can  take any o f these va lues: Para meters or  Document;  and One-wa y or Reque st-respons e or Solic it-respons e or Notif ication. 
  7317   Use a sepa rate colum n for the  operation  purpose if  you wish.
  7318   You might  use abbrev iations in  the Fault s column a nd explain  the abbre viations u sed below  the table.  For examp le, NF = N ot Found,  MI = Missi ng Input.
  7319   Operation  Name
  7320   Inputs
  7321   Outputs
  7322   Transactio nal Qualit ies if rel evant (Upd ating?, At omic?, Can  participa te in tran saction?)
  7323   Pre and Po st Conditi ons
  7324   Exception  (s)
  7325  
  7326  
  7327  
  7328  
  7329  
  7330  
  7331  
  7332  
  7333  
  7334  
  7335  
  7336  
  7337   Provide a  link to th e Service  Informatio n model so  that the  consumer o f your sys tem knows  the schema  for the i nput and o utput para meters. 
  7338   Message Sc hemas
  7339   Provide de finitions  or links t o definiti ons of the  message(s ) related  to the ser vice opera tions.  Th ese may be  dependent  on the im plementati on style a nd protoco l binding  of the int erface.
  7340   Informatio n Model
  7341   Even thoug h this sec tion looks  similar t o the corr esponding  section 3. 2 in Servi ce Descrip tion, reme mber that  the primar y objectiv e here is  to facilit ate constr uction and  to gain a pprovals f rom govern ing bodies . So you w ill provid e more of  a “white b ox” view o f the desi gn here to  help your  developer s code the  service. 
  7342   Class Diag ram and De scription  of Entitie s Involved
  7343   Map out al l entities  involved  in the ser vice: inpu t, output,  exception s, entitie s manipula ted in per sistent me dia/DBs, i ntermediat e entities  created i n memory e tc.
  7344   Mappings f rom ELDM t o Standard s Based Sc hemas
  7345   Provide ma ppings fro m your nat ive schema  to any st andards ba sed schema s your ser vice will  use to com municate o utside. Fo r instance , if you a re using H L7 based m essages th en you wil l show how  data is c onverted f rom your n ative sche ma to HL7.  
  7346   Behavior M odel (AKA  Use Case R ealization )
  7347   The Behavi or Model d efines the  actions a nd process es support ed by the  service.   Actions an d methods  represente d in the u se cases a nd sequenc e diagrams  shown bel ow are fur ther defin ed by the  operation  contracts  and the me ssage payl oads.
  7348   Use Cases  (Use Case  Model)
  7349   Describe h ow this se rvice fits  into the  larger use  case mode l of the c onsumer. Y ou may nee d multiple  models fo r multiple  consumers . Focus is  not on th e internal  workings  of the new  service i nstead of  the calls  made from  external c onsumers.  Just a sum mary or th e Use Case  Diagram m ay be suff icient.  L ist the al ternative  and except ion flows.  Reference  the detai led design  documents  via a URL
  7350   Interactio n Diagrams  
  7351   Cut and pa ste screen  shot from  RSA or si milar tool  or provid e link to  the model.  Provide d escription  to help d evelopers  build your  service.  The intera ction diag rams shoul d depict e xternal in teractions  and inter nal sequen ces of cal ls between  internal  components . The sequ ence diagr am should  cut throug h all laye rs to show  the main,  alternate  and excep tion flows
  7352   Gap Analys is
  7353   Provide a  Gap Analys is (Refere nce) to de monstrate  compliance  of this s ervice wit h various  standards,  policies,  guideline s and laws . The Gap  Analysis m ay take th e form of  a matrix a s shown in  the sampl e below. T his will h elp the go vernance b oards expe dite your  request.
  7354   Design Ele ments
  7355   Policies /  SLD eleme nts etc.↓
  7356   Design 
  7357   Element A
  7358   Design 
  7359   Element B
  7360   Design 
  7361   Element C
  7362   Comment fo r non-conf ormance
  7363   Policy X
  7364   Match
  7365  
  7366  
  7367  
  7368   Policy Y
  7369  
  7370   Partial
  7371  
  7372  
  7373   Policy Z
  7374  
  7375  
  7376  
  7377   Commercial  encryptio n server i n prod wil l have to  address th is policy.  
  7378   Policy A
  7379  
  7380  
  7381  
  7382   Compliance  with this  policy no t required  until nex t year. 
  7383   New / Addi tional Fea tures 
  7384  
  7385  
  7386   New elemen t minimize s manual i nterventio n
  7387  
  7388   Variances  from Enter prise Targ et Archite cture 
  7389   This list  of “varian ces” will  become a s ubmission  to the ESS  dispensat ion proces s. 
  7390   Variances  from SLDs
  7391   This list  of “varian ces” will  become a s ubmission  to the ESS  dispensat ion proces s. 
  7392   Variances  from Stand ards and P olicies
  7393    This list  of “varia nces” will  become a  submission  to the ES S dispensa tion proce ss. 
  7394   Justificat ion for Ex ceptions a nd Mitigat ion
  7395   This secti on will li st out any  non-funct ional and  functional  requireme nts that a re not bei ng met. Th e non-conf ormance ma y be in vi olation of  elements  of SLDs, e nterprise  architectu re (TRM Te chnology R eference M odel), pri vacy polic ies or gui delines. F or each ex ception pr ovide:
  7396   Reasons fo r non-conf ormance (c ost, time,  technolog y, etc.)
  7397   Mitigating  actions t aken to re duce the i mpact of n on-conform ance
  7398   Plan (road map) to co me back in to conform ance 
  7399   This list  can grow d epending o n what the  Review bo dies may a sk for. 
  7400   External S ystem Inte rface Desi gn
  7401   This secti on details  interface s external  to system , that are  NOT servi ces (ESS/S OA). Typic ally, thes e may incl ude, RPCs,  Flat Data  Files etc .
  7402   External s ystems are  systems t hat are no t within t he scope o f the syst em under d evelopment , regardle ss of whet her the ot her system s are mana ged by the  vendor or  its clien t. 
  7403   In this se ction, des cribe the  interface( s) between  the syste m under de velopment  (i.e., the  system th at is the  subject of  this SDD)  and exter nal system s and/or s ubsystem(s ). 
  7404   It is best  to illust rate these  sections  with annot ated diagr ams to cle arly ident ify the va rious elem ents of th e interfac es.
  7405   Interface  Architectu re 
  7406   Describe t he interfa ce(s) betw een the sy stem being  designed  and other  systems. I nclude the  interface  architect ure(s) bei ng impleme nted, such  as wide a rea networ ks, gatewa ys, etc. P rovide dia grams show ing the co mmunicatio ns path(s)  between t his system  and other  systems.
  7407   Interface  Detailed D esign
  7408   Provide su fficient d etail abou t the inte rface requ irements f or the dev elopment t eam to for mat, trans mit, and/o r receive  data acros s the inte rface.
  7409   Include th e followin g informat ion (as ap propriate)
  7410   Data forma t requirem ents; if d ata must b e reformat ted before  it is tra nsmitted o r after in coming dat a is recei ved. Descr ibe the to ols and/or  methods f or the ref ormat proc ess.
  7411   Specificat ions for h and-shakin g protocol s between  systems; c ontent and  format of  hand-shak e messages , timing f or exchang ing these  messages,  and errors  handling.
  7412   Format(s)  for report s exchange d between  the system s.
  7413   Graphical  representa tion of th e connecti vity betwe en systems , showing  the direct ion of dat a flow. 
  7414   Query and  response d escription s.
  7415   Describe t he individ ual data e lements th at the int erfacing e ntity(s) w ill provid e, store,  send, acce ss, and re ceive, suc h as:
  7416   Names/iden tifiers
  7417   Data Eleme nt Name
  7418   Data Forma t/Length
  7419   Data Type
  7420   Definition
  7421   Non-Techni cal Name
  7422   Non-Techni cal Synony ms
  7423   Specificat ions
  7424   Synonyms
  7425   Range or e numeration  of possib le values  (e.g., 0-9 9)
  7426   Accuracy a nd precisi on (number  of signif icant digi ts)
  7427   Priority,  timing, fr equency, s equencing,  and other  constrain ts
  7428   Security a nd privacy  constrain ts
  7429   Sources (s etting/sen ding entit ies) and r ecipients  (using/rec eiving ent ities).
  7430   Describe t he data el ement asse mblies (re cords, mes sages, fil es etc.) t hat the in terfacing  entity(s)  will provi de, store,  and send,  such as:
  7431   Names/iden tifiers
  7432   Technical  Name, e.g. , data str ucture nam e
  7433   Non-techni cal Names,  e.g. syno nyms
  7434   Data eleme nts
  7435   Medium/str ucture of  data eleme nts/assemb lies
  7436   Visual cha racteristi cs (e.g. l ayouts, fo nts, icons  etc.)
  7437   Relationsh ips among  assemblies
  7438   Security a nd privacy  constrain ts
  7439   Sources an d recipien ts.
  7440   Describe t he communi cation met hods that  the interf acing enti ty(s) will  use for t he interfa ce, such a s:
  7441   Communicat ion links,  bands, fr equencies,  and media
  7442   Message fo rmatting
  7443   Flow contr ol (e.g. s equence nu mbering)
  7444   Data trans fer rate
  7445   Routing
  7446   Transmissi on service s
  7447   Safety
  7448   Security a nd privacy  considera tions.
  7449   Describe c haracteris tics of th e protocol s that the  interfaci ng entity( s) will us e for the  interface,  such as:
  7450   Priority/l ayer of th e protocol
  7451   Packeting
  7452   Legality c hecks, err or control  
  7453   Recovery p rocedures
  7454   Synchroniz ation
  7455   Status, id entificati on, and ot her report ing featur es.
  7456   Where appr opriate de scribe oth er charact eristics,  such as ph ysical com patibility  of the in terfacing  entity(s)  (dimension s, toleran ces, loads , voltages , plug com patibility , etc.)
  7457    Human-Mac hine Inter face
  7458   Describe t he human-m achine int erface (i. e., GUI) r elative to  the user.  Additiona l informat ion may be  added if  the sugges ted headin gs are ina dequate.
  7459   Interface  Design Rul es
  7460   Identify c onventions  and stand ards for d esigning t he GUI.
  7461   Inputs
  7462   Identify t he input m edia used  by the use r (i.e., o perator) f or providi ng informa tion to th e system,  such as da ta entry s creens, op tical char acter read ers, bar s canners, e tc. 
  7463   Identify t he message s associat ed with op erator inp uts, inclu ding the f ollowing:
  7464   Form(s) if  the input  data is k eyed or sc anned for  data entry
  7465   Access res trictions
  7466   Security c onsiderati ons.
  7467   Outputs
  7468   Describe t he system  output des ign relati ve to the  user. Syst em outputs  include r eports, da ta display  screens,  query resu lts, etc.
  7469   Identify t he followi ng, if app ropriate: 
  7470   Access res trictions  or securit y consider ations
  7471   Descriptio n of the p urpose of  the output
  7472   Report req uirements,  including  frequency  of period ic reports
  7473   Screen con tents. (Pr ovide a gr aphic repr esentation  of each l ayout. Def ine all da ta element s associat ed with th e layout).
  7474   Navigation  Hierarchy
  7475   Provide a  diagram of  the navig ation hier archy that  shows how  a user mo ves throug h the GUI.
  7476   Screen [x. 1]
  7477   Provide th e layout o f all inpu t data scr eens or GU Is. Provid e a graphi c represen tation of  each GUI,  for exampl e, a low-r esolution  screenshot . Define a ll data el ements ass ociated wi th each sc reen or GU I, or refe rence the  data dicti onary. Lab el each da ta input s creen and/ or GUI.
  7478   Screen [x. 2]
  7479   Provide a  graphic re presentati on of each  GUI, for  example, a  low-resol ution scre enshot. De fine all d ata elemen ts associa ted with e ach screen  or GUI, o r referenc e the data  dictionar y. 
  7480   Screen [x. 3]
  7481   Provide a  graphic re presentati on of each  GUI, for  example, a  low-resol ution scre enshot. De fine all d ata elemen ts associa ted with e ach screen  or GUI, o r referenc e the data  dictionar y. 
  7482    Attachmen t A – Appr oval Signa tures
  7483   This secti on is used  to docume nt the app roval of t he System  Design Doc ument. The  review sh ould be co nducted fa ce to face  where sig natures ca n be obtai ned ‘live’  during th e review.  If unable  to conduct  a face-to -face meet ing then i t should b e held via  LiveMeeti ng and con currence c aptured du ring the m eeting. Th e Scribe s hould add  /es/name b y each pos ition cite d. Example  provided  below.
  7484   The Busine ss Sponsor  and Proje ct Manager  are requi red to sig n.
  7485  
  7486   __________ __________ __________ __________ __________ __________ __________ ________
  7487   Signed:Dat e: 
  7488   < Business  Sponsor >
  7489  
  7490   __________ __________ __________ __________ __________ __________ __________ ________
  7491   Signed:Dat e: 
  7492   < Project  Manager >
  7493  
  7494  
  7495   Additional  Informati on 
  7496   Attach any  addition  informatio n that sup plements t he design  specificat ion.
  7497   Identifica tion of Te chnology a nd Standar ds
  7498   Identify t he system  and softwa re which a pply to th e SDD, inc luding: id entificati on number( s), title( s), abbrev iation(s),  version n umber(s),  and releas e number(s ). Identif y all stan dards (e.g ., America n National  Standards  Institute  [ANSI], I nternation al Organiz ation for  Standardiz ation [ISO ], Institu te of Elec trical and  Electroni cs Enginee rs [IEEE],  etc.).
  7499   Constraini ng Policie s, Directi ves and Pr ocedures
  7500   Identify a ny constra ints or re quirements  placed on  this docu ment by po licies, di rectives,  or procedu res.
  7501   Requiremen ts Traceab ility Matr ix
  7502   Include an  RTM that  traces mod ules and d ata struct ures to th e software  requireme nts. A ref erence to  the locati on of the  RTM is als o acceptab le.
  7503   Packaging  and Instal lation
  7504   Outline an y special  considerat ions for s oftware pa ckaging an d installa tion.
  7505   Design Met rics
  7506   Describe a ll metrics  to be use d during t he design  activity.
  7507  
  7508  
  7509   Template R evision Hi story
  7510   Date
  7511   Version
  7512   Descriptio n
  7513   Author
  7514   June 2015
  7515   2.10
  7516   Changed He ading 1 de fault sett ing to eli minate pag e break be fore
  7517   Process Ma nagement
  7518   May 2015
  7519   2.9
  7520   Edited for  Section 5 08 conform ance and r emediated  with Commo n Look Off ice tool
  7521   Process Ma nagement
  7522   February 2 015
  7523   2.8
  7524   Incorporat es revisio ns from PM AS Reform  Lockdown;  namely rem oving requ irements f or informa tion that  can be obt ained from  other PMA S authorit ative sour ces.
  7525   Andrew Sla wter, Offi ce of Tech nology Str ategies
  7526   September  2014
  7527   2.7
  7528   Adds Enter prise Shar ed Service s terms an d requires  AERB Comp liance Cer tificate a ttachment.
  7529   Process Ma nagement
  7530   August 201 4
  7531   2.6
  7532   Signature  block upda te authori zed by AER B  CR_0189 34
  7533   Process Ma nagement
  7534   March 2014
  7535   2.5
  7536   Section 50 8 repairs  to new ver sion appro ved by AER B Chair ap proved 
  7537   Process Ma nagement
  7538   August 201 3
  7539   2.3
  7540   Replaced t he Service  Architect ure sub-se ction with  new sub-s ections fo r consumed  and provi ded servic es. Also a pplied mis cellaneous  feedback  from VA te am. 
  7541   ASD Enterp rise Share d Services  (ESS) Wor k Group
  7542   June 2013
  7543   1.3
  7544   Upgraded t o MS Offic e 2007-201 0 format 
  7545   Process Ma nagement
  7546   June 2013
  7547   1.2
  7548   Address in consistenc ies in Sec tion 3, Co nceptual D esign, Cor rect headi ngs 
  7549   Process Ma nagement
  7550   March 2013
  7551   1.1
  7552   Formatted  to documen tation sta ndards and  edited fo r Section  508 confor mance
  7553   Process Ma nagement
  7554   January 20 13
  7555   1.0
  7556   Initial Do cument
  7557   PMAS Busin ess Office
  7558   Place late st revisio ns at top  of table.
  7559   The Templa te Revisio n History  pertains o nly to the  format of  the templ ate. It do es not app ly to the  content of  the docum ent or any  changes o r updates  to the con tent of th e document  after dis tribution.
  7560   The Templa te Revisio n History  can be rem oved at th e discreti on of the  author of  the docume nt.
  7561   Remove bla nk rows.
  7562  
  7563  
  7564   See TOGAF®  9.1, Part  III: ADM  Guidelines  & Techniq ues, Gap A nalysis on  TOGAF web site at ht tp://pubs. opengroup. org/archit ecture/tog af9-doc/ar ch/chap27. html