| 1 | HLP109 ;ALB/CJM - Post-Install for patch 109 ;06/03/99
 | 
|---|
| 2 |  ;;1.6;HEALTH LEVEL SEVEN;**109**;Oct 13, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | SETAC ;Used to undo the changes to the "AC" xref, used only if the patch
 | 
|---|
| 5 |  ;HL*1.6*109 needs to be backed out.
 | 
|---|
| 6 |  S ^DD(773,7,1,1,1)="S %=$P(^HLMA(DA,0),U,3) S:%]"""" ^HLMA(""AC"",%,X,DA)="""" I %=""O"",'$D(HLTCPO) D LLCNT^HLCSTCP(X,3)"
 | 
|---|
| 7 |  S ^DD(773,7,1,1,2)="S %=$P(^HLMA(DA,0),U,3) K:%]"""" ^HLMA(""AC"",%,X,DA)"
 | 
|---|
| 8 |  ;S ^DD(773,100,1,1,1)="S ^HLMA(""AD"",X,DA)="""" N %,%1 S %=$G(^HLMA(DA,0)),%1=$P(%,U,3),%=$P(%,U,7) K:%1]""""&% ^HLMA(""AC"",%1,%,DA)"
 | 
|---|
| 9 |  Q
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 | PRE ; Called by KIDS pre-init...
 | 
|---|
| 12 |  S ^HLCS(869.3,1,772)=($O(^HL(772,":"),-1)\1)
 | 
|---|
| 13 |  S ^HLCS(869.3,1,773)=($O(^HLMA(":"),-1)\1)
 | 
|---|
| 14 |  D UNQUEUE^HLEVUTIL
 | 
|---|
| 15 |  D LOADMON
 | 
|---|
| 16 |  D ETHL7 ; Make sure every official HL7 entry has PACKAGE NAME...
 | 
|---|
| 17 |  Q
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 | LOADMON ; Create a list of monitors in ^XTMP(XTMP,"O")...
 | 
|---|
| 20 |  N NOW,XTMP
 | 
|---|
| 21 |  S NOW=$$NOW^XLFDT
 | 
|---|
| 22 |  S XTMP="HLEV INSTALL "_NOW
 | 
|---|
| 23 |  S ^XTMP(XTMP,0)=$$FMADD^XLFDT(NOW,2)_U_NOW_U_"HLEV INSTALLATION MONITOR LIST"
 | 
|---|
| 24 |  S IEN=0
 | 
|---|
| 25 |  F  S IEN=$O(^HLEV(776.1,IEN)) Q:'IEN  D
 | 
|---|
| 26 |  .  S ^XTMP(XTMP,"O",IEN)=$P($G(^HLEV(776.1,IEN,0)),U)_U_$$IENSUM(IEN)
 | 
|---|
| 27 |  Q
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 | POST ; Called by KIDS post-init...
 | 
|---|
| 33 |  N NO,TEXT,XMDUZ,XMSUB,XMTEXT,XMZ
 | 
|---|
| 34 |  N %KMPRJT,%XX,%ZH0,%ZHFN,C,D0,DA,DG,DICR,DIFRFRV1,DIFROM,DIU,I,IEN
 | 
|---|
| 35 |  N J,X,XG255,XGATRSET,XGCURATR,XGEMPATR,XGPAD,XGRT,XGSCRN
 | 
|---|
| 36 |  N XQCH,ZQJMP,XQSV,XWT,XQUSER,XQZ,Y
 | 
|---|
| 37 |  N XPD,XPD0,XPDA,XPDBLD,XPDCHECK,XPDCP,XPDD,XPDGREF,XPDIDCNT
 | 
|---|
| 38 |  N XPDIDMOD,XPDIDTOT,XPDIDVT,XPDIT,XPDNM,XPDPKG,XPDRTN,XPDSET
 | 
|---|
| 39 |  N XPDSET1,XPDST,XPDT
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 |  ; Load 776.999 file entry if needed...
 | 
|---|
| 42 |  D LOADPAR
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 |  ; Update list of monitors...
 | 
|---|
| 45 |  D COMPMON
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 |  ; Send email message to DUZ...
 | 
|---|
| 48 |  KILL ^TMP($J,"HLMAIL")
 | 
|---|
| 49 |  D ADD("The installation of the Event Monitoring software held in patch")
 | 
|---|
| 50 |  D ADD("HL*1.6*109 is complete. ")
 | 
|---|
| 51 |  S XTMP=$O(^XTMP("HLEV INSTALL 9999999.99999"),-1)
 | 
|---|
| 52 |  I XTMP]"",$D(^XTMP(XTMP)) D MAILMON
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 |  ; Send Mailman message.
 | 
|---|
| 55 |  S XMDUZ=.5,XMSUB="HL*1.6*109 Installation - Site# "_$P($$SITE^VASITE,U,3)
 | 
|---|
| 56 |  S XMTEXT="^TMP("_$J_",""HLMAIL"","
 | 
|---|
| 57 |  S XMY("HL7SystemMonitoring@med.va.gov")=""
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 |  D ^XMD
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  I '$D(ZTQUEUED) W !!,"Setup instructions message #",$G(XMZ)," sent..."
 | 
|---|
| 62 |  KILL ^TMP($J,"HLMAIL")
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 |  D DELMON ; Delete monitor(2)...
 | 
|---|
| 65 |  D DELMGRP ; Delete mail group(s) from monitor(s)...
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 |  ; Start a new master job...
 | 
|---|
| 68 |  D STARTJOB^HLEVMST
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 | DELMON ; Delete renamed, or now unwanted official monitors...
 | 
|---|
| 73 |  N DA,DIE,DR
 | 
|---|
| 74 |  D DELONE("STUB 870 SEARCH")
 | 
|---|
| 75 |  D DELONE("XREF CHECK - FILE 772 & 773")
 | 
|---|
| 76 |  Q
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 | DELONE(NAME) ; Delete a monitor...
 | 
|---|
| 79 |  N DA
 | 
|---|
| 80 |  QUIT:$G(NAME)']""  ;->
 | 
|---|
| 81 |  F  S DA=+$O(^HLEV(776.1,"B",NAME,0)) Q:'DA  D
 | 
|---|
| 82 |  .  N DIK,DR
 | 
|---|
| 83 |  .  S DIK="^HLEV(776.1,"
 | 
|---|
| 84 |  .  D ^DIK
 | 
|---|
| 85 |  Q
 | 
|---|
| 86 |  ;
 | 
|---|
| 87 | LOADPAR ; Load 776.999 file...
 | 
|---|
| 88 |  QUIT:$G(^HLEV(776.999,1,0))]""  ;->
 | 
|---|
| 89 |  S $P(^HLEV(776.999,0),U,3)=1,$P(^HLEV(776.999,0),U,4)=1
 | 
|---|
| 90 |  S ^HLEV(776.999,1,0)="SYSTEM^A^120^96^^A"
 | 
|---|
| 91 |  S ^HLEV(776.999,"B","SYSTEM",1)=""
 | 
|---|
| 92 |  Q
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 | COMPMON ; Create list of monitors that have been changed...
 | 
|---|
| 95 |  N DATA,IEN,NM,XTMP
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 |  S XTMP=$O(^XTMP("HLEV INSTALL 9999999.999999999"),-1)
 | 
|---|
| 98 |  QUIT:XTMP'["HLEV INSTALL"  ;->
 | 
|---|
| 99 |  ;
 | 
|---|
| 100 |  S IEN=0
 | 
|---|
| 101 |  F  S IEN=$O(^HLEV(776.1,IEN)) Q:IEN'>0  D
 | 
|---|
| 102 |  .  S $P(^XTMP(XTMP,"O",IEN),U,3)=$P($G(^HLEV(776.1,+IEN,0)),U)
 | 
|---|
| 103 |  .  S $P(^XTMP(XTMP,"O",IEN),U,4)=$$IENSUM(IEN)
 | 
|---|
| 104 |  .  S DATA=^XTMP(XTMP,"O",IEN)
 | 
|---|
| 105 |  .  QUIT:$P(DATA,U)'=$P(DATA,U,3)  ;-> Names don't match
 | 
|---|
| 106 |  .  QUIT:$P(DATA,U,2)'=$P(DATA,U,4)  ;-> Checksums don't match
 | 
|---|
| 107 |  .  KILL ^XTMP(XTMP,"O",IEN)
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 |  ; Rearrange into new and "used" (pre-existing) monitors...
 | 
|---|
| 110 |  KILL ^XTMP(XTMP,"NEW"),^XTMP(XTMP,"OLD")
 | 
|---|
| 111 |  S IEN=0
 | 
|---|
| 112 |  F  S IEN=$O(^XTMP(XTMP,"O",IEN)) Q:'IEN  D
 | 
|---|
| 113 |  .  S DATA=^XTMP(XTMP,"O",IEN) QUIT:DATA']""  ;->
 | 
|---|
| 114 |  .  S NM=$P(DATA,U,3)
 | 
|---|
| 115 |  .  S:$P(DATA,U)']"" ^XTMP(XTMP,"NEW",NM,IEN)=DATA
 | 
|---|
| 116 |  .  S:$P(DATA,U)]"" ^XTMP(XTMP,"OLD",NM,IEN)=DATA
 | 
|---|
| 117 |  ;
 | 
|---|
| 118 |  KILL ^XTMP(XTMP,"O")
 | 
|---|
| 119 |  ;
 | 
|---|
| 120 |  Q
 | 
|---|
| 121 |  ;
 | 
|---|
| 122 | ETHL7 ; Check/reset PACKAGE NAME in HL7 Monitor Event Type file (#776.3)...
 | 
|---|
| 123 |  N DA,DIE,DR,IEN,IENS,PCE
 | 
|---|
| 124 |  ;
 | 
|---|
| 125 |  S IENS="1^2^3^4^5^6^7^8^9^10^11^12^13^14^15^16^17^18^100^101^102^103^104^105^106^107^108^109^200^201^202^203^204^205^206^207^208^209^210^211^213^214^215^216"
 | 
|---|
| 126 |  ;
 | 
|---|
| 127 |  F PCE=1:1:$L(IENS,U) D
 | 
|---|
| 128 |  .  S IEN=$P(IENS,U,+PCE) QUIT:$G(^HLEV(776.3,IEN,0))']""  ;->
 | 
|---|
| 129 |  .  S DA=IEN,DIE=776.3,DR=".08///HEALTH LEVEL SEVEN"
 | 
|---|
| 130 |  .  D ^DIE
 | 
|---|
| 131 |  ;
 | 
|---|
| 132 |  Q
 | 
|---|
| 133 |  ;
 | 
|---|
| 134 | MAILMON ; Add to new or changed monitors to mail text...
 | 
|---|
| 135 |  N HDR,NM,TXT,TYP
 | 
|---|
| 136 |  ;
 | 
|---|
| 137 |  D ADD(" - New and changed monitors.")
 | 
|---|
| 138 |  ;
 | 
|---|
| 139 |  S TYPE=""
 | 
|---|
| 140 |  F  S TYPE=$O(^XTMP(XTMP,TYPE)) Q:TYPE']""  D
 | 
|---|
| 141 |  .  D ADD("")
 | 
|---|
| 142 |  .  S HDR=$S(TYPE="OLD":"Monitors changed during installation",TYPE="NEW":"New monitors",1:"") QUIT:HDR']""  ;->
 | 
|---|
| 143 |  .  D ADD(HDR),ADD($$REPEAT^XLFSTR("-",$L(HDR)))
 | 
|---|
| 144 |  .  S NM="",TXT=""
 | 
|---|
| 145 |  .  F  S NM=$O(^XTMP(XTMP,TYPE,NM)) Q:NM']""  D
 | 
|---|
| 146 |  .  .  S TXT(1)=$E(NM_$$REPEAT^XLFSTR(" ",40),1,35)
 | 
|---|
| 147 |  .  .  S TXT=TXT_TXT(1)
 | 
|---|
| 148 |  .  .  I $L(TXT)>35 D ADD(TXT) S TXT=""
 | 
|---|
| 149 |  .  I $L(TXT)>0 D ADD(TXT)
 | 
|---|
| 150 |  ;
 | 
|---|
| 151 |  Q
 | 
|---|
| 152 |  ;
 | 
|---|
| 153 | ADD(TXT) ; Add text to ^TMP($J,"HLMAIL")
 | 
|---|
| 154 |  N NO
 | 
|---|
| 155 |  S NO=$O(^TMP($J,"HLMAIL",":"),-1)+1
 | 
|---|
| 156 |  S ^TMP($J,"HLMAIL",+NO)=TXT
 | 
|---|
| 157 |  Q
 | 
|---|
| 158 |  ;
 | 
|---|
| 159 | IENSUM(IEN) ; Checksum of entry...
 | 
|---|
| 160 |  N ASC,CHAR,LP,POS,ST,SUM,TXT,VAL
 | 
|---|
| 161 |  S SUM=0
 | 
|---|
| 162 |  S LP="^HLEV(776.1,"_IEN,ST=LP_",",LP=LP_")"
 | 
|---|
| 163 |  F  S LP=$Q(@LP) Q:LP'[ST  D
 | 
|---|
| 164 |  .  S TXT=LP_"="_@LP
 | 
|---|
| 165 |  .  F POS=1:1:$L(TXT) D
 | 
|---|
| 166 |  .  .  S CHAR=$E(TXT,POS),ASC=$A(CHAR)
 | 
|---|
| 167 |  .  .  S SUM=SUM+(ASC*POS)
 | 
|---|
| 168 |  Q SUM
 | 
|---|
| 169 |  ;
 | 
|---|
| 170 | DELMGRP ; Delete mailgroup in monitor...
 | 
|---|
| 171 |  N IEN,MIEN
 | 
|---|
| 172 |  ;
 | 
|---|
| 173 |  ; CHECK 773 AC XREF --- @ --- HL7DevelopmentTeam@med.va.gov
 | 
|---|
| 174 |  S IEN=$O(^HLEV(776.1,"B","CHECK 773 AC XREF",0))
 | 
|---|
| 175 |  S MIEN=$O(^HLEV(776.1,+IEN,62,"B","HL7DevelopmentTeam@med.va.gov",0))
 | 
|---|
| 176 |  D DELGRP1(IEN,MIEN)
 | 
|---|
| 177 |  ;
 | 
|---|
| 178 |  ; LINK (870) CHECKS
 | 
|---|
| 179 |  S IEN=$O(^HLEV(776.1,"B","LINK (870) CHECKS",0))
 | 
|---|
| 180 |  S MIEN=$O(^HLEV(776.1,+IEN,62,"B","HL7DevelopmentTeam@med.va.gov",0))
 | 
|---|
| 181 |  D DELGRP1(IEN,MIEN)
 | 
|---|
| 182 |  ;
 | 
|---|
| 183 |  Q
 | 
|---|
| 184 |  ;
 | 
|---|
| 185 |  ;
 | 
|---|
| 186 | DELGRP1(IEN,MIEN) ; Delete one remote mail group...
 | 
|---|
| 187 |  N DIE,DIE,DR
 | 
|---|
| 188 |  QUIT:'$D(^HLEV(776.1,+IEN,62,+MIEN,0))  ;->
 | 
|---|
| 189 |  S DIE="^HLEV(776.1,"_IEN_",62,",DA(1)=IEN,DA=MIEN
 | 
|---|
| 190 |  S DR=".01///@"
 | 
|---|
| 191 |  D ^DIE
 | 
|---|
| 192 |  Q
 | 
|---|
| 193 |  ;
 | 
|---|
| 194 | EOR ;HLEVINIT - Event Monitor PRE&POST-INITS ;5/16/03 14:42
 | 
|---|