| 1 | HDISVCUT ;CT/GRR ; 19 Apr 2006  10:57 AM | 
|---|
| 2 | ;;1.0;HEALTH DATA & INFORMATICS;**6**;Feb 22, 2005 | 
|---|
| 3 | BLDSTAT(HDISFILE,HDISFN,HDISSC,HDISSDT,HDISARRY) ; | 
|---|
| 4 | N HDISOUT,CODE,HDISTDTX,Y | 
|---|
| 5 | I HDISFILE=""!(HDISFN="")!(HDISARRY="") S HDISOUT=0_"^Parameter Missing" G QUIT | 
|---|
| 6 | K @HDISARRY | 
|---|
| 7 | S DIC=7115.3,DIC(0)="Z",X="DOMAIN STATUS UPDATE" D ^DIC K DIC | 
|---|
| 8 | I Y<0 S HDISOUT=0_"^DOMAIN STATUS UPDATE Template Missing" G QUIT | 
|---|
| 9 | S HDIST=+Y,HDISY=Y,HDISY(0)=Y(0) | 
|---|
| 10 | S HDISSRC=$P($$SITE^VASITE(),"^",3) | 
|---|
| 11 | S HDISPROD=$$PROD^XUPROD() | 
|---|
| 12 | S HDISTDTX=$$FMTXML^HDISVU01(HDISSDT,"","") | 
|---|
| 13 | S HDISMD=$G(^XMB("NETNAME")) | 
|---|
| 14 | S @HDISARRY@(1)="<?xml version=""1.0"" encoding=""utf-8"" ?>" | 
|---|
| 15 | ;S @HDISARRY@(1)=$$XMLHDR^XOBVLIB() | 
|---|
| 16 | S @HDISARRY@(2)="<"_$P(HDISY(0),"^",4)_" "_$G(^HDIS(7115.3,HDIST,1))_">" | 
|---|
| 17 | N Z K Z D ZINIT | 
|---|
| 18 | S Z(20)=HDISSRC | 
|---|
| 19 | S Z(22)=HDISPROD | 
|---|
| 20 | S Z(30)=HDISMD | 
|---|
| 21 | S Z(60)=HDISFILE | 
|---|
| 22 | S Z(70)=HDISFN | 
|---|
| 23 | S Z(80)=HDISSC | 
|---|
| 24 | S Z(90)=HDISTDTX | 
|---|
| 25 | D XMLOUT^HDISXML(HDIST,"20,22,30,60,70,80,90,10/","Z",HDISARRY,.HDERR) | 
|---|
| 26 | S HDISOUT=1 | 
|---|
| 27 | QUIT Q HDISOUT | 
|---|
| 28 | ; | 
|---|
| 29 | ZINIT S Z(22)="" F Z=10:10:100 S Z(Z)="" | 
|---|
| 30 | Q | 
|---|
| 31 | ; | 
|---|
| 32 | ; | 
|---|
| 33 | BLDSND(HDISFILE,HDISFN,HDISSTCD,HDISSDT,HDISARRY,HDISINP) ; | 
|---|
| 34 | ;Updating of central server disabled (return success) | 
|---|
| 35 | I $$GETSDIS^HDISVF03() Q 1 | 
|---|
| 36 | N HDISOUT | 
|---|
| 37 | S:HDISSDT="" HDISSDT=DT | 
|---|
| 38 | S:HDISARRY="" HDISARRY=$NA(^TMP("HDISSBUILD",$J)) | 
|---|
| 39 | S HDISOUT=$$BLDSTAT(HDISFILE,HDISFN,HDISSTCD,HDISSDT,HDISARRY) | 
|---|
| 40 | I 'HDISOUT Q HDISOUT | 
|---|
| 41 | S HDISOUT=$$SNDXML^HDISVM02(HDISARRY,2,HDISINP) | 
|---|
| 42 | Q HDISOUT | 
|---|
| 43 | ; | 
|---|
| 44 | STATUPD(FILE,FIELD,CODE,DATE) ;Encompassing local status update call | 
|---|
| 45 | ; Input : FILE - File number | 
|---|
| 46 | ;         FIELD - Field number (defaults to .01) | 
|---|
| 47 | ;         CODE - Status code to set (defaults to "not started") | 
|---|
| 48 | ;         DATE - FileMan date/time to return status for (optional) | 
|---|
| 49 | ;                (defaults to NOW) | 
|---|
| 50 | ;Output : 1 = Success     0^Text = Failure | 
|---|
| 51 | ; Notes : This call will update the local status, build the Status | 
|---|
| 52 | ;         Update XML document, and forward the Status Update XML | 
|---|
| 53 | ;         document to the centralized server | 
|---|
| 54 | ;       : If time is not included with the date, 1 second past | 
|---|
| 55 | ;         midnight will be used as the time | 
|---|
| 56 | ;       : If an entry for the given file/field and date/time already | 
|---|
| 57 | ;         exists, the existing entry will be updated to reflect the | 
|---|
| 58 | ;         given status | 
|---|
| 59 | N XMLARR,TMPARR,OUTPUT | 
|---|
| 60 | ;Check input | 
|---|
| 61 | S FILE=+$G(FILE) | 
|---|
| 62 | I 'FILE Q "0^Parameter FILE was not passed" | 
|---|
| 63 | S FIELD=+$G(FIELD) | 
|---|
| 64 | I 'FIELD S FIELD=.01 | 
|---|
| 65 | S CODE=+$G(CODE) | 
|---|
| 66 | S DATE=+$G(DATE) | 
|---|
| 67 | I 'DATE S DATE=$$NOW^XLFDT() | 
|---|
| 68 | I '$P(DATE,".",2) S $P(DATE,".",2)="000001" | 
|---|
| 69 | ;Update local status | 
|---|
| 70 | D SETSTAT^HDISVF01(FILE,FIELD,CODE,DATE,1) | 
|---|
| 71 | ;Updating of central server disabled (return success) | 
|---|
| 72 | I $$GETSDIS^HDISVF03() Q 1 | 
|---|
| 73 | ;Create status update xml doc and send to central server | 
|---|
| 74 | S XMLARR=$NA(^TMP("HDISVCUT",$J,"XML")) | 
|---|
| 75 | S TMPARR=$NA(^TMP("HDISVCUT",$J,"HDISINP")) | 
|---|
| 76 | K @XMLARR,@TMPARR | 
|---|
| 77 | S OUTPUT=$$BLDSND^HDISVCUT(FILE,FIELD,CODE,DATE,XMLARR,TMPARR) | 
|---|
| 78 | K @XMLARR,@TMPARR | 
|---|
| 79 | Q OUTPUT | 
|---|
| 80 | ; | 
|---|
| 81 | VUID(HDDOM,HDROUT) ;Instantiate VUIDs for set of code fields | 
|---|
| 82 | ; Input: | 
|---|
| 83 | ;     HDDOM - Domain Name (i.e. ORDERS) | 
|---|
| 84 | ;     HDROUT - Routine containing VUID Sets-Of-Code data (i.e. HDI1005B) | 
|---|
| 85 | ;Output: 0 = Stop post-install (error) | 
|---|
| 86 | ;        1 = Continue with post-install | 
|---|
| 87 | N HDIMSG | 
|---|
| 88 | S HDIMSG(1)=" " | 
|---|
| 89 | S HDIMSG(2)="Seeding XTID VUID FOR SET OF CODES file (#8985.1) with "_HDDOM_" data" | 
|---|
| 90 | S HDIMSG(3)=" " | 
|---|
| 91 | D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 92 | I '$$VUIDL^HDISVU02(HDDOM,HDROUT) Q 0 | 
|---|
| 93 | Q 1 | 
|---|
| 94 | ; | 
|---|
| 95 | UPDTDOM(HDDOM,HDISDFFS) ;Add Domain info to the HDIS DOMAIN file | 
|---|
| 96 | ; | 
|---|
| 97 | ; Input: HDDOM - Domain Name | 
|---|
| 98 | ;        HDISDFFS - Array containing File number set equal to Field Number (optional, .01 assumed) | 
|---|
| 99 | ;                      (i.e.   HDISDFFS(100.01)="") | 
|---|
| 100 | ;Output: HDISERR - Set to 1 when error incurred | 
|---|
| 101 | N HDIEN,HDIMSG | 
|---|
| 102 | S HDIMSG(1)=" " | 
|---|
| 103 | S HDIMSG(2)="Adding "_HDDOM_" Domain and related fields to" | 
|---|
| 104 | S HDIMSG(3)="HDIS DOMAIN file (#7115.1)" | 
|---|
| 105 | S HDIMSG(4)=" " | 
|---|
| 106 | D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 107 | I '$$FINDDOM^HDISVF09(HDDOM,.HDISDFFS,1,.HDISDIEN,.HDISERRM) D  Q 0 | 
|---|
| 108 | .N HDIEN,HDIMSG | 
|---|
| 109 | .S HDIMSG(1)=" " | 
|---|
| 110 | .S HDIMSG(2)="Error occurred when updating HDIS DOMAIN file." | 
|---|
| 111 | .S HDIMSG(3)=HDISERRM | 
|---|
| 112 | .S HDIMSG(4)="  " | 
|---|
| 113 | .D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 114 | Q 1 | 
|---|
| 115 | ; | 
|---|
| 116 | ; | 
|---|
| 117 | TESTACT() ;Set's the HDIS SYSTEM file fields to reflect a mirrored test account and remove any multiple entries | 
|---|
| 118 | ; | 
|---|
| 119 | ;Check file for multiple entries and delete if found | 
|---|
| 120 | ;PATCH 6 | 
|---|
| 121 | ; | 
|---|
| 122 | I $O(^HDISF(7118.21,1))>0 D  ;multiple entries found | 
|---|
| 123 | .N IEN,FDA,DA,DIK | 
|---|
| 124 | .S IEN=1 | 
|---|
| 125 | .F  S IEN=$O(^HDISF(7118.21,IEN)) Q:IEN'>0  D | 
|---|
| 126 | ..S DA=IEN | 
|---|
| 127 | ..S DIK="^HDISF(7118.21," | 
|---|
| 128 | ..D ^DIK | 
|---|
| 129 | K FDA(1) | 
|---|
| 130 | S FDA(1,7118.21,"?+1,",.01)=$P($G(^HDISF(7118.21,1,0)),"^",1) | 
|---|
| 131 | S FDA(1,7118.21,"?+1,",.02)=$G(^XMB("NETNAME")) | 
|---|
| 132 | S FDA(1,7118.21,"?+1,",.03)=$$PROD^XUPROD() | 
|---|
| 133 | D UPDATE^DIE("","FDA(1)","RSLT","ERR(1)") | 
|---|
| 134 | Q 1 | 
|---|
| 135 | ; | 
|---|