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