| [613] | 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 | 
|---|