HDISVCUT ;CT/GRR ; 19 Apr 2006 10:57 AM ;;1.0;HEALTH DATA & INFORMATICS;**6**;Feb 22, 2005 BLDSTAT(HDISFILE,HDISFN,HDISSC,HDISSDT,HDISARRY) ; N HDISOUT,CODE,HDISTDTX,Y I HDISFILE=""!(HDISFN="")!(HDISARRY="") S HDISOUT=0_"^Parameter Missing" G QUIT K @HDISARRY S DIC=7115.3,DIC(0)="Z",X="DOMAIN STATUS UPDATE" D ^DIC K DIC I Y<0 S HDISOUT=0_"^DOMAIN STATUS UPDATE Template Missing" G QUIT S HDIST=+Y,HDISY=Y,HDISY(0)=Y(0) S HDISSRC=$P($$SITE^VASITE(),"^",3) S HDISPROD=$$PROD^XUPROD() S HDISTDTX=$$FMTXML^HDISVU01(HDISSDT,"","") S HDISMD=$G(^XMB("NETNAME")) S @HDISARRY@(1)="" ;S @HDISARRY@(1)=$$XMLHDR^XOBVLIB() S @HDISARRY@(2)="<"_$P(HDISY(0),"^",4)_" "_$G(^HDIS(7115.3,HDIST,1))_">" N Z K Z D ZINIT S Z(20)=HDISSRC S Z(22)=HDISPROD S Z(30)=HDISMD S Z(60)=HDISFILE S Z(70)=HDISFN S Z(80)=HDISSC S Z(90)=HDISTDTX D XMLOUT^HDISXML(HDIST,"20,22,30,60,70,80,90,10/","Z",HDISARRY,.HDERR) S HDISOUT=1 QUIT Q HDISOUT ; ZINIT S Z(22)="" F Z=10:10:100 S Z(Z)="" Q ; ; BLDSND(HDISFILE,HDISFN,HDISSTCD,HDISSDT,HDISARRY,HDISINP) ; ;Updating of central server disabled (return success) I $$GETSDIS^HDISVF03() Q 1 N HDISOUT S:HDISSDT="" HDISSDT=DT S:HDISARRY="" HDISARRY=$NA(^TMP("HDISSBUILD",$J)) S HDISOUT=$$BLDSTAT(HDISFILE,HDISFN,HDISSTCD,HDISSDT,HDISARRY) I 'HDISOUT Q HDISOUT S HDISOUT=$$SNDXML^HDISVM02(HDISARRY,2,HDISINP) Q HDISOUT ; STATUPD(FILE,FIELD,CODE,DATE) ;Encompassing local status update call ; Input : FILE - File number ; FIELD - Field number (defaults to .01) ; CODE - Status code to set (defaults to "not started") ; DATE - FileMan date/time to return status for (optional) ; (defaults to NOW) ;Output : 1 = Success 0^Text = Failure ; Notes : This call will update the local status, build the Status ; Update XML document, and forward the Status Update XML ; document to the centralized server ; : If time is not included with the date, 1 second past ; midnight will be used as the time ; : If an entry for the given file/field and date/time already ; exists, the existing entry will be updated to reflect the ; given status N XMLARR,TMPARR,OUTPUT ;Check input S FILE=+$G(FILE) I 'FILE Q "0^Parameter FILE was not passed" S FIELD=+$G(FIELD) I 'FIELD S FIELD=.01 S CODE=+$G(CODE) S DATE=+$G(DATE) I 'DATE S DATE=$$NOW^XLFDT() I '$P(DATE,".",2) S $P(DATE,".",2)="000001" ;Update local status D SETSTAT^HDISVF01(FILE,FIELD,CODE,DATE,1) ;Updating of central server disabled (return success) I $$GETSDIS^HDISVF03() Q 1 ;Create status update xml doc and send to central server S XMLARR=$NA(^TMP("HDISVCUT",$J,"XML")) S TMPARR=$NA(^TMP("HDISVCUT",$J,"HDISINP")) K @XMLARR,@TMPARR S OUTPUT=$$BLDSND^HDISVCUT(FILE,FIELD,CODE,DATE,XMLARR,TMPARR) K @XMLARR,@TMPARR Q OUTPUT ; VUID(HDDOM,HDROUT) ;Instantiate VUIDs for set of code fields ; Input: ; HDDOM - Domain Name (i.e. ORDERS) ; HDROUT - Routine containing VUID Sets-Of-Code data (i.e. HDI1005B) ;Output: 0 = Stop post-install (error) ; 1 = Continue with post-install N HDIMSG S HDIMSG(1)=" " S HDIMSG(2)="Seeding XTID VUID FOR SET OF CODES file (#8985.1) with "_HDDOM_" data" S HDIMSG(3)=" " D MES^XPDUTL(.HDIMSG) K HDIMSG I '$$VUIDL^HDISVU02(HDDOM,HDROUT) Q 0 Q 1 ; UPDTDOM(HDDOM,HDISDFFS) ;Add Domain info to the HDIS DOMAIN file ; ; Input: HDDOM - Domain Name ; HDISDFFS - Array containing File number set equal to Field Number (optional, .01 assumed) ; (i.e. HDISDFFS(100.01)="") ;Output: HDISERR - Set to 1 when error incurred N HDIEN,HDIMSG S HDIMSG(1)=" " S HDIMSG(2)="Adding "_HDDOM_" Domain and related fields to" S HDIMSG(3)="HDIS DOMAIN file (#7115.1)" S HDIMSG(4)=" " D MES^XPDUTL(.HDIMSG) K HDIMSG I '$$FINDDOM^HDISVF09(HDDOM,.HDISDFFS,1,.HDISDIEN,.HDISERRM) D Q 0 .N HDIEN,HDIMSG .S HDIMSG(1)=" " .S HDIMSG(2)="Error occurred when updating HDIS DOMAIN file." .S HDIMSG(3)=HDISERRM .S HDIMSG(4)=" " .D MES^XPDUTL(.HDIMSG) K HDIMSG Q 1 ; ; TESTACT() ;Set's the HDIS SYSTEM file fields to reflect a mirrored test account and remove any multiple entries ; ;Check file for multiple entries and delete if found ;PATCH 6 ; I $O(^HDISF(7118.21,1))>0 D ;multiple entries found .N IEN,FDA,DA,DIK .S IEN=1 .F S IEN=$O(^HDISF(7118.21,IEN)) Q:IEN'>0 D ..S DA=IEN ..S DIK="^HDISF(7118.21," ..D ^DIK K FDA(1) S FDA(1,7118.21,"?+1,",.01)=$P($G(^HDISF(7118.21,1,0)),"^",1) S FDA(1,7118.21,"?+1,",.02)=$G(^XMB("NETNAME")) S FDA(1,7118.21,"?+1,",.03)=$$PROD^XUPROD() D UPDATE^DIE("","FDA(1)","RSLT","ERR(1)") Q 1 ;