| 1 | GMTSOBA ; SLC/KER - HS Object - Ask               ; 01/06/2003
 | 
|---|
| 2 |  ;;2.7;Health Summary;**58**;Oct 20, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; External References
 | 
|---|
| 5 |  ;   DBIA  10018  ^DIE  (file #142.5)
 | 
|---|
| 6 |  ;   DBIA  10026  ^DIR        
 | 
|---|
| 7 |  ;   DBIA  10103  $$FMTE^XLFDT
 | 
|---|
| 8 |  ;   DBIA  10103  $$NOW^XLFDT 
 | 
|---|
| 9 |  ;             
 | 
|---|
| 10 | OBJ ; Create/Edit Object
 | 
|---|
| 11 |  N DA,X,Y,DIE,DR,GMTSED,GMTSCON,GMTSLBL,GMTSLBB,GMTSULB,GMTSHDR
 | 
|---|
| 12 |  N GMTSRDT,GMTSCON,GMTSRHD,GMTSNEW,GMTSNEWO,GMTSDES,GMTSCHD,GMTSLIM
 | 
|---|
| 13 |  N GMTSBLK,GMTSQ,GMTSDEC,GMTSNOD,GMTSOWN,GMTSDT,GMTSI,GMTSDA,GMTSUND
 | 
|---|
| 14 |  N GMTSTIM,GMTSTI,GMTSOI
 | 
|---|
| 15 |  S (GMTSHDR,GMTSRDT,GMTSCON,GMTSRHD,GMTSCHD,GMTSUND,GMTSLIM,GMTSULB,GMTSLBB,GMTSBLK,GMTSDEC,GMTSNOD)=0,GMTSOWN="",GMTSDES=1
 | 
|---|
| 16 |  S:'$L($G(GMTSNAM)) DA=$$LK^GMTSOBL Q:+($G(GMTSQ))>0
 | 
|---|
| 17 |  S:$L($G(GMTSNAM)) DA=$$HSO^GMTSOBL($G(GMTSNAM)) Q:+($G(GMTSQ))>0  Q:+($G(DA))'>0
 | 
|---|
| 18 |  S:$L($G(GMTSNAM)) GMTSNEW=+($P($G(DA),"^",3)),DA=+($P($G(DA),"^",1))
 | 
|---|
| 19 |  Q:+($G(DA))'>0  S (GMTSDA,GMTSOI)=+($G(DA)),GMTSTI=$P($G(^GMT(142.5,+GMTSOI,0)),"^",3) Q:+GMTSTI'>0
 | 
|---|
| 20 |  S GMTSLBL="" K GMTSOBJ  S GMTSCON=1
 | 
|---|
| 21 |  I $L($G(GMTSNAM)),+GMTSNEW'>0,+DA>0 D  Q:+($G(GMTSCON))'>0  Q:+($G(GMTSQ))>0
 | 
|---|
| 22 |  . N GMTSOWN S GMTSOWN=$P($G(^GMT(142.5,+DA,0)),"^",17)
 | 
|---|
| 23 |  . I +GMTSOWN>0,+($G(DUZ))>0,+GMTSOWN'=+($G(DUZ)) S GMTSCON=0 Q
 | 
|---|
| 24 |  . W !," Object '",GMTSNAM,"' already exist" S GMTSCON=$$CONT Q:+($G(GMTSCON))'>0
 | 
|---|
| 25 |  . N X,Y,DIR,DIE,DR,GMTSDEF,GMTSDICA,GMTSNAM,GMTSTYPE
 | 
|---|
| 26 |  . W ! S GMTSDEF=+($P($G(^GMT(142.5,+($G(DA)),0)),"^",3))
 | 
|---|
| 27 |  . S GMTSDEF=$S(+GMTSDEF>0:+GMTSDEF,1:"")
 | 
|---|
| 28 |  . S GMTSDICA=" Enter/Edit HEALTH SUMMARY TYPE:  "
 | 
|---|
| 29 |  . K DTOUT,DUOUT,DIRUT,DIROUT
 | 
|---|
| 30 |  . S GMTSTYPE=$$TY^GMTSOBL(GMTSDEF)
 | 
|---|
| 31 |  . I $D(DTOUT)!($D(DUOUT))!($D(DIRUT))!($D(DIROUT)) S GMTSQ=1 Q
 | 
|---|
| 32 |  . S DR=".03////^S X=$G(GMTSTYPE)"
 | 
|---|
| 33 |  . S DIE="^GMT(142.5,",DA=+($G(DA)) S GMTSED=0
 | 
|---|
| 34 |  . F GMTSI=1:1:3 Q:GMTSI>3  L +^GMT(142.5,+($G(DA))):0 H:'$T 1 I $T D
 | 
|---|
| 35 |  . . D ^DIE S GMTSED=1 S $P(^GMT(142.5,+DA,0),U,19)=$$NOW^XLFDT,GMTSI=4
 | 
|---|
| 36 |  . . S:+($G(DUZ))>0 $P(^GMT(142.5,+DA,0),"^",17)=+($G(DUZ))
 | 
|---|
| 37 |  . I 'GMTSED S GMTSQ=1 K GMTSOBJ W !,"  Record Locked by another user" Q
 | 
|---|
| 38 |  . L -^GMT(142.5,+($G(DA))) S GMTST=+($P($G(^GMT(142.5,+DA,0)),U,3))
 | 
|---|
| 39 |  K:+($G(GMTSQ))>0 GMTSOBJ Q:+($G(GMTSQ))>0
 | 
|---|
| 40 |  D ALL K:+($G(GMTSQ))>0 GMTSOBJ S:+($G(GMTSQ))>0 GMTSDES=0 Q:+($G(GMTSQ))>0  N DIE,DR
 | 
|---|
| 41 |  S GMTSHDR=+($G(GMTSOBJ("HEADER")))
 | 
|---|
| 42 |  S GMTSLBL=$G(GMTSLBL) I GMTSHDR>0 D
 | 
|---|
| 43 |  . S GMTSRDT=$S($D(GMTSOBJ("DATE LINE")):1,1:0)
 | 
|---|
| 44 |  . S GMTSCON=$S($D(GMTSOBJ("CONFIDENTIAL")):1,1:0)
 | 
|---|
| 45 |  . S GMTSRHD=$S($D(GMTSOBJ("REPORT HEADER")):1,1:0)
 | 
|---|
| 46 |  . S GMTSCHD=$S($D(GMTSOBJ("COMPONENT HEADER")):1,1:0)
 | 
|---|
| 47 |  . S GMTSUND=$S($D(GMTSOBJ("UNDERLINE")):1,1:0)
 | 
|---|
| 48 |  . S GMTSLIM=$S($D(GMTSOBJ("LIMITS")):1,1:0)
 | 
|---|
| 49 |  . S GMTSBLK=$S($D(GMTSOBJ("BLANK LINE")):1,1:0)
 | 
|---|
| 50 |  . S GMTSDEC=$S($D(GMTSOBJ("DECEASED")):1,1:0)
 | 
|---|
| 51 |  . S GMTSULB=$S($D(GMTSOBJ("USE LABEL")):1,1:0)
 | 
|---|
| 52 |  . S GMTSLBB=$S($D(GMTSOBJ("LABEL BLANK LINE")):1,1:0)
 | 
|---|
| 53 |  I GMTSHDR'>0 S (GMTSRDT,GMTSCON,GMTSRHD,GMTSCHD,GMTSUND,GMTSLIM,GMTSBLK,GMTSDEC,GMTSULB,GMTSLBB)=0,GMTSLBL=""
 | 
|---|
| 54 |  S GMTSNOD=$S($D(GMTSOBJ("SUPPRESS COMPONENTS")):1,1:0)
 | 
|---|
| 55 |  S:+GMTSCHD'>0 (GMTSLIM,GMTSBLK)=0
 | 
|---|
| 56 |  S:'$L($G(GMTSLBL)) GMTSLBL="@",(GMTSULB,GMTSLBB)=0
 | 
|---|
| 57 |  N DR S DR=".02////^S X=$G(GMTSLBL);"
 | 
|---|
| 58 |  S:$L($G(GMTSTIM))&($G(GMTSTIM)'="@") DR=DR_".04////^S X=$G(GMTSTIM);"
 | 
|---|
| 59 |  S DR=DR_".05////^S X=$G(GMTSNOD);",DR=DR_".06////^S X=$G(GMTSHDR);"
 | 
|---|
| 60 |  S DR=DR_".07////^S X=$G(GMTSULB);",DR=DR_".08////^S X=$G(GMTSLBB);"
 | 
|---|
| 61 |  S DR=DR_".09////^S X=$G(GMTSRDT);",DR=DR_".1////^S X=$G(GMTSCON);"
 | 
|---|
| 62 |  S DR=DR_".11////^S X=$G(GMTSRHD);",DR=DR_".12////^S X=$G(GMTSCHD);"
 | 
|---|
| 63 |  S DR=DR_".13////^S X=$G(GMTSUND);",DR=DR_".14////^S X=$G(GMTSLIM);"
 | 
|---|
| 64 |  S DR=DR_".15////^S X=$G(GMTSBLK);",DR=DR_".16////^S X=$G(GMTSDEC);"
 | 
|---|
| 65 |  S:+($G(GMTSDES))>0 DR=DR_"1" S:$E(DR,1)=";" DR=$E(DR,2,$L(DR)) S:$E(DR,$L(DR))=";" DR=$E(DR,1,($L(DR)-1))
 | 
|---|
| 66 |  S DIE="^GMT(142.5,",DA=+($G(DA)) S GMTSED=0 W:+($G(GMTSDES))>0 !
 | 
|---|
| 67 |  F GMTSI=1:1:3 Q:GMTSI>3  L +^GMT(142.5,+($G(DA))):0 H:'$T 1 I $T D
 | 
|---|
| 68 |  . D ^DIE S GMTSED=1 S $P(^GMT(142.5,+DA,0),U,19)=$$NOW^XLFDT,GMTSI=4
 | 
|---|
| 69 |  . S:$G(GMTSTIM)="@" $P(^GMT(142.5,+DA,0),U,4)=""
 | 
|---|
| 70 |  I 'GMTSED S GMTSQ=1 K GMTSOBJ W !,"  Record Locked by another user" Q
 | 
|---|
| 71 |  L -^GMT(142.5,+($G(DA))) S GMTST=+($P($G(^GMT(142.5,+DA,0)),U,3))
 | 
|---|
| 72 |  K GMTSOBJ Q
 | 
|---|
| 73 |  ;          
 | 
|---|
| 74 | ALL ; Print HS Header
 | 
|---|
| 75 |  N X,Y,DIR,DIROUT,DUOUT,DTOUT S GMTSOBJ="",GMTSQ=0 D RP Q:+($G(GMTSQ))>0
 | 
|---|
| 76 |  S DIR("A")=" Print standard Health Summary Header with the Object?  "
 | 
|---|
| 77 |  S DIR("B")="N",DIR(0)="YAO",(DIR("?"),DIR("??"))="^D ALL^GMTSOBH"
 | 
|---|
| 78 |  W ! D ^DIR S:$D(DIROUT)!($D(DTOUT)) GMTSQ=1
 | 
|---|
| 79 |  S:Y["^"!(X["^") GMTSE=1,GMTSQ=1,GMTSDES=0
 | 
|---|
| 80 |  K:+($G(GMTSQ))>0!($D(DUOUT)) GMTSOBJ Q:+($G(GMTSQ))>0!($D(DUOUT))
 | 
|---|
| 81 |  S X=+($G(Y)) K:+X>0 GMTSOBJ S:+X'>0 GMTSOBJ=""
 | 
|---|
| 82 |  S GMTSOBJ("HEADER")=$S(+X'>0:1,1:0)
 | 
|---|
| 83 |  I +X'>0 D
 | 
|---|
| 84 |  . W ! D PART Q:+($G(GMTSQ))>1  W ! S GMTSLBL="" D LBL^GMTSOBA2
 | 
|---|
| 85 |  . S GMTSLBL=$S($L($G(GMTSOBJ("LABEL"))):$G(GMTSOBJ("LABEL")),1:"@")
 | 
|---|
| 86 |  . K:'$L($G(GMTSOBJ("LABEL"))) GMTSLBL,GMTSOBJ("LABEL BLANK LINE"),GMTSOBJ("USE LABEL")
 | 
|---|
| 87 |  W ! D SC^GMTSOBA2 K:+($G(GMTSQ))>0 GMTSOBJ
 | 
|---|
| 88 |  Q
 | 
|---|
| 89 |  ;          
 | 
|---|
| 90 | RP ; Report Period
 | 
|---|
| 91 |  Q:+($G(GMTSQ))>0  N X,Y,DIR,DIROUT,DUOUT,DTOUT,GMTSDEF
 | 
|---|
| 92 |  S GMTSTIM=$$RP^GMTSOBT($G(GMTSTI),$G(GMTSOI)) S:+GMTSTIM<0 GMTSQ=1
 | 
|---|
| 93 |  Q
 | 
|---|
| 94 |  ;                  
 | 
|---|
| 95 | PART ; Print Partial Header
 | 
|---|
| 96 |  K:+($G(GMTSQ))>0 GMTSOBJ Q:+($G(GMTSQ))>0  W !," Partial Header:"
 | 
|---|
| 97 |  D:$D(GMTSOBJ) RD,RC,RH,CH^GMTSOBA2,DE^GMTSOBA2 Q
 | 
|---|
| 98 | RD ;   Report Date
 | 
|---|
| 99 |  Q:+($G(GMTSQ))>0  N X,Y,DIR,DIROUT,DUOUT,DTOUT,GMTSDEF
 | 
|---|
| 100 |  S GMTSDEF=$P($G(^GMT(142.5,+($G(GMTSDA)),0)),U,9)
 | 
|---|
| 101 |  S GMTSDEF=$S(+GMTSDEF>0:"Y",1:"N")
 | 
|---|
| 102 |  S GMTSOBJ("DATE LINE")="",DIR("A")="   Print Report Date?  "
 | 
|---|
| 103 |  S DIR("B")=GMTSDEF,DIR(0)="YAO",(DIR("?"),DIR("??"))="^D RD^GMTSOBH"
 | 
|---|
| 104 |  D ^DIR S:$D(DIROUT)!($D(DTOUT)) GMTSQ=1
 | 
|---|
| 105 |  S:Y["^"!(X["^") GMTSE=1,GMTSQ=1,GMTSDES=0
 | 
|---|
| 106 |  K:+($G(GMTSQ))>0 GMTSOBJ("DATE LINE") Q:+($G(GMTSQ))>0
 | 
|---|
| 107 |  S X=+($G(Y)) K:+X'>0 GMTSOBJ("DATE LINE") Q
 | 
|---|
| 108 | RC ;   Confidentiality Banner
 | 
|---|
| 109 |  Q:+($G(GMTSQ))>0  N X,Y,DIR,DIROUT,DUOUT,DTOUT,GMTSDEF
 | 
|---|
| 110 |  S GMTSOBJ("CONFIDENTIAL")="",DIR("A")="   Print Confidentiality Banner?  "
 | 
|---|
| 111 |  S GMTSDEF=$P($G(^GMT(142.5,+($G(GMTSDA)),0)),U,10)
 | 
|---|
| 112 |  S GMTSDEF=$S(+GMTSDEF>0:"Y",1:"N")
 | 
|---|
| 113 |  S DIR("B")=GMTSDEF,DIR(0)="YAO",(DIR("?"),DIR("??"))="^D RC^GMTSOBH"
 | 
|---|
| 114 |  D ^DIR S:$D(DIROUT)!($D(DTOUT)) GMTSQ=1
 | 
|---|
| 115 |  S:Y["^"!(X["^") GMTSE=1,GMTSQ=1,GMTSDES=0
 | 
|---|
| 116 |  K:+($G(GMTSQ))>0 GMTSOBJ("CONFIDENNTIAL") Q:+($G(GMTSQ))>0
 | 
|---|
| 117 |  S X=+($G(Y)) K:+X'>0 GMTSOBJ("CONFIDENTIAL") Q
 | 
|---|
| 118 | RH ;   Report Header
 | 
|---|
| 119 |  Q:+($G(GMTSQ))>0  N X,Y,DIR,DIROUT,DUOUT,DTOUT,GMTSDEF
 | 
|---|
| 120 |  S GMTSOBJ("REPORT HEADER")="",DIR("A")="   Print Report Header?  "
 | 
|---|
| 121 |  S GMTSDEF=$P($G(^GMT(142.5,+($G(GMTSDA)),0)),U,11)
 | 
|---|
| 122 |  S GMTSDEF=$S(+GMTSDEF>0:"Y",1:"N")
 | 
|---|
| 123 |  S DIR("B")=GMTSDEF,DIR(0)="YAO",(DIR("?"),DIR("??"))="^D RH^GMTSOBH"
 | 
|---|
| 124 |  D ^DIR S:$D(DIROUT)!($D(DTOUT)) GMTSQ=1
 | 
|---|
| 125 |  S:Y["^"!(X["^") GMTSE=1,GMTSQ=1,GMTSDES=0
 | 
|---|
| 126 |  K:+($G(GMTSQ))>0 GMTSOBJ("REPORT HEADER") Q:+($G(GMTSQ))>0
 | 
|---|
| 127 |  S X=+($G(Y)) K:+X'>0 GMTSOBJ("REPORT HEADER") Q
 | 
|---|
| 128 |  ;          
 | 
|---|
| 129 | CONT(X) ; Continue with Edit
 | 
|---|
| 130 |  N DIR,DIROUT,DTOUT
 | 
|---|
| 131 |  S DIR(0)="YAO",DIR("B")="NO",DIR("A")=" Do you want to edit the object?  Y/N  "
 | 
|---|
| 132 |  D ^DIR S X=+($G(Y)) Q X
 | 
|---|