| 1 | HDI1002A ;BPFO/JRP,ALB/RMO - PATCH 2 POST INSTALL;9/27/2005
 | 
|---|
| 2 |  ;;1.0;HEALTH DATA & INFORMATICS;**2**;Feb 22, 2005
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | POST ;Main entry point for post-install routine
 | 
|---|
| 5 |  ; Input: None
 | 
|---|
| 6 |  ;        All variables set by Kernel for KIDS post-installs
 | 
|---|
| 7 |  ;Output: None
 | 
|---|
| 8 |  N HDIMSG
 | 
|---|
| 9 |  S HDIMSG(1)=" "
 | 
|---|
| 10 |  S HDIMSG(2)="~~~~~~~~~~~~~~~~~~~~"
 | 
|---|
| 11 |  S HDIMSG(3)="Post-Installation (POST^HDI1002A) will now be run"
 | 
|---|
| 12 |  S HDIMSG(4)=" "
 | 
|---|
| 13 |  D MES^XPDUTL(.HDIMSG) K HDIMSG
 | 
|---|
| 14 |  D SCAN
 | 
|---|
| 15 |  S HDIMSG(1)=" "
 | 
|---|
| 16 |  S HDIMSG(2)="Post-Installation ran to completion"
 | 
|---|
| 17 |  S HDIMSG(3)="~~~~~~~~~~~~~~~~~~~~"
 | 
|---|
| 18 |  S HDIMSG(4)=" "
 | 
|---|
| 19 |  D MES^XPDUTL(.HDIMSG) K HDIMSG
 | 
|---|
| 20 |  Q
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 | SCAN ;Scan XTID VUID FOR SET OF CODES file for duplicate statuses
 | 
|---|
| 23 |  ; Input: None
 | 
|---|
| 24 |  ;Output: None
 | 
|---|
| 25 |  ; Notes: Call assumes it is being run within the context of KIDS
 | 
|---|
| 26 |  N COUNT,PTRXTID,XPDIDTOT,TEXT
 | 
|---|
| 27 |  S TEXT(1)=" "
 | 
|---|
| 28 |  S TEXT(2)="Scanning EFFECTIVE DATE/TIME multiple (subfile #8985.11)"
 | 
|---|
| 29 |  S TEXT(3)="of the XTID VUID FOR SET OF CODES file (#8985.1) for"
 | 
|---|
| 30 |  S TEXT(4)="consecutive storage of the same status"
 | 
|---|
| 31 |  S TEXT(5)=" "
 | 
|---|
| 32 |  D MES^XPDUTL(.TEXT)
 | 
|---|
| 33 |  S XPDIDTOT=+$O(^XTID(8985.1,"A"),-1)
 | 
|---|
| 34 |  ;Traverse file
 | 
|---|
| 35 |  S PTRXTID=0
 | 
|---|
| 36 |  F COUNT=1:1 S PTRXTID=+$O(^XTID(8985.1,PTRXTID)) Q:'PTRXTID  D
 | 
|---|
| 37 |  .;Show progress through KIDS status bar
 | 
|---|
| 38 |  .I '(COUNT#10) D UPDATE^XPDID(PTRXTID)
 | 
|---|
| 39 |  .;Execute check
 | 
|---|
| 40 |  .D CHECK(PTRXTID)
 | 
|---|
| 41 |  D UPDATE^XPDID(XPDIDTOT)
 | 
|---|
| 42 |  Q
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 | CHECK(PTRXTID) ;Check entry for duplicate statuses
 | 
|---|
| 45 |  ; Input: PTRXTID - Pointer to XTID VUID FOR SET OF CODES file
 | 
|---|
| 46 |  ;Output: None
 | 
|---|
| 47 |  ; Notes: Assumes validity of PTRXTID (internal call)
 | 
|---|
| 48 |  S PTRXTID=+$G(PTRXTID) Q:'PTRXTID
 | 
|---|
| 49 |  N MLTIEN,STAT,STDT,PRVSTAT,PRVSTDT,NODE
 | 
|---|
| 50 |  S (PRVSTAT,PRVSTDT)=""
 | 
|---|
| 51 |  ;Traverse date x-ref of multiple
 | 
|---|
| 52 |  S STDT=0
 | 
|---|
| 53 |  F  S STDT=+$O(^XTID(8985.1,PTRXTID,"TERMSTATUS","B",STDT)) Q:'STDT  D
 | 
|---|
| 54 |  .S MLTIEN=0
 | 
|---|
| 55 |  .F  S MLTIEN=+$O(^XTID(8985.1,PTRXTID,"TERMSTATUS","B",STDT,MLTIEN)) Q:'MLTIEN  D
 | 
|---|
| 56 |  ..;Get node/status
 | 
|---|
| 57 |  ..S NODE=$G(^XTID(8985.1,PTRXTID,"TERMSTATUS",MLTIEN,0))
 | 
|---|
| 58 |  ..S STAT=$P(NODE,"^",2)
 | 
|---|
| 59 |  ..;Bad node/status - delete and quit
 | 
|---|
| 60 |  ..I (NODE="")!(NODE="^")!(STAT="") D  Q
 | 
|---|
| 61 |  ...D DELETE(PTRXTID,MLTIEN)
 | 
|---|
| 62 |  ..;First status entry - set as previous status and quit
 | 
|---|
| 63 |  ..I PRVSTAT="" D SETPRV Q
 | 
|---|
| 64 |  ..;Same as previous status - delete
 | 
|---|
| 65 |  ..I STAT=PRVSTAT D DELETE(PTRXTID,MLTIEN) Q
 | 
|---|
| 66 |  ..;Different status - keep and remember status change
 | 
|---|
| 67 |  ..D SETPRV
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 | DELETE(PTRXTID,MLTIEN) ;Delete entry from EFFECTIVE DATE/TIME multiple
 | 
|---|
| 71 |  ; Input: PTRXTID - Pointer to XTID XTID VUID FOR SET OF CODES file
 | 
|---|
| 72 |  ;        MLTIEN - Pointer to entry in EFFECTIVE DATE/TIME multiple
 | 
|---|
| 73 |  ;Output: None
 | 
|---|
| 74 |  ; Notes: Assumes validity of PTRXTID & MLTIEN (internal call)
 | 
|---|
| 75 |  S PTRXTID=+$G(PTRXTID) Q:'PTRXTID
 | 
|---|
| 76 |  S MLTIEN=+$G(MLTIEN) Q:'MLTIEN
 | 
|---|
| 77 |  N DA,DIK
 | 
|---|
| 78 |  S DA=MLTIEN
 | 
|---|
| 79 |  S DA(1)=PTRXTID
 | 
|---|
| 80 |  S DIK="^XTID(8985.1,"_DA(1)_",""TERMSTATUS"","
 | 
|---|
| 81 |  D ^DIK
 | 
|---|
| 82 |  Q
 | 
|---|
| 83 |  ;
 | 
|---|
| 84 | SETPRV ;Set previous values
 | 
|---|
| 85 |  ; Input: STAT
 | 
|---|
| 86 |  ;        STDT
 | 
|---|
| 87 |  ;Output: PRVSTAT
 | 
|---|
| 88 |  ;        PRVSTDT
 | 
|---|
| 89 |  S PRVSTAT=$G(STAT)
 | 
|---|
| 90 |  S PRVSTDT=$G(STDT)
 | 
|---|
| 91 |  Q
 | 
|---|