3. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 2/5/2019 9:43:56 AM Central 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.

3.1 Files compared

# Location File Last Modified
1 EPIP_MC_GMTS_IP25_TV3.zip\EPIP_MC_GMTS_IP25_TV3 EPIP_Remediation_Plan_(MC_2.3_48_GMTS_2.7_123).doc Mon Feb 4 12:43:52 2019 UTC
2 EPIP_MC_GMTS_IP25_TV3.zip\EPIP_MC_GMTS_IP25_TV3 EPIP_Remediation_Plan_(MC_2.3_48_GMTS_2.7_123).doc Tue Feb 5 13:08:34 2019 UTC

3.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 4 1452
Changed 3 6
Inserted 0 0
Removed 0 0

3.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

3.4 Active regular expressions

No regular expressions were active.

3.5 Comparison detail

  1   EPIP_Remed iation_Pla n_(MC_2.3_ 48,_GMTS_2 .7_123)Exi sting Prod uct Intake  Program ( EPIP)
  2   MC*2.3*48  and GMTS*2 .7*123
  3   Remediatio n Plan
  4  
  5   Department  of Vetera ns Affairs
  6   January 20 19
  7   Version 2. 0
  8   Revision H istory
  9   DateVersio nDescripti onAuthor01 /22/20192. 0Updates t hroughoutE PIP Projec t Team10/1 3/20171.0I nitial (dr aft) versi onEPIP Pro ject TeamT able of Co ntents
  10   11.
  11   Introducti on
  12  
  13  
  14   12.
  15   Purpose
  16  
  17  
  18   13.
  19   Patch Desc ription
  20  
  21  
  22   33.1.
  23   Business E pics and S ub-Epics
  24  
  25  
  26   34.
  27   Points of  Contact
  28  
  29  
  30   35.
  31   Code Remed iation
  32  
  33  
  34   35.1.
  35   Standards  and Conven tions
  36  
  37  
  38   35.2.
  39   Review and  Analysis
  40  
  41  
  42   45.3.
  43   Coding Cha nges
  44  
  45  
  46   46.
  47   Testing
  48  
  49  
  50   46.1.
  51   Test Plan
  52  
  53  
  54   46.2.
  55   Test Envir onment
  56  
  57  
  58   46.3.
  59   Test Readi ness Revie w
  60  
  61  
  62   56.4.
  63   Testing Ph ases
  64  
  65  
  66   56.4.1.
  67   Unit Testi ng
  68  
  69  
  70   56.4.2.
  71   Component  Integratio n and Syst ems Testin g (CI/ST)
  72  
  73  
  74   56.4.3.
  75   Functional  Testing
  76  
  77  
  78   56.4.4.
  79   Regression  Testing
  80  
  81  
  82   56.4.5.
  83   Section 50 8 Complian ce Testing
  84  
  85  
  86   57.
  87   Documentat ion Remedi ation
  88  
  89  
  90   67.1.
  91   User Guide s
  92  
  93  
  94   67.2.
  95   Installati on Guides
  96  
  97  
  98   67.3.
  99   Technical  Manuals
  100  
  101  
  102   67.4.
  103   Operations  Manuals
  104  
  105  
  106   68.
  107   Project Re porting
  108  
  109  
  110   69.
  111   Project Sc hedule
  112  
  113  
  114   610.
  115   Deployment
  116  
  117  
  118   711.
  119   Sustainmen t Requirem ents
  120  
  121  
  122   712.
  123   Maintenanc e and Know ledge Tran sfer
  124  
  125  
  126   8Appendix  A:
  127   XINDEX Lis ting for M UMPS Code  Changes
  128  
  129  
  130   9Appendix  B:
  131   Source Cod e Changes
  132  
  133  
  134  
  135  
  136   Introducti on
  137   The Depart ment of Ve terans Aff airs (VA)  currently  utilizes t he Veteran s Health I nformation  Systems a nd Technol ogy Archit ecture (Vi stA) suite  of applic ations to  provide cl inical, fi nancial, i nfrastruct ure, and m anagement  tools. The  process o f advancin g “Class 3 ” field-de veloped Vi stA softwa re to “Cla ss 1” nati onally-dis tributed s tatus is r eferred to  as the Ex isting Pro duct Intak e Program  (EPIP). Th e VA’s goa l is to su pplement o ngoing act ivities as sociated w ith evalua ting and a dvancing f ield-devel oped softw are to a s tate that  meets nati onal stand ards and f acilitates  release f or Veteran s Health A dministrat ion (VHA)- wide use.
  138   Purpose
  139   The purpos e of this  document i s to fully  describe  the remedi ation plan  to be use d for the  successful  remediati on of the  intake pro duct code  to be depl oyed as MC *2.3*48 an d GMTS*2.7 *123. Both  patches a ddress the  following  NSR:
  140   NSR2017060 7 Create P CE Entry f or EKG
  141   This NSR h as been im plemented  locally at  the VA Me dical Cent er in Milw aukee WI.
  142   This docum ent addres ses the sc hedule, co de remedia tion, test ing, docum entation,  and delive ry of this  remediati on effort.
  143   Patch Desc ription
  144   MC*2.3*48  automatica lly adds a  Patient C are Encoun ter (PCE)  entry in V istA after  an electr ocardiogra m (EKG) re ading is v erified in  the MUSE  web servic e. Current ly, staff  cardiologi sts must m anually en ter the in formation  from each  EKG readin g, which i s time con suming and  prone to  data error s and omis sions.
  145   To create  the automa ted PCE en try, each  EKG cart i s assigned  a unique  identifier  to design ate an inp atient or  outpatient  location.  After an  EKG is per formed, tr ansmitted  to MUSE, a nd manuall y confirme d by the c ardiologis t, MUSE ge nerates a  Health Lin k 7 (HL7)  message th at include s the card iologist's  identific ation, the  EKG locat ion, date/ time of th e EKG, and  patient i dentificat ion. This  data is au tomaticall y filed in  the ELECT ROCARDIOGR AM (EKG) f ile (#691. 5) and the  visit is  created in  the VISIT  file (#90 00010). If  the EKG d ata is not  successfu lly transf erred to a  PCE, a Ma il Alert i s sent to  the MCM4 M USE mail g roup.
  146   Note: Info rmation Re source Man agement (I RM) staff  can view v isits in t he PCE Enc ounter Vie wer [PXCE  ENCOUNTER  VIEWER] op tion in th e PCE Coor dinator Me nu [PX PCE  COORDINAT OR MENU].  Visits do  not displa y in the P CE Clinici an Menu [P X PCE CLIN ICIAN MENU ] to preve nt the edi ting of th e transmit ted data. 
  147   The new op tion Set X PAR Values  for EKG/M USE [MCM4  XPAR] in t he existin g ECG Menu  [MCARECG]  option is  used to c onfigure t he five ne w XPAR MUS E system-l evel param eters used  to pass t he EKG dat a from MUS E to a PCE . The MCM4  MUSE para meter temp late calls  the five  parameters
  148   The MCM4 M USE INTERF ACE STATUS  parameter  in the PA RAMETER DE FINITION f ile (#8989 .51) is us ed to turn  the funct ionality O n/Off. Ini tially, th is paramet er is set  to OFF (No ). 
  149   The MCM4 M USE STD IN PATIENT LO C paramete r is used  to set the  default i npatient l ocation.
  150   The MCM4 M USE DEFAUL T OUTPT LO C paramete r maps the  default o utpatient  location.
  151   The MCM4 M USE LOC ID  parameter  is used t o define t he EKG car t number(s ) that ide ntify the  MUSE locat ion(s). 
  152   The MCM4 M USE LOC IN PATIENT OO S paramete r is used  to set the  inpatient  Occasion  of Service  (OOS) loc ation. 
  153   The patch  also adds  two new op tions that  generate  reports th at can be  printed to  a Cardiol ogy depart ment print er. Both o f these re ports are  configured  in Taskma n. It is r ecommended  that thes e reports  be run wee kly, but t he site ca n set the  schedule t o meet its  needs. Th e EKG Acti on Require d Report [ MCM4 EKG O UTPATIENT  ENC] optio n creates  a report l isting out patients w ith a stat us of “ACT ION REQUIR ED” in the  OUTPATIEN T ENCOUNTE R file (#4 09.68). Th e EKG Acti on Require d Report i s generate d using th e new prin t template  MC EKG AC TION REQ a nd the new  sort temp late MC EK G ACTION R EQ. The so rt templat e must be  set up usi ng the Tem plate Edit  option in  the FileM an Utility  Functions  menu [DIU TILITY] to  establish  the clini c that wil l be used  for this r eport. The  Missing E KG Report  Interprete d By [MCM4  MISSING E KG REPORT]  option cr eates a re port listi ng the pat ient recor ds that ne ed a physi cian name  to be ente red in the  INTERPRET ED BY fiel d (#12) in  the ELECT ROCARDIOGR AM (EKG) f ile (#691. 5). The Mi ssing EKG  Report Int erpreted B y report i s generate d using th e new prin t template  MC MISSIN G INTERPRE TED BY and  the new s ort templa te MC MISS ING INTERP RETED BY.
  154   GMTS*2.7*1 23 creates  the new H ealth Summ ary Object  "EKG (LAS T) (TIU)"  that can b e used to  display da ta in the  CPRS Notes  tab when  creating a  TIU Objec t. The EKG  (LAST) (T IU) Object  displays  the follow ing patien t data fro m the Medi cine Packa ge ELECTRO CARDIOGRAM  (EKG) fil e (#691.5) : the Proc edure Date /Time, Pro cedure Nam e, Report  Summary, a nd Auto-In strument D iagnosis.  The HEALTH  SUMMARY O BJECTS fil e (#142.5)  contains  a new Heal th Summary  Type call ed OBJ EKG  (LAST), w hich was c reated by  filing a r ecord name d OBJ EKG  (LAST) int o the HEAL TH SUMMARY  TYPE file  (#142). T he Health  Summary Ty pe uses th e new Heal th Summary  Component  "EKG" in  the HEALTH  SUMMARY C OMPONENT f ile (#142. 1) to call  the VistA  routine G MTSKGHS to  display t he data wh en the TIU  Object is  created.
  155   The post-i nstallatio n routine  GMTSP123 c reates the  new EKG H ealth Summ ary Compon ent at IEN =263. If t his IEN is  already i n use, the  system wi ll notify  the instal ler to mov e the conf licting Co mponent to  another I EN and the n reinstal l.
  156   Business E pics and S ub-Epics
  157   The Busine ss Epics a nd Sub-Epi cs for the  NSR addre ssed in th is remedia tion are:
  158   NSR2017060 7 Create P CE Entry f or EKG
  159   BUSINESS E PIC 910885 : Create P CE Entry f or EKG – F or EKG Sta ff who per form EKGs,  a process  is needed  to effici ently and  accurately  capture E KG workloa d that lev erages tec hnology to  automate  the proces s of docum enting EKG  procedure s performe d. Unlike  current pr ocess cons isting of  many time  consuming  manual ste ps that ru n the risk  not being  performed  resulting  in loss o f reportab le EKG pro cedures be ing perfor med and th ereby nega tively aff ecting bud gets and s taffing, o ur process  leverages  technolog y to ensur e that all  EKG proce dures are  documented  thereby s trengtheni ng the fou ndational  services i n VA, enab ling VA to  provide t imely and  high quali ty care to  our Veter an patient s while pr omoting op erational  efficiency .
  160   Points of  Contact
  161   The VA Poi nt of Cont act (POC)  for NSR201 70607 Crea te PCE Ent ry for EKG  is Greg C zajka  PII                   ),  PII
  162   Code Remed iation
  163   Leidos wil l review a nd analyze  the intak e product  code for c ompliance  with codin g standard s, pointer s, shared  tables, de pendencies , and any  interferen ce with Vi stA system s.
  164   Standards  and Conven tions
  165   Leidos wil l referenc e the http ://go. DNS     /sacc webs ite for ap plicable d ocuments a nd will ad here to VA  standards  to comple te the ana lysis of t his intake  product.  The output  of the VA  XINDEX ut ility will  be used t o analyze  the MUMPS  source cod e and docu ment the a ffected ro utines (se e Appendix  A).
  166   The MUMPS  coding sta ndards web site http: //71.174.6 2.16/Demo/ AnnoStd wi ll also be  used to e nsure that  the remed iated code  conforms  to VA stan dards.
  167   Review and  Analysis
  168   Review and  analysis  of this in take produ ct involve s two part s: 1) veri fication t hat the so urce code  changes sp ecified in  this docu ment provi de the des ired effec t, and 2)  verificati on that th e source c ode change s do not a dversely a ffect any  other Vist A or CPRS  functional ity. 
  169   Testing wi ll be perf ormed to v alidate th at the int ended effe ct of thes e products  is implem ented, and  that no o ther VistA  or CPRS G raphical U ser Interf ace (GUI)  functional ity is adv ersely aff ected. 
  170   Coding Cha nges
  171   The coding  changes r equired fo r NSR20170 607 Create  PCE Entry  for EKG a re in the  following  routines: 
  172   Modified M UMPS routi nes: MCAR7 M1
  173   New MUMPS  routines:  MCM4MC3, G MTSKGHS, G MTSP123 (p ost-instal l routine)
  174   Testing
  175   Leidos wil l perform  all testin g-related  activities  to ensure  that the  remediated  code meet s the expe ctations o f the VA b usiness ow ner.
  176   Test Plan
  177   Leidos wil l configur e the test  environme nt, provid e code mod ifications  and end-t o-end test ing, and d eliver app licable te sting docu mentation,  following  Veteran-f ocused Int egration P rocess (VI P) guideli nes.
  178   The Leidos  developer  will modi fy the sof tware purs uant to th e VA stand ards defin ed in the  Standards  and Conven tions sect ion of thi s document , and will  conduct f ull unit t esting of  the functi onality an d verify p erformance  of all so ftware cod e before i t is relea sed to Lei dos SQA. S QA will th en perform  all appli cable test ing types  as describ ed in the  Testing Ph ases secti on of this  document.  The devel oper and S QA will re solve prob lems and a ddress iss ues as the y arise du ring testi ng and wil l document  issues us ing the Ra tional Tea m Concert  (RTC) defe ct trackin g tool.
  179   Test Envir onment
  180   Within fiv e working  days of ap proval of  this Remed iation Pla n, the dev eloper wil l configur e the deve lopment/te st environ ment on an  Austin In formation  Technology  Center (A ITC) serve r or other  VA-approv ed develop ment/test  environmen t used for  this inta ke product  and insta ll the rem ediated Ke rnel Insta llation an d Distribu tion Syste m (KIDS) b uild or ho st file. T he environ ment will  be restore d to its o riginal ba seline sta te by the  VistA syst em adminis trator aft er develop ment testi ng is comp leted, fol lowed by i nstallatio n of the r emediated  software.
  181   Upon notif ication fr om the dev eloper of  test envir onment rea diness, SQ A will com mence with  planned t esting act ivities. T he SQA tes t executio n and repo rting docu mentation  will resid e in the R ational Qu ality Mana ger (QM) “ EPIP” Proj ect. In or der to per form testi ng of this  VistA mod ification,  the follo wing tools  will be l everaged:  Rational Q M, Reflect ions emula tor, CPRS  GUI v31A ( 1.0.31.116 ), and Sna gIt.
  182   Test Readi ness Revie w
  183   Leidos wil l conduct  a Test Rea diness Rev iew (TRR)  at the con clusion of  unit test ing to ver ify the co ntents of  the softwa re to be t ested, the  test sche dule, test  environme nts, test  participan ts, and as sociated l ogistics.  Leidos wil l provide  an agenda  prior to t he TRR and  written m inutes aft er complet ion of the  TRR, in a ccordance  with the P erformance  Work Stat ement (PWS ).
  184   Testing Ph ases
  185   Leidos wil l perform  developmen t and SQA  testing ac tivities i n phases,  and will p rovide all  required  testing do cumentatio n.
  186   Unit Testi ng
  187   The develo per will c onduct uni t testing  of individ ual units  of source  code to de termine if  they are  fit for us e. 
  188   Component  Integratio n and Syst ems Testin g (CI/ST)
  189   Component  Integratio n and Syst ems testin g will be  conducted  by SQA to  ensure tha t connecti vity to th e VistA ap plication  exists and  is functi oning norm ally. SQA  will recor d Passed/F ailed outc omes and c apture dis played con tent to do cument the  system te sting effo rt.
  190   Functional  Testing
  191   Functional  testing w ill be per formed by  SQA to tes t the code  modificat ions. This  testing w ill ensure  that the  software f unctionali ty is in a lignment w ith the Go vernment F urnished I nformation . SQA will  record Pa ssed/Faile d outcomes  and captu re display ed content  to docume nt the fun ctional te sting effo rt. 
  192   Regression  Testing
  193   Regression  testing w ill be per formed by  SQA to ens ure that t he remedia ted code d oes not in troduce er rors to ex isting fun ctionality . The regr ession tes t framewor k will be  kept up-to -date with  manual te st cases a nd test sc ripts defi ning the i nputs and  expected o utcomes. S QA will re cord Passe d/Failed o utcomes an d capture  displayed  content to  document  the regres sion testi ng effort.  
  194   Section 50 8 Complian ce Testing
  195   Section 50 8 testing  will be pe rformed on  VistA and  CPRS code  when new  user inter face chang es are int roduced by  the devel oper. The  VA-recomme nded Assis tive Techn ology tool , JAWS, wi ll be used  to conduc t the 508  testing. T est result s and rela ted docume ntation wi ll be subm itted to t he VA Sect ion 508 te am in acco rdance wit h the VA 5 08 testing  requireme nts. Defec ts found d uring test ing will b e assessed  and remed iated by t he develop er.
  196   Documentat ion Remedi ation
  197   Leidos wil l review e xisting VA  documenta tion for p ossible im pact as a  result of  this remed iation eff ort, and w ill make u pdates whe re applica ble.
  198   To determi ne the exi sting VA d ocumentati on that re quires mod ification,  Leidos wi ll conduct  a thoroug h review o f the docu ments curr ently avai lable from  the VA So ftware Doc ument Libr ary (VDL)  located at  http://ww w. DNS     /vdl/. Key word searc hes using  terms rele vant to th is remedia tion effor t will be  used to id entify doc uments tha t might be  impacted;  those doc uments wil l then be  reviewed i n their en tirety for  any neede d revision s.
  199   The follow ing sectio ns outline  the VDL d ocuments t o be revis ed for thi s remediat ion.
  200   User Guide s
  201   The follow ing User G uides will  be update d in the V DL:
  202   Medicine U ser Manual
  203   Health Sum mary User  Manual
  204   Installati on Guides
  205   The Nation al Patch M odule Patc h Descript ion docume nt for thi s remediat ion will p rovide the  procedure  for insta lling the  KIDS build  or host f ile into t he VA Pre- Production  environme nts. There fore, no I nstallatio n Guides w ill be upd ated.
  206   Technical  Manuals
  207   The follow ing Techni cal Manual s will be  updated in  the VDL:
  208   Medicine T echnical M anual
  209   Health Sum mary Techn ical Manua l
  210   Operations  Manuals
  211   No Operati ons Manual s require  revision a s a result  of this m odificatio n.
  212   Project Re porting
  213   Leidos wil l provide  interim pr ogress upd ates durin g daily Sc rum calls  and weekly  managemen t calls wi th VA repr esentative s. 
  214   Project Sc hedule
  215   Leidos wil l follow t he Scrum A gile metho dology for  software  developmen t. It is a nticipated  that this  patch wil l require  five 2-wee k sprints.  
  216   Deployment
  217   Leidos wil l create a  KIDS buil d or host  file conta ining the  software c hanges nec essary to  fulfill th e requirem ents for t his remedi ation effo rt. The ne w build or  host file , along wi th all rel ated docum entation,  will be de livered to  the Contr acting Off ice Repres entative ( COR) for a cceptance.  If accept ed, these  deliverabl es can the n be relea sed for na tional VA  consumptio n; otherwi se, Leidos  will corr ect any de fects foun d and repe at the nec essary rem ediation a ctivities.
  218   Sustainmen t Requirem ents
  219   Leidos wil l provide  maintenanc e support  for 90 day s to the V A to suppo rt the fin al Class 1  product a fter it is  nationall y released .  
  220   Maintenanc e and Know ledge Tran sfer
  221   To facilit ate contin uous proce ss improve ment, Leid os will de liver Spri nt Review  and Retros pective sl ides and a  Lessons L earned Rep ort to VA  upon compl etion of t he final s print.
  222   XINDEX Lis ting for M UMPS Code  Changes
  223   The XINDEX  tool is t he standar d tool use d by the V A to analy ze MUMPS s ource code . Followin g is a lis ting of th e results  of the XIN DEX analys is of the  affected r outines.
  224                                            V.  A.  C R O  S S  R E  F E R E N  C E R  7.3
  225                            [2008 V A Standard s & Conven tions]
  226                      UC I: VISTA C PU: ROU     Jan 18, 2 019@15:09: 42
  227   Routines:  2  Faux Ro utines: 0
  228   MCAR7M1    MCM4MC3   
  229   --- CROSS  REFERENCIN G ---
  230   Compiled l ist of Err ors and Wa rnings                Jan 18, 20 19@15:09:4 2 page 1
  231   No errors  or warning s to repor t
  232   V. A.  C R  O S S  R  E F E R E  N C E R  7 .3
  233                            [2008 V A Standard s & Conven tions]
  234                      UC I: VISTA C PU: ROU     Dec 19, 2 018@11:11: 15
  235   Routines:  2  Faux Ro utines: 0
  236   GMTSKGHS   GMTSP123  
  237   --- CROSS  REFERENCIN G ---
  238   Compiled l ist of Err ors and Wa rnings                Dec 19, 20 18@11:11:1 5 page 1
  239   No errors  or warning s to repor t
  240   Source Cod e Changes
  241   This appen dix displa ys the Vis tA code be fore and a fter the u pdates req uired for  this code  modificati on were im plemented.  The follo wing routi nes were a ffected:
  242   Modified M UMPS routi nes: MCAR7 M1
  243   New MUMPS  routines:  MCM4MC3, G MTSKGHS, G MTSP123 (p ost-instal l routine)
  244   MCAR7M1
  245   Before: 
  246   MCAR7M1  ;  HIRMFO/RE L-Muse EKG  ;6/7/00   10:11
  247            ; ;2.3;Medic ine;**24** ;09/13/199 6
  248            S  EXAM=$P($ P(SEG("OBR "),"|",5), "^",1) S:E XAM="" EXA M=99999
  249            S  X=$T(@EXA M),FIL=$P( X,";",4),S UB=$P(X,"; ",5) I FIL =""!(SUB=" ") S ERRTX
  250   ="Unknown  Exam Type"  G ^MCAR7X
  251            F  P=1:1 S V AL=$T(VARS +P) Q:VAL= ""  S SET( $P(VAL,";" ,3))=$P(VA L,";",4,5)
  252            S  X=$P($P(S EG("OBR"), "|",33),"^ ",1)
  253            I  +X,$$GET1 ^DIQ(200,X ,.01,"I")' ="" S $P(S ET("Interp reter"),"; ",3)=X
  254   OBX      ;  Process O BX
  255            S  X=$G(MSG( NUM)) G:X= "" UPDATE  I $E(X,1,3 )'="OBX" S  ERRTX="OB X not foun
  256   d when exp ected" G ^ MCAR7X
  257            S  SEG("OBX" )=X
  258            S  STYP=$P(X ,"|",3) I  STYP'="ST"  G IMP
  259            S  CODE=$P(X ,"|",4),VA L=$P(X,"|" ,6),UNITS= $P(X,"|",7 ) I CODE[" ^" S CODE=
  260   $P(CODE,"^ ",2)
  261            I  CODE=""!( VAL="") G  NEXT
  262            I  $D(SET(CO DE)) S $P( SET(CODE), ";",3)=VAL
  263   NEXT     S  NUM=NUM+1  G OBX
  264   IMP      ;  Get Impre ssion
  265            S  NUM=NUM+1 ,VAL=$P(X, "|",6) I S TYP="CE" S  VAL=$P(VA L,"^",2)
  266            S  ICNT=ICNT +1,IMP(ICN T)=VAL G O BX
  267   UPDATE   ;  Update Fi le
  268            D  PROC^MCAR 7A ; Set P rocedure E ntry
  269            I  EXAM=9300 0 S ID=""  F  S ID=$O (SET(ID))  Q:ID=""  S  P=$P(SET( ID),";",1)
  270    I P'="" S  K=$P(SET( ID),";",2)  I K'="" S  VAL=$P(SE T(ID),";", 3) S:VAL'= "" $P(^MCA
  271   R(FIL,DA,P ),"^",K)=V AL
  272            I  $D(IMP) F  P=1:1:ICN T S ^MCAR( FIL,DA,SUB ,P,0)=IMP( P)
  273            I   S ^MCAR( FIL,DA,SUB ,0)="^^"_I CNT_"^"_IC NT_"^"_DT
  274            S  DIK="^MCA R("_FIL_", " D IX1^DI K
  275            D  GENACK^MC AR7X
  276            Q
  277   93000    ; ;EKG;691.5 ;9
  278   93040    ; ;Pacemaker ;698.3;10
  279   93015    ; ;Exercise; 691.7;6
  280   93266    ; ;Holter;69 1.6;7
  281   93529    ; ;Cath;691. 1;43
  282   93307    ; ;Echo;691; 3
  283   93619    ; ;Electroph ysiology;6 91.8;12
  284   VARS     ; ;
  285            ; ;Interpret er;0;13
  286            ; ;Systolic  Blood Pres sure;4;2
  287            ; ;Diastolic  Blood Pre ssure;4;1
  288            ; ;Ventricul ar Rate;0; 4
  289            ; ;Atrial Ra te;
  290            ; ;P-R Inter val;0;5
  291            ; ;QRS Durat ion;0;6
  292            ; ;QT;0;7
  293            ; ;QTc;0;8
  294            ; ;P Axis;0; 9
  295            ; ;QRS Axis;
  296   After: 
  297   VISTAS1:VI STA>P
  298   MCAR7M1  ;  HIRMFO/RE L-Muse EKG  ; 9/12/17  11:12am
  299            ; ;2.3;Medic ine;**24** ;09/13/199 6;Build 18
  300            ; MILW/JMC 1 8 Dec 07 -  inserted  line "UPDA TE+7" to c all local  routine to
  301    create PC E.
  302            S  EXAM=$P($ P(SEG("OBR "),"|",5), "^",1) S:E XAM="" EXA M=99999
  303            S  X=$T(@EXA M),FIL=$P( X,";",4),S UB=$P(X,"; ",5) I FIL =""!(SUB=" ") S ERRTX
  304   ="Unknown  Exam Type"  G ^MCAR7X
  305            F  P=1:1 S V AL=$T(VARS +P) Q:VAL= ""  S SET( $P(VAL,";" ,3))=$P(VA L,";",4,5)
  306            S  X=$P($P(S EG("OBR"), "|",33),"^ ",1)
  307            I  +X,$$GET1 ^DIQ(200,X ,.01,"I")' ="" S $P(S ET("Interp reter"),"; ",3)=X
  308   OBX      ;  Process O BX
  309            S  X=$G(MSG( NUM)) G:X= "" UPDATE  I $E(X,1,3 )'="OBX" S  ERRTX="OB X not foun
  310   d when exp ected" G ^ MCAR7X
  311            S  SEG("OBX" )=X
  312            S  STYP=$P(X ,"|",3) I  STYP'="ST"  G IMP
  313            S  CODE=$P(X ,"|",4),VA L=$P(X,"|" ,6),UNITS= $P(X,"|",7 ) I CODE[" ^" S CODE=
  314   $P(CODE,"^ ",2)
  315            I  CODE=""!( VAL="") G  NEXT
  316            I  $D(SET(CO DE)) S $P( SET(CODE), ";",3)=VAL
  317   NEXT     S  NUM=NUM+1  G OBX
  318   IMP      ;  Get Impre ssion
  319            S  NUM=NUM+1 ,VAL=$P(X, "|",6) I S TYP="CE" S  VAL=$P(VA L,"^",2)
  320            S  ICNT=ICNT +1,IMP(ICN T)=VAL G O BX
  321   UPDATE   ;  Update Fi le
  322            D  PROC^MCAR 7A ; Set P rocedure E ntry
  323            I  EXAM=9300 0 S ID=""  F  S ID=$O (SET(ID))  Q:ID=""  S  P=$P(SET( ID),";",1)
  324    I P'="" S  K=$P(SET( ID),";",2)  I K'="" S  VAL=$P(SE T(ID),";", 3) S:VAL'= "" $P(^MCA R(FIL,DA,P ),"^",K)=V AL
  325            I  $D(IMP) F  P=1:1:ICN T S ^MCAR( FIL,DA,SUB ,P,0)=IMP( P)
  326            I   S ^MCAR( FIL,DA,SUB ,0)="^^"_I CNT_"^"_IC NT_"^"_DT
  327            S  DIK="^MCA R("_FIL_", " D IX1^DI K
  328            D  GENACK^MC AR7X
  329            D  MUSE^MCM4 MC3(FIL,DA ,0)
  330            Q
  331   93000    ; ;EKG;691.5 ;9
  332   93040    ; ;Pacemaker ;698.3;10
  333   93015    ; ;Exercise; 691.7;6
  334   93266    ; ;Holter;69 1.6;7
  335   93529    ; ;Cath;691. 1;43
  336   93307    ; ;Echo;691; 3
  337   93619    ; ;Electroph ysiology;6 91.8;12
  338   VARS     ; ;
  339            ; ;Interpret er;0;13
  340            ; ;Systolic  Blood Pres sure;4;2
  341            ; ;Diastolic  Blood Pre ssure;4;1
  342            ; ;Ventricul ar Rate;0; 4
  343            ; ;Atrial Ra te;
  344            ; ;P-R Inter val;0;5
  345            ; ;QRS Durat ion;0;6
  346            ; ;QT;0;7
  347            ; ;QTc;0;8
  348            ; ;P Axis;0; 9
  349            ; ;QRS Axis;
  350            ; ;T Axis;0; 11
  351   MCM4MC3 (N ew)
  352   MCM4MC3  ; EPIP/WLE -  Process I ncoming MU SE EKG Int erface Msg s to creat e PCE visi
  353   t ; 9/13/1 7 11:12am
  354            ; ;2.3;Medic ine;**48** ;09/12/199 6
  355            ; This routi ne is call ed by MCAR 7M1.
  356            ; MILW/JDT 2 015.1.01 C ode for EK G updated  to ICD10
  357            ;
  358            Q
  359            ;  ^%ZTER                SUPPORTED  ICR 1621
  360            ;  $$SDAPI^S DAMA301     SUPPORTED  IC 4433
  361            ;  ADM^VADPT 2           CONTROLLE D ICR 325
  362            ;  $$FMADD^X LFDT        SUPPORTED  ICR 4558
  363            ;  SENDMSG^X MXAPI       SUPPORTED  ICR 2729
  364            ;  $$GET^XPA R           SUPPORTED  ICR 2263
  365            ;  $$DATA2PC E^PXAPI     CONTROLLE D ICR 1889
  366            ;  $$CODEN^I CDEX        CONTROLLE D ICR 5747
  367            ;  FILE #44  ^SC(        SUPPORTED  10044
  368            ;  $$CPT^ICP TCOD(CPT)   SUPPORTED  1995
  369            ;
  370   MUSE(MCFIL E,MCDA,PRO MPT) ; Ent ry point f or MUSE EK G interfac e
  371            ;
  372            ;   Call wit h MCFILE =  Medicine  package fi le
  373            ;                MCDA =  entry in  related Me dicine pac kage file
  374            ;              PROMPT =  1 - Flag  to indicat e if inter active and  user prom
  375   pted to cr eate PCE e ncounter
  376            ;
  377            ;  Called by  MCAR7M1 -  Medicine  MUSE inter face
  378            ;
  379            N  MCMDIE,MC MI,MCMLOCI D,MCMSTATS ,MCFDA,X
  380            ;
  381            ;  Determine  status of  MUSE Inte rface
  382            S  MCMSTATS= $$GET^XPAR ("SYS","MC M4 MUSE IN TERFACE ST ATUS",1,"Q ")
  383            ;  If not in teractive  and interf ace is off  then quit
  384            I  'PROMPT,M CMSTATS<1  Q  ;Quit i f not inte ractive an d paramete r is off
  385            ;
  386            S  MCMI=0,MC MLOCID=""
  387            F   S MCMI=$ O(MSG(MCMI )) Q:MCMI< 1  I $E(MS G(MCMI),1, 3)="PV1" S  MCMLOCID=
  388   $P($P(MSG( MCMI),"|", 4),"^") Q
  389            I  MCMLOCID' ="" D
  390            .  N MCLOC
  391            .  S MCLOC=+ $$GET^XPAR ("SYS","MC M4 MUSE LO C ID",MCML OCID,"Q")
  392            .  I MCLOC<1  Q
  393            .  S MCFDA(1 ,MCFILE,MC DA_",",18) =MCLOC
  394            .  D FILE^DI E("S","MCF DA(1)","MC MDIE(1)")
  395            ;
  396            ;  Task crea ting PCE e ncounter i f working  from HL7 i nterface a nd process
  397   ing HL7 me ssage.
  398            ;   - Since  PCE API ca n become i nteractive  (writes t o current  device) do
  399   n't want
  400            ;   -  this  dialog to  be sent vi a the curr ent device  over the  HL7 link.
  401            ; I $D(ZTQUE UED)!('PRO MPT) D  Q
  402            ; . N ZTDESC ,ZTDTH,ZTI O,ZTRTN,ZT SAVE,ZTSK
  403            ; . S ZTRTN= "DQ^MCM4MC 3",ZTDTH=$ H,ZTIO="", ZTDESC="MU SE EKG PCE  Encounter
  404   Creation"
  405            ; . F X="MCF ILE","MCDA ","PROMPT"  S ZTSAVE( @X)=""
  406            ; . D ^%ZTLO AD
  407            ;
  408            D  DQ
  409            Q
  410           ;
  411            ;
  412   DQ       ;  TaskMan e ntry point
  413            ;  Setup PCE  encounter
  414            D  PCE
  415            K  ^TMP("MCP XAPI",$J)
  416            Q
  417            ;
  418            ;
  419   PCE      ;  File PCE  data
  420            ;
  421            N  MCM4X,MCM ERR,MCMSVC C,CPT,DFN, MCREATE,MC DSSID,MCDU Z,MCENCDT, MCERR1,MCE
  422   RR2,MCICD9 ,MCLOC,MCN INS,MCNONC ,MCOK,MCPK G,MCPROV,M CVSITN,VAI NDT,VADMVT ,X
  423            ;
  424            ;  Determine  status of  MUSE Inte rface
  425            S  MCMSTATS= $$GET^XPAR ("SYS","MC M4 MUSE IN TERFACE ST ATUS",1,"Q ")
  426            ;
  427            K  ^TMP("MCP XAPI",$J)
  428            ;
  429            D  GETS^DIQ( 691.5,MCDA ,".01;1;12 ;18;900"," EI","TMP")
  430            S  MCENCDT=T MP(MCFILE, MCDA_",",. 01,"I"),PR OMPT=$G(PR OMPT),(MCM SVCC,VADMV
  431   T)=""
  432            S  DFN=TMP(M CFILE,MCDA _",",1,"I" )
  433            ;
  434            S  MCPKG=$O( ^DIC(9.4," B","MEDICI NE",0))
  435            ;
  436            S  CPT=93000
  437            ;
  438            S  MCDUZ=.5, MCREATE=1, MCPROV=TMP (MCFILE,MC DA_",",12, "I")
  439            S  MCLOC=TMP (MCFILE,MC DA_",",18, "E")  ;war d clinic
  440            ;
  441            ;  If non-co unt clinic  then don' t use this  location.
  442            ;  If ward l ocation th en use sta ndard EKG  inpatient  location.
  443            ;  If not a  ward or cl inic then  don't use.
  444            S  MCNONC=$$ GET1^DIQ(4 4,MCLOC,17 ,"I")
  445            S  MCLOC=$$G ET1^DIQ(44 ,MCLOC,2," I")'?1(1"W ",1"C") S  MCLOC=""
  446            I  MCLOC="C" ,MCNONC="Y " S MCLOC= ""
  447            I  MCLOC="W"  S MCLOC=+ $$GET^XPAR ("SYS","MC M4 MUSE ST D INPATIEN T LOC",1,"
  448   Q")
  449            ;
  450            ;  If no loc ation then  call VADP T to get i npatient s tatus
  451            ;    and if  inpatient  then use s tandard in patient cl inic locat ion
  452            ;  If outpat ient then  find close st outpati ent appoin tment
  453            ;  If none t hen use de fault outp atient loc ation
  454            I  MCLOC=""  D
  455            .  S VAINDT= MCENCDT D  ADM^VADPT2
  456            .  I VADMVT  D  Q
  457            .  . S MCLOC =+$$GET^XP AR("SYS"," MCM4 MUSE  STD INPATI ENT LOC",1 ,"Q")
  458            .  . S MCFDA (2,MCFILE, MCDA_",",1 8)=MCLOC
  459            .  . D FILE^ DIE("","MC FDA(2)","M CMDIE(2)")
  460            .  N MCCDT,M COLLOC
  461            .  S MCCDT=M CENCDT,MCO LLOC=""
  462            .  I 'MCLOC  S MCLOC=+$ $GET^XPAR( "SYS","MCM 4 MUSE DEF AULT OUTPT  LOC",1,"Q
  463   ")
  464            .  S MCFDA(3 ,MCFILE,MC DA_",",18) =MCLOC
  465            .  D FILE^DI E("","MCFD A(3)","MCM DIE(3)")
  466            ;
  467            I  MCLOC=""  Q
  468            S  MCLOC(0)= $G(^SC(MCL OC,0)) ;di rect acces s per ICR  10044
  469            S  MCNINS=$P (MCLOC(0), "^",4)
  470            S  MCDSSID=+ $P(MCLOC(0 ),"^",7)
  471            ;
  472            ;  Check is  this locat ion flagge d to indic ate inpati ent OOS.
  473            S  X=$$GET^X PAR("SYS", "MCM4 MUSE  LOC INPAT IENT OOS", "`"_MCLOC, "Q")
  474            I  X=1 S MCM SVCC="D"
  475            E   S MCMSVC C="A"
  476            ;
  477            S  MCVSITN=T MP(MCFILE, MCDA_",",9 00,"I")
  478            ;
  479            S  MCICD9=+$ $CODEN^ICD EX("Z13.6  ",80) ;Ret urns IEN f or the ICD
  480            S  ^TMP("MCP XAPI",$J," PROCEDURE" ,1,"ENC PR OVIDER")=M CPROV
  481            S  ^TMP("MCP XAPI",$J," PROCEDURE" ,1,"PROCED URE")=CPT
  482            S  ^TMP("MCP XAPI",$J," PROCEDURE" ,1,"QTY")= 1
  483            S  ^TMP("MCP XAPI",$J," PROCEDURE" ,1,"NARRAT IVE")=$P($ $CPT^ICPTC OD(CPT),"^
  484   ",3)
  485            S  ^TMP("MCP XAPI",$J," ENCOUNTER" ,1,"DSS ID ")=MCDSSID
  486            S  ^TMP("MCP XAPI",$J," ENCOUNTER" ,1,"ENC D/ T")=MCENCD T
  487            S  ^TMP("MCP XAPI",$J," ENCOUNTER" ,1,"HOS LO C")=MCLOC
  488            S  ^TMP("MCP XAPI",$J," ENCOUNTER" ,1,"INSTIT UTION")=MC NINS
  489            S  ^TMP("MCP XAPI",$J," ENCOUNTER" ,1,"PATIEN T")=DFN
  490            S  ^TMP("MCP XAPI",$J," ENCOUNTER" ,1,"MST")= ""
  491            S  ^TMP("MCP XAPI",$J," ENCOUNTER" ,1,"SERVIC E CATEGORY ")=MCMSVCC
  492            S  ^TMP("MCP XAPI",$J," ENCOUNTER" ,1,"ENCOUN TER TYPE") ="A"
  493            S  ^TMP("MCP XAPI",$J," DX/PL",1," PRIMARY")= "1"
  494            S  ^TMP("MCP XAPI",$J," DX/PL",1," DIAGNOSIS" )=MCICD9
  495            ;
  496            I  PROMPT D
  497            .  N DIR,DIR UT,DTOUT,D UOUT,PCEDA TA,X,Y
  498            .  W !
  499            .  I VADMVT  W !,"Patie nt in an i npatient s tatus as o f this dat e/time"
  500            .  I $G(MCVS ITN)>0 W ! ,"Using ex isting vis it: ",MCVS ITN
  501            .  M PCEDATA =^TMP("MCP XAPI",$J)
  502            .  W !,"Data  to be pas sed to PCE ",!
  503            .  N X F X=" MCM4X","MC MSVCC","MC FILE","MCD A","PCEDAT A" D
  504            .  . F  S X= $Q(@X) Q:X =""  W !,X ,"=",@X
  505            .  W !
  506            .  S MCREATE =0
  507            .  S DIR(0)= "YO",DIR(" A")="Is da ta okay to  Create En counter",D IR("B")="N
  508   O"
  509            .  D ^DIR
  510            .  I $D(DIRU T) Q
  511            .  I Y=1 S M CREATE=1
  512            ;
  513            I  PROMPT,'M CREATE Q
  514            ;
  515            ;  If proces sing but n ot storing  then noti fy with bu lletin wha t info wou
  516   ld have be en used to  create en counter.
  517            I  'PROMPT,M CMSTATS=2  D MAILALRT  Q
  518            ;
  519            ;  Don't sen d to PCE i f visit al ready on f ile - avoi d duplicat ion of wor
  520   kload.
  521            I  TMP(MCFIL E,MCDA_"," ,900,"E")  Q
  522            ;
  523            ;  Create th e encounte r.
  524            S  MCOK=$$DA TA2PCE^PXA PI("^TMP(" "MCPXAPI"" ,$J)",MCPK G,"MEDICIN E",.MCVSIT
  525   N,MCDUZ,$S (PROMPT:1, 1:0),.MCER R1,,.MCERR 2)
  526            ;
  527            I  'PROMPT,M COK=0 D MA ILALRT Q   ; If proce ssing but  no PCE cre ated notif
  528   y the mail  group 
  529            ;  If new vi sit then u pdate Medi cine file
  530            I  MCOK=1,MC VSITN,'TMP (MCFILE,MC DA_",",900 ,"E") D
  531            .  N MCFDA
  532            .  S MCFDA(4 ,MCFILE,MC DA_",",900 )=MCVSITN
  533            .  D FILE^DI E("","MCFD A(4)","MCM DIE(4)")
  534            ;
  535            I  PROMPT D
  536            .  W !!,"Dat a returned  by PCE",!
  537            .  W !,"API  Success: " ,$S(MCOK:" YES",1:"NO ")
  538            .  W !,"PCE  Visit # ", MCVSITN
  539            .  I $D(MCER R1) W !,"E rror array  #1",! D
  540            .  . N X S X ="MCERR1"  F  S X=$Q( @X) Q:X=""   W !,X,"= ",@X
  541            .  I $D(MCER R2) W !,"E rror array  #2",! D
  542            .  . N X S X ="MCERR2"  F  S X=$Q( @X) Q:X=""   W !,X,"= ",@X
  543            .  D MAILALR T
  544            Q
  545            ;
  546   MAILALRT ;  Send mail  message a lert when  in notify  only statu s
  547            ;  Be sure t o create M CM4 MUSE a s a mail g roup and a dd yoursel f
  548            ;  PROMPT=2  will creat e mail ale rt
  549            ;
  550            N  J,MCMCNT, MCMTXT,X,X MINSTR,XMS UB,XMTO
  551            ;
  552            M  PCEDATA=^ TMP("MCPXA PI",$J)
  553            ;
  554            S  MCMTXT(1) ="The foll owing info rmation is  provided  to assist  in MUSE in
  555   terface te sting"
  556            S  MCMTXT(2) =" ",MCMCN T=2
  557            ;
  558            F  J="MCFILE ","MCDA"," MCM4X","MC OK","MCERR 1","MCERR2 ","MCVSITN ","MCLOC",
  559   "PCEDATA", "VADMVT"," MCMDIE" D
  560            .  S X=$G(@J )
  561            .  I X'="" S  MCMCNT=MC MCNT+1,MCM TXT(MCMCNT )=J_"="_X
  562            .  F  S J=$Q (@J) Q:J=" "  S MCMCN T=MCMCNT+1 ,MCMTXT(MC MCNT)=J_"= "_@J
  563            ;
  564            S  XMSUB="MU SE Interfa ce Encount er Paramet ers - file  #"_MCFILE _" entry #
  565   "_MCDA
  566            ;
  567            S  XMTO("G.M CM4 MUSE") ="",XMINST R("FROM")= .5,XMINSTR ("ADDR FLA GS")="R"
  568            D  SENDMSG^X MXAPI(DUZ, XMSUB,"MCM TXT",.XMTO ,.XMINSTR)
  569            Q
  570            ;
  571            ;
  572   REMESTL  ; Test logic  w/o HL7 i nput inter active
  573            ; this subro utine is d esigned as  a tool to  debug the  code in i nteractive
  574   mode
  575            ; PLEASE NOT E the Swit ch "MCM4 M USE INTERF ACE STATUS " is only  used in th
  576   e immediat e mode/non  interacti ve modes
  577            ; Data for t he PCE is  provided b y the pati ent file a nd some by  the HL7 i
  578   nput. Exam ple
  579            ; AO or agen t orange c omes from  the patien t file. Th e response  from the 
  580   PXAPI API  is more da ta
  581            ; to assist  in debuggi ng the app lication.
  582            ; if a No is  entered t o the ques tion no PC E is creat ed, if Yes  the PCE w
  583   ill be cre ated
  584            ; if you cho se interac tive, the  PCE will b e created  immediatel y
  585            ; to verify  the PCE da ta do INQ  in fileman  on the VI SIT file t hen use PR
  586   to print t he data.
  587            ; The PCE ca ll will gi ve you the  IEN of th e Visit an d notify y ou if a PC
  588   E was not  built.
  589            I  $$PROD^XU PROD() R ! ,"CANNOT B E RUN IN P RODUCTION  ENVIRONMEN T",X:DTIME
  590   Q
  591            N  MCL,MCDAT ,MCFILE,MS G,MCPROMPT ,MCFLAG,MC ARRAY,MCCO UNT,MCX,MC LX
  592            S  MCFILE=69 1.5
  593            ; 51 is the  code assig ned to the  EKG Cart
  594            S  MSG(1)="P V1|1||51^^ ^^^^^51"
  595            D  LIST^DIC( 691.5,,"@; .01;1I;1;" ,"PQ",,,,, ,,"TMP")
  596            R  !!,"Enter  0 to buil d PCE imme diately, 1  for inter active or  2 for a Ma
  597   il Alert : ",X:DTIME  I U[X!('$T ) Q
  598            I  '(X=0!(X= 1)!(X=2))  G REMESTL
  599            S  MCPROMPT= X,MCFLAG=" "
  600            S  MCCOUNT=0
  601            S  MCL=0,MCX ="" F  S M CL=$O(TMP( "DILIST",M CL)) Q:MCL =""!(MCFLA G="DONE") 
  602    D
  603              . S MCDAT= $G(TMP("DI LIST",MCL, 0))
  604              . W !,MCL, ?5,$P(MCDA T,"^",4),? 40,$P(MCDA T,"^",2)
  605              . S MCLX=M CL
  606              . S MCCOUN T=MCCOUNT+ 1
  607              . I MCCOUN T#15=0!(MC L="") D MC ASK Q:MCFL AG="DONE"
  608            I  MCFLAG'=" DONE" D MC ASK
  609            I  X=""!(X[U )!(X>MCLX) !(X<1)!(X[ "?") R !!, "Invalid c hoice",X:D TIME  G RE
  610   MESTL
  611            I  $D(TMP("D ILIST",X)) =0 G REMES TL
  612            S  MCX=$P(TM P("DILIST" ,X,0),"^") _","
  613            K  MCARRAY D  GETS^DIQ( 691.5,MCX, "**","","M CARRAY")
  614           I  $D(MCARRAY )=0 R !,"I nvalid cho ice",X:DTI ME W !! G  REMESTL
  615            S  MCDA=$P(T MP("DILIST ",X,0),"^" )
  616            D  MUSE(MCFI LE,MCDA,MC PROMPT)
  617            Q
  618   MCASK    ;  Ask for e ntry
  619            R  !!!,"Choo se the exa m to use b y entering  the numbe r on the l eft: ",X:D
  620   TIME I U[X !('$T) Q
  621            I  $O(TMP("D ILIST",MCL ))=0 S MCF LAG="DONE"  Q
  622            I  X'="" S M CFLAG="DON E"
  623            Q
  624   GMTSKGHS ( New)
  625   GMTSKGHS ; EPIP/WLE H ealth Summ ary Compon ent to dis play ekg r eports ; 0 3/15/18 2: 53pm
  626            ; ;2.7;Healt h Summary; **2,30,47, 123**;Oct  20, 1995
  627            ;
  628            ;  File 691. 5  Private  ICR 6828
  629            Q
  630            ;   
  631   EN       ;
  632            N  GMTSBG,GM TSEND,GMTS IEN,GMTSDT ,GMTSDT1,G MTSFLG,GMT SCNT,GMTSP ,GMTSDAT,G
  633   MTSSUM,GMT SP1,GMTSTT M,GMTSPT,G MTSTMP
  634            D  CKP^GMTSU P Q:$D(GMT SQIT)
  635            S  GMTSEND=$ $NOW^XLFDT ,GMTSBG=$$ FMADD^XLFD T(GMTSEND, -365,0,0,0 )
  636            S  GMTSIEN=0 ,GMTSFLG=0
  637            D  FIND^DIC( 691.5,,"@; .01;.03"," PQ",DFN,," C",,,"GMTS TMP")
  638            S  GMTSIEN=0  F  S GMTS IEN=$O(GMT STMP("DILI ST",GMTSIE N)) Q:GMTS IEN=""  D
  639            .  S GMTSPT= "" F  S GM TSPT=$O(GM TSTMP("DIL IST",GMTSI EN,GMTSPT) ) Q:GMTSPT =""  S GMT SDT=$P(GMT STMP("DILI ST",GMTSIE N,0),U,2)  D
  640            .  . D DT^DI LF("ET",GM TSDT,.GMTS DT1)
  641            .  . I GMTSD T1<GMTSBG! (GMTSDT1>G MTSEND) K  GMTSTMP("D ILIST",GMT SIEN,GMTSP T) Q  ;Not  within 36 5 days 
  642            .  . S GMTSF LG=1
  643   PRINT    ;
  644            I  'GMTSFLG  W !,"No EK Gs for thi s patient  within a y ear." Q
  645            S  GMTSCNT=0
  646            W  !,"Proced ure Date/T ime",?22," Procedure  Name",?45, "Report Su mmary"
  647            W  !,"------ ---------- ---------- ---------- ---------- ---------- ---------- -"
  648            S  GMTSIEN=" " F  S GMT SIEN=$O(GM TSTMP("DIL IST",GMTSI EN),-1) Q: GMTSIEN="" !(GMTSCNT= 1)  D
  649            .  S GMTSP=" " F  S GMT SP=$O(GMTS TMP("DILIS T",GMTSIEN ,GMTSP)) Q :GMTSP=""   D
  650            .  . S GMTSC NT=GMTSCNT +1
  651            .  . S GMTSD AT=GMTSTMP ("DILIST", GMTSIEN,GM TSP),GMTST TM=$P(GMTS DAT,U,2),G
  652   MTSSUM=$P( GMTSDAT,U, 3)
  653            .  . W !,GMT STTM,?22," Electrocar diogram",? 45,GMTSSUM
  654            .  . S GMTSI EN1=$P(GMT STMP("DILI ST",GMTSIE N,0),U)_", "
  655            .  . D GETS^ DIQ(691.5, GMTSIEN1,2 0,"E","GMT STMP")
  656            .  . S GMTSP 1="" F  S  GMTSP1=$O( GMTSTMP(69 1.5,GMTSIE N1,20,GMTS P1)) Q:GMT SP1=""!(GM TSP1="E")   D
  657            .  . . W !,? 5,GMTSTMP( 691.5,GMTS IEN1,20,GM TSP1)
  658            Q
  659   GMTSP123 ( New)
  660   GMTSP123 ;  CIO/SLC -  Post Inst all GMTS*2 .7*123     ; 04/23/20 18
  661            ; ;2.7;Healt h Summary; **123**;Oc t 20, 1995
  662   CI       ;  Component  Install
  663            N  GMTSIN,GM TSLIM,GMTS INST,GMTST L,GMTSINST ,GMTSTOT,G MTSBLD,GMT SCPS,GMTSC
  664   P,GMTSCI
  665            S  GMTSCPS=" EKG"
  666            F  GMTSCI=1: 1 Q:'$L($P (GMTSCPS," ;",GMTSCI) )  D
  667            .  S GMTSCP= $P(GMTSCPS ,";",GMTSC I) K GMTSI N
  668            .  D ARRAY Q :'$D(GMTSI N)
  669            .  I $L($G(G MTSIN("TIM "))),+($G( GMTSIN(0)) )>0 S GMTS LIM(+($G(G MTSIN(0))) ,"TIM")=$G (GMTSIN("T IM"))
  670            .  I $L($G(G MTSIN("OCC "))),+($G( GMTSIN(0)) )>0 S GMTS LIM(+($G(G MTSIN(0))) ,"OCC")=$G (GMTSIN("O CC"))
  671            .  S GMTSINS T=$$ADD^GM TSXPD1(.GM TSIN),GMTS TOT=+($G(G MTSTOT))+( $G(GMTSINS
  672   T))
  673            ;  Rebuild A d Hoc Heal th Summary  Type
  674            D :+($G(GMTS TOT))>0 BU ILD^GMTSXP D3
  675            D  LIM
  676            I  +$$ROK("G MTSXPS1")> 0 D
  677            .  N GMTSHOR T S GMTSHO RT=1,GMTSI NST="",GMT SBLD="GMTS *2.7*123"  D SEND^GMT SXPS1
  678            Q
  679   ARRAY    ;  Build Arr ay
  680            K  GMTSIN N  GMTSI,GMTS TXT,GMTSEX ,GMTSFLD,G MTSUB,GMTS VAL,GMTSPD X S GMTSPD X=1,GMTSCP =$G(GMTSCP ) Q:'$L(GM TSCP)
  681            F  GMTSI=1:1  D  Q:'$L( GMTSTXT)
  682            .  S GMTSTXT ="",GMTSEX ="S GMTSTX T=$T("_GMT SCP_"+"_GM TSI_")" X  GMTSEX S:$ L(GMTSTXT, ";")'>3 GM TSTXT="" Q :'$L(GMTST XT)
  683            .  S GMTSFLD =$P(GMTSTX T,";",2),G MTSUB=$P(G MTSTXT,";" ,3),GMTSVA L=$P(GMTST
  684   XT,";",4)
  685            .  S:$E(GMTS FLD,1)=1&( +GMTSFLD<2 ) GMTSVAL= $P(GMTSTXT ,";",4,5)
  686            .  S:$E(GMTS FLD,1)=" " !('$L(GMTS FLD)) GMTS TXT="" Q:G MTSTXT=""
  687            .  S:$L(GMTS FLD)&('$L( GMTSUB)) G MTSIN(GMTS FLD)=GMTSV AL Q:$L(GM TSFLD)&('$
  688   L(GMTSUB))   S:$L(GMT SFLD)&($L( GMTSUB)) G MTSIN(GMTS FLD,GMTSUB )=GMTSVAL
  689            .  S:$G(GMTS FLD)=7&(+( $G(GMTSUB) )>0) GMTSP DX=0
  690            K :+($G(GMTS PDX))=0 GM TSIN("PDX" )
  691            Q
  692   LIM      ;  Limits
  693            N  GMTSI,GMT ST,GMTSO,G MTSA S GMT SI=0 F  S  GMTSI=$O(G MTSLIM(GMT SI)) Q:+GM TSI=0  D
  694            .  S GMTSA=$ P($G(^GMT( 142.1,+($G (GMTSI)),0 )),"^",3), GMTST=$G(G MTSLIM(+GM
  695   TSI,"TIM") ) S:'$L(GM TST) GMTST =$S(GMTSA= "Y ":"1Y " ,1:"")
  696            .  S GMTSA=$ P($G(^GMT( 142.1,+($G (GMTSI)),0 )),"^",5), GMTSO=$G(G MTSLIM(+GM
  697   TSI,"OCC") ) S:'$L(GM TSO) GMTSO =$S(GMTSA= "Y ":"10 " ,1:"")
  698            .  D TO^GMTS XPD3(GMTSI ,GMTST,GMT SO)
  699            Q
  700   ROK(X)   ;  Routine O K
  701            S  X=$G(X) Q :'$L(X) 0  N GMTSEX,G MTSTXT S G MTSEX="S G MTSTXT=$T( +1^"_X_")"  X GMTSEX
  702            Q :'$L(GMTST XT) 0  Q 1
  703            ;                  
  704   EKG      ;  EKG Compo nent Data
  705            ; 0;;263
  706            ; .01;;EKG
  707            ; 1;;EN;GMTS KGHS
  708            ; 1.1;;0
  709            ; 2;;Y
  710            ; 3;;EKG
  711            ; 3.5;;1
  712            ; 3.5;1;Heal th summary  created t o display  EKG inform ation.
  713            ; 4;;Y
  714            ; 5;;
  715            ; 6;;
  716            ; 7;;0
  717            ; 8;;
  718            ; 9;;
  719            ; 10;;
  720            ; 11;;
  721            ; 12;;
  722            ; 13;;
  723            ; 14;;
  724            ; PDX;;1
  725            ; TIM;;20Y
  726            ; OCC;;10
  727            ;
  728            Q
  729            ;