| 1 | GMTSOBI ; SLC/KER - HS Object - Import/Install    ; 01/06/2003
 | 
|---|
| 2 |  ;;2.7;Health Summary;**58**;Oct 20, 1995
 | 
|---|
| 3 |  ;                      
 | 
|---|
| 4 |  ; External References
 | 
|---|
| 5 |  ;   DBIA 10096  ^%ZOSF("DEL"
 | 
|---|
| 6 |  ;   DBIA 10013  IX1^DIK
 | 
|---|
| 7 |  ;   DBIA 10112  $$SITE^VASITE
 | 
|---|
| 8 |  ;   DBIA  2055  $$FLDNUM^DILFD (file 142.5)
 | 
|---|
| 9 |  ;   DBIA 10103  $$NOW^XLFDT
 | 
|---|
| 10 |  ;   DBIA 10013  ^DIK
 | 
|---|
| 11 |  ;                        
 | 
|---|
| 12 | EN ; Install Object from Routine GMTSOBX
 | 
|---|
| 13 |  N DA,DIK,GMTS3,GMTS4,GMTSC,GMTSEDAT,GMTSETYP,GMTSETTL,GMTSDAO
 | 
|---|
| 14 |  N GMTSDAT,GMTSDR,GMTSEX,GMTSFAC,GMTSFRM,GMTSI,GMTSIEN,GMTSIT
 | 
|---|
| 15 |  N GMTSL,GMTSLN,GMTSNDD,GMTSOBJ,GMTSOBX,GMTSON,GMTSQIT,GMTSR
 | 
|---|
| 16 |  N GMTSROK,GMTSRT,GMTSRTN,GMTST,GMTSTE,GMTSTN,GMTSTMP,GMTSTR
 | 
|---|
| 17 |  N GMTSTTL,GMTSTXT,GMTSTYP,GMTSUSR,X
 | 
|---|
| 18 |  I +($$FLDNUM^DILFD(142.5,"NAME"))'>0!('$D(^GMT(142.5))) D  Q
 | 
|---|
| 19 |  . W !," Unable to find HEALTH SUMMARY OBJECTS file #142.5"
 | 
|---|
| 20 |  S GMTSEDAT=0,GMTSRTN="GMTSOBX",GMTSQIT=0,GMTSUSR=+($G(DUZ)) I +GMTSUSR=0 W !!," User not defined" Q
 | 
|---|
| 21 |  I +($$ROK^GMTSOBU(GMTSRTN))'>0 W !," Error:",!,"    Object not Found (routine GMTSOBX)" Q
 | 
|---|
| 22 |  F GMTSI=1:1:7 D
 | 
|---|
| 23 |  . S GMTST=$$TX^GMTSOBU(GMTSRTN,GMTSRTN,(GMTSI-1)) S:GMTST["Object:  " GMTSOBJ=$P(GMTST,"Object:  ",2)
 | 
|---|
| 24 |  . S:GMTST["From:    " GMTSFRM=$P(GMTST,"From:    ",2) S:GMTST["Sender:  " GMTSDR=$P(GMTST,"Sender:  ",2)
 | 
|---|
| 25 |  S (GMTSON,GMTSOBJ)=$P($$TX^GMTSOBU(GMTSRTN,"OBJ",1),";",2)
 | 
|---|
| 26 |  S (GMTSTN,GMTSTYP)=$P($$TX^GMTSOBU(GMTSRTN,"TYPE",1),";",2)
 | 
|---|
| 27 |  I GMTSOBJ=""!(GMTSFRM="")!(GMTSDR="") W !," Error:",!,"    Can not install object from ",GMTSRTN Q
 | 
|---|
| 28 |  W !," Installing Health Summary Object:  ",GMTSOBJ
 | 
|---|
| 29 |  I $L(GMTSTYP) D
 | 
|---|
| 30 |  . W !,"        Using Health Summary Type:  ",GMTSTYP
 | 
|---|
| 31 |  W !,"                             From:  ",GMTSFRM
 | 
|---|
| 32 |  W !,"                           Sender:  ",GMTSDR
 | 
|---|
| 33 |  S GMTSTTL=$P($$TX^GMTSOBU(GMTSRTN,"TYPE",2),";",2)
 | 
|---|
| 34 |  ;   Check Facility
 | 
|---|
| 35 |  S GMTSFAC=+($P($$SITE^VASITE,"^",3)) I +GMTSFAC=0 W !," Error:",!,"    Facility not defined" Q
 | 
|---|
| 36 |  ;   Check Object
 | 
|---|
| 37 |  W !!," Checking Health Summary Object file #142.5"
 | 
|---|
| 38 |  I $L(GMTSOBJ) D  Q:GMTSQIT
 | 
|---|
| 39 |  . N GMTSTMP S GMTSTMP=$$BOX^GMTSOBU(GMTSOBJ) I +($G(GMTSTMP))>0 W ! D ER1^GMTSOBU S GMTSQIT=1
 | 
|---|
| 40 |  ;   Check Type
 | 
|---|
| 41 |  W !," Check Health Summary Type file #142"
 | 
|---|
| 42 |  I $L(GMTSTYP) D  Q:GMTSQIT
 | 
|---|
| 43 |  . S GMTSQIT=1 N GMTSTMP S GMTSTMP=$$NWX^GMTSOBU(GMTSTYP)
 | 
|---|
| 44 |  . S:+($G(GMTSTMP))'>0 GMTSQIT=0 I +($G(GMTSTMP))>0 D
 | 
|---|
| 45 |  . . S GMTSEDAT=$$EHST^GMTSOBU I GMTSEDAT>0 D  Q
 | 
|---|
| 46 |  . . . S GMTSDAT=GMTSEDAT,GMTSQIT=0 I $L($G(GMTSETYP)),$L($G(GMTSETTL)) D
 | 
|---|
| 47 |  . . . . S GMTSTYP=GMTSETYP,GMTSTTL=GMTSETTL
 | 
|---|
| 48 |  ;   Check Title
 | 
|---|
| 49 |  W !," Checking for Duplicate Title"
 | 
|---|
| 50 |  I $L(GMTSTTL) D  Q:GMTSQIT
 | 
|---|
| 51 |  . N GMTSTMP S GMTSTMP=$$TWX^GMTSOBU(GMTSTTL) I +GMTSTMP>0 W ! D ER3^GMTSOBU S GMTSQIT=1
 | 
|---|
| 52 |  S GMTSDAT=$$TIEN^GMTSOBU S:+($G(GMTSEDAT))>0 GMTSDAT=+($G(GMTSEDAT))
 | 
|---|
| 53 |  S:GMTSDAT'>0 GMTSQIT=1
 | 
|---|
| 54 |  I GMTSQIT W !," Unable to add Health Summary Type" Q
 | 
|---|
| 55 |  S GMTSDAO=$$OIEN^GMTSOBU(GMTSFAC) S:GMTSDAO'>0 GMTSQIT=1
 | 
|---|
| 56 |  I GMTSQIT W !," Unable to add Health Summary Object" Q
 | 
|---|
| 57 |  L +^GMT(142,+GMTSDAT):0 S:'$T GMTSQIT=1
 | 
|---|
| 58 |  L +^GMT(142.5,+GMTSDAO):0 S:'$T GMTSQIT=1
 | 
|---|
| 59 |  I +($G(GMTSQIT))>0 L -^GMT(142,+GMTSDAT) L -^GMT(142,+GMTSDAO) D  Q
 | 
|---|
| 60 |  . W !," Unable to add Health Summary Type and Object"
 | 
|---|
| 61 |  I GMTSDAT>0,GMTSDAO>0,GMTSQIT'>0 D HST,HSO
 | 
|---|
| 62 |  D DELERR L -^GMT(142,+GMTSDAT) L -^GMT(142,+GMTSDAO)
 | 
|---|
| 63 |  D DONE W !
 | 
|---|
| 64 |  Q
 | 
|---|
| 65 | HST ; Install Health Summary Type
 | 
|---|
| 66 |  ;   Needs GMTSRTN, GMTSDAT, GMTSUSR, GMTSTYP, GMTSTTL
 | 
|---|
| 67 |  Q:+($G(GMTSTE))>0  N GMTSROK,GMTSI,GMTSTXT,GMTSTR,GMTSNDD,GMTSR,GMTSC,GMTSRT,GMTS3,GMTS4,DA,DIK
 | 
|---|
| 68 |  Q:+($G(GMTSQIT))>0  S GMTSQIT=0,GMTSROK=$$ROK^GMTSOBU(GMTSRTN) Q:GMTSROK'>0
 | 
|---|
| 69 |  ;   Save Type
 | 
|---|
| 70 |  I '$L(GMTSTYP)!('$L(GMTSTTL)) S GMTSQIT=1 Q
 | 
|---|
| 71 |  F GMTSI=3:1 Q:GMTSQIT  D  Q:GMTSQIT
 | 
|---|
| 72 |  . S GMTSTXT=$$TX^GMTSOBU(GMTSRTN,"TYPE",GMTSI),GMTSTXT=$P(GMTSTXT," ;",2,299)
 | 
|---|
| 73 |  . I '$L(GMTSTXT) S GMTSQIT=1 Q
 | 
|---|
| 74 |  . S GMTSTR=$P(GMTSTXT,";",1),GMTSNDD=$P(GMTSTXT,";",2)
 | 
|---|
| 75 |  . S GMTSR=$P(GMTSTR,",",2),GMTSC=$P(GMTSNDD,"^",2)
 | 
|---|
| 76 |  . Q:GMTSR>0&(GMTSC>0)&('$D(^GMT(142.1,+GMTSC)))  Q:(GMTSR>0)&(GMTSC>0)&(GMTSC>999)
 | 
|---|
| 77 |  . S:GMTSTR="0" $P(GMTSNDD,"^",3)=GMTSUSR
 | 
|---|
| 78 |  . S:GMTSTR="0"&($L(GMTSTYP)) $P(GMTSNDD,"^",1)=GMTSTYP
 | 
|---|
| 79 |  . S:GMTSTR="""T"""&($L(GMTSTTL)) $P(GMTSNDD,"^",1)=GMTSTTL
 | 
|---|
| 80 |  . S GMTSNDD=$TR(GMTSNDD,"""","") S:'$L(GMTSNDD) GMTSNDD=""""""
 | 
|---|
| 81 |  . S GMTSRT="^GMT(142,DA,"_GMTSTR_")"
 | 
|---|
| 82 |  . S DA=GMTSDAT S @GMTSRT=GMTSNDD
 | 
|---|
| 83 |  ;   Check Indexes
 | 
|---|
| 84 |  S GMTSQIT=0 F GMTSI="B","C" S GMTSR=0 F  S GMTSR=$O(^GMT(142,GMTSDAT,1,GMTSI,GMTSR)) Q:+GMTSR=0  D
 | 
|---|
| 85 |  . S GMTSC=0 F  S GMTSC=$O(^GMT(142,GMTSDAT,1,GMTSI,GMTSR,GMTSC)) Q:+GMTSC=0  D
 | 
|---|
| 86 |  . . I '$D(^GMT(142,GMTSDAT,1,GMTSC)) K ^GMT(142,GMTSDAT,1,GMTSI,GMTSR,GMTSC)
 | 
|---|
| 87 |  ;   Re-Index
 | 
|---|
| 88 |  S DA=GMTSDAT,DIK="^GMT(142," D IX1^DIK
 | 
|---|
| 89 |  ;   Check Structure (sub-file 142.01)
 | 
|---|
| 90 |  S (GMTSI,GMTS3,GMTS4)=0 F  S GMTSI=$O(^GMT(142,GMTSDAT,1,GMTSI)) Q:+GMTSI=0  D
 | 
|---|
| 91 |  . S GMTS3=GMTSI,GMTS4=GMTS4+1
 | 
|---|
| 92 |  S:GMTS3>0&(GMTS4>0)&($D(^GMT(142,GMTSDAT,1,0))) ^GMT(142,+GMTSDAT,1,0)="^142.01IA^"_GMTS3_"^"_GMTS4
 | 
|---|
| 93 |  Q
 | 
|---|
| 94 | HSO ; Install Health Summary Object
 | 
|---|
| 95 |  ;   Needs GMTSRTN, GMTSDAO,GMTSUSR
 | 
|---|
| 96 |  Q:+($G(GMTSQIT))>0  N GMTSQIT,GMTSROK,GMTSTXT,GMTSOBJ,GMTSNDD,GMTSTR,GMTSRT,DA,DIK
 | 
|---|
| 97 |  S GMTSQIT=0,GMTSROK=$$ROK^GMTSOBU(GMTSRTN) Q:GMTSROK'>0
 | 
|---|
| 98 |  S GMTSTXT=$$TX^GMTSOBU(GMTSRTN,"OBJ",1),GMTSOBJ=$P(GMTSTXT,";",2,299)
 | 
|---|
| 99 |  S GMTSTXT=$$TX^GMTSOBU(GMTSRTN,"OBJ",2),$P(GMTSTXT,"^",17)=GMTSUSR,GMTSNDD=GMTSTXT
 | 
|---|
| 100 |  S GMTSTR=$P(GMTSNDD,";",2),GMTSNDD=$P(GMTSNDD,";",3,299)
 | 
|---|
| 101 |  S GMTSRT="^GMT(142.5,DA,"_GMTSTR_")",DA=GMTSDAO,DIK="^GMT(142.5,"
 | 
|---|
| 102 |  S $P(GMTSNDD,"^",3)=+($G(GMTSDAT)),$P(GMTSNDD,"^",17)=+($G(GMTSUSR))
 | 
|---|
| 103 |  S $P(GMTSNDD,"^",18)=$$NOW^XLFDT H 1 S $P(GMTSNDD,"^",19)=$$NOW^XLFDT
 | 
|---|
| 104 |  S $P(GMTSNDD,"^",20)=0,@GMTSRT=GMTSNDD D IX1^DIK
 | 
|---|
| 105 |  Q
 | 
|---|
| 106 | DELERR ; Delete on Error
 | 
|---|
| 107 |  I +($G(GMTSDAT))>0,+($G(GMTSDAO))'>0 D
 | 
|---|
| 108 |  . D DI(+($G(GMTSDAT)),"^GMT(142,")
 | 
|---|
| 109 |  . W !," An error has occurred while installing Health Summary Object"
 | 
|---|
| 110 |  . W !," Deleting the associated Health Summary Type"
 | 
|---|
| 111 |  I +($G(GMTSDAT))'>0,+($G(GMTSDAO))>0 D
 | 
|---|
| 112 |  . D DI(+($G(GMTSDAO)),"^GMT(142.5,")
 | 
|---|
| 113 |  . W !," An error has occurred while installing Health Summary Type"
 | 
|---|
| 114 |  . W !," Deleting the associated Health Summary Object"
 | 
|---|
| 115 |  I +($G(GMTSDAT))>0&('$D(^GMT(142,+GMTSDAT))) D
 | 
|---|
| 116 |  . D DI(+($G(GMTSDAT)),"^GMT(142,"),DEL(+($G(GMTSDAO)),"^GMT(142.5,")
 | 
|---|
| 117 |  . W !," An error has occurred while installing Health Summary Type"
 | 
|---|
| 118 |  . W !," Deleting the associated Health Summary Object"
 | 
|---|
| 119 |  I +($G(GMTSDAO))>0&('$D(^GMT(142.5,+GMTSDAO))) D
 | 
|---|
| 120 |  . D DI(+($G(GMTSDAT)),"^GMT(142,"),DEL(+($G(GMTSDAO)),"^GMT(142.5,")
 | 
|---|
| 121 |  . W !," An error has occurred while installing Health Summary Object"
 | 
|---|
| 122 |  . W !," Deleting the associated Health Summary Type"
 | 
|---|
| 123 |  Q
 | 
|---|
| 124 | DI(X,Y) ; Delete Item
 | 
|---|
| 125 |  N DA,DIK S DA=+($G(X)),DIK=$G(Y) D:$L(DIK) ^DIK
 | 
|---|
| 126 |  Q
 | 
|---|
| 127 | DONE ; Completed
 | 
|---|
| 128 |  I +($G(GMTSDAT))>0,+($G(GMTSDAO))>0 D
 | 
|---|
| 129 |  . I $D(^GMT(142,+GMTSDAT,0)),$D(^GMT(142.5,+GMTSDAO,0)) D
 | 
|---|
| 130 |  . . H 1 I $L(GMTSTN),$L(GMTSON) D  Q
 | 
|---|
| 131 |  . . . W !!," Object '",GMTSON,"' installed using Health Summary Type '",GMTSTN,"'"
 | 
|---|
| 132 |  . . W !," Object Installed"
 | 
|---|
| 133 |  Q
 | 
|---|
| 134 | DEL(X) ;   Delete Routine X
 | 
|---|
| 135 |  S X=$G(X) Q:'$L(X)  Q:$L(X)>8  Q:$$ROK^GMTSOBU(X)=0  X ^%ZOSF("DEL") Q
 | 
|---|