| 1 | GMTSOBS2 ; SLC/KER - HS Object - Show                     ; 01/06/2003
 | 
|---|
| 2 |  ;;2.7;Health Summary;**58**;Oct 20, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; External References
 | 
|---|
| 5 |  ;     DBIA  2056  $$GET1^DIQ  (file 142.5)
 | 
|---|
| 6 |  ;     DBIA  2052  $$GET1^DID  (DD 142.5)
 | 
|---|
| 7 |  ;     DBIA 10103  $$NOW^XLFDT
 | 
|---|
| 8 |  ;     DBIA 10103  $$FMADD^XLFDT
 | 
|---|
| 9 |  Q
 | 
|---|
| 10 | GET(X,GMTSARY) ; Get Fields
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ; Input   X        IEN of HS Object File 142.5
 | 
|---|
| 13 |  ; Output  GMTSARY  Array of Fields and Values
 | 
|---|
| 14 |  ;                  (passed by reference)
 | 
|---|
| 15 |  K GMTSARY N GMTSN,GMTSIEN S GMTSIEN=+($G(X)),GMTSN=$G(^GMT(142.5,+GMTSIEN,0)) Q:'$L(GMTSN)
 | 
|---|
| 16 |  N GMTSI,GMTSF,GMTSFLD,GMTSFLDN,GMTSFLDM,GMTSDI,GMTSDE
 | 
|---|
| 17 |  F GMTSI=1:1 D  Q:$L(GMTSN,"^")=GMTSI
 | 
|---|
| 18 |  . S GMTSFLD=GMTSI S:GMTSFLD<10 GMTSFLD="0"_GMTSFLD S GMTSFLD=+("."_GMTSFLD)
 | 
|---|
| 19 |  . S GMTSFLDN=$$GET1^DID(142.5,+GMTSFLD,"","LABEL"),GMTSFLDM=$$EN2^GMTSUMX(GMTSFLDN)
 | 
|---|
| 20 |  . S GMTSDI=$$GET1^DIQ(142.5,(+GMTSIEN_","),GMTSFLD,"I"),GMTSDE=$$GET1^DIQ(142.5,(+GMTSIEN_","),GMTSFLD,"E")
 | 
|---|
| 21 |  . S GMTSARY(+GMTSIEN,+GMTSFLD,"I")=GMTSDI,GMTSARY(+GMTSIEN,+GMTSFLD,"E")=GMTSDE
 | 
|---|
| 22 |  . S GMTSARY(+GMTSIEN,+GMTSFLD,"NAME")=GMTSFLDN
 | 
|---|
| 23 |  . S:GMTSFLDM="Health Summary type" GMTSFLDM="Health Summary Type"
 | 
|---|
| 24 |  . S GMTSARY(+GMTSIEN,+GMTSFLD,"PROMPT")=GMTSFLDM
 | 
|---|
| 25 |  S GMTSARY(+GMTSIEN,1,"NAME")="OBJECT DESCRIPTION"
 | 
|---|
| 26 |  S GMTSARY(+GMTSIEN,1,"PROMPT")="Object Description"
 | 
|---|
| 27 |  S GMTSI=0 F  S GMTSI=$O(^GMT(142.5,+GMTSIEN,1,GMTSI)) Q:+GMTSI=0  D
 | 
|---|
| 28 |  . S GMTSARY(+GMTSIEN,1,"I",GMTSI,0)=$G(^GMT(142.5,GMTSIEN,1,GMTSI,0))
 | 
|---|
| 29 |  D DEF^GMTSOBS(+GMTSIEN,.GMTSARY)
 | 
|---|
| 30 |  Q
 | 
|---|
| 31 | DIS(DFN,OBJ) ; Display Object
 | 
|---|
| 32 |  Q:+($G(DFN))'>0  Q:+($G(OBJ))'>0
 | 
|---|
| 33 |  K GMTSOBJ N DIE,DR,GMTSR,GMTSLBL,GMTSTYP,GMTSPER,GMTSHDR,GMTSRDT
 | 
|---|
| 34 |  N GMTSCON,GMTSRHD,GMTSIOM,GMTSCHD,GMTSLIM,GMTSBLK,GMTSQ,GMTSDEC
 | 
|---|
| 35 |  N GMTSDT,GMTSI,GMTSPX1,GMTSPX2,GMTSNOD,GMTSLBB,GMTSUNT,GMTSLEN
 | 
|---|
| 36 |  N GMTSDIF,GMTSOBJ,GMTSOBJE,GMTSULB S GMTSOBJ=+($G(OBJ))
 | 
|---|
| 37 |  S GMTSR=$G(^GMT(142.5,+GMTSOBJ,0))
 | 
|---|
| 38 |  S GMTSLBL=$P(GMTSR,U,2) S:$L(GMTSLBL) GMTSOBJ("LABEL")=GMTSLBL
 | 
|---|
| 39 |  S GMTSTYP=$P(GMTSR,U,3) Q:+GMTSTYP'>0  S GMTSPER=$P(GMTSR,U,4)
 | 
|---|
| 40 |  S GMTSPX1="",GMTSPX2="",GMTSLEN=+GMTSPER,GMTSUNT=$E(GMTSPER,$L(GMTSPER))
 | 
|---|
| 41 |  I +GMTSLEN>0,GMTSUNT?1U,"DWMY"[GMTSUNT D
 | 
|---|
| 42 |  . S GMTSPX1=$$NOW^XLFDT
 | 
|---|
| 43 |  . S:GMTSUNT="D" GMTSDIF=GMTSLEN S:GMTSUNT="W" GMTSDIF=GMTSLEN*7
 | 
|---|
| 44 |  . S:GMTSUNT="M" GMTSDIF=GMTSLEN*30.4 S:GMTSUNT="Y" GMTSDIF=GMTSLEN*365.25
 | 
|---|
| 45 |  . S GMTSDIF=$P(GMTSDIF,".",1),GMTSPX2=$$FMADD^XLFDT(GMTSPX1,-(GMTSDIF))
 | 
|---|
| 46 |  S GMTSNOD=$P(GMTSR,U,5) S:+GMTSNOD>0 GMTSOBJ("SUPPRESS COMPONENTS")=""
 | 
|---|
| 47 |  S GMTSHDR=$P(GMTSR,U,6) S:+GMTSHDR>0 GMTSOBJ=""
 | 
|---|
| 48 |  S GMTSULB=$P(GMTSR,U,7) S:+GMTSULB>0 GMTSOBJ("USE LABEL")=""
 | 
|---|
| 49 |  S GMTSLBB=$P(GMTSR,U,8) S:+GMTSLBB>0 GMTSOBJ("LABEL BLANK LINE")=""
 | 
|---|
| 50 |  S GMTSRDT=$P(GMTSR,U,9) S:+GMTSRDT>0 GMTSOBJ("DATE LINE")=""
 | 
|---|
| 51 |  S GMTSCON=$P(GMTSR,U,10) S:+GMTSCON>0 GMTSOBJ("CONFIDENTIAL")=""
 | 
|---|
| 52 |  S GMTSRHD=$P(GMTSR,U,11) S:+GMTSRHD>0 GMTSOBJ("REPORT HEADER")=""
 | 
|---|
| 53 |  S GMTSCHD=$P(GMTSR,U,12) S:+GMTSCHD>0 GMTSOBJ("COMPONENT HEADER")=""
 | 
|---|
| 54 |  S GMTSUND=$P(GMTSR,U,13) S:+GMTSUND>0 GMTSOBJ("UNDERLINE")=""
 | 
|---|
| 55 |  S GMTSLIM=$P(GMTSR,U,14) S:+GMTSLIM>0 GMTSOBJ("LIMITS")=""
 | 
|---|
| 56 |  S GMTSBLK=$P(GMTSR,U,15) S:+GMTSBLK>0 GMTSOBJ("BLANK LINE")=""
 | 
|---|
| 57 |  S GMTSDEC=$P(GMTSR,U,16) S:+GMTSDEC>0 GMTSOBJ("DECEASED")=""
 | 
|---|
| 58 |  K:GMTSCHD'>0 GMTSOBJ("LIMITS"),GMTSOBJ("BLANK LINE")
 | 
|---|
| 59 |  K:+($G(GMTSHDR))'>0 GMTSOBJ  S GMTSIOM=$G(IOM),IOM=80,GMTSOBJE=""
 | 
|---|
| 60 |  D ENX^GMTSDVR(DFN,GMTSTYP,GMTSPX2,GMTSPX1) S:+GMTSIOM>0 IOM=+GMTSIOM
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 | SP ; Suppress Headers
 | 
|---|
| 63 |  N GMTSL,GMTST,TXT S (GMTST,GMTSL)="" S:$L($G(GMTSLBL)) GMTSL=GMTSLBL
 | 
|---|
| 64 |  S:+($G(GMTSRDT))'>0 GMTSL=GMTSL_$J("",((72-$L(GMTSDTM))-$L(GMTSL)))_GMTSDTM
 | 
|---|
| 65 |  I $L(GMTSL)&(+($G(GMTSPLB))>0) D E("") S TXT="",TXT=$J(" ",7)_GMTSL D E(TXT)
 | 
|---|
| 66 |  I $L($G(GMTSLBL))&(+($G(GMTSPLB))>0)&(+($G(GMTSLBB))>0) D E("")
 | 
|---|
| 67 |  S GMTSL="" S:+($G(GMTSRDT))>0 GMTSL=$J("",(72-$L(GMTSDTM)))_GMTSDTM
 | 
|---|
| 68 |  S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 69 |  S GMTSL="" S:GMTSCON>0 GMTSL="********************  CONFIDENTIAL HEALTH SUMMARY **********************"
 | 
|---|
| 70 |  S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 71 |  S GMTSL="" S:GMTSRHD>0 GMTSL="PATIENT NAME      SSN-SSN-SSAN       WARD/LOCATTION        DATE OF BIRTH"
 | 
|---|
| 72 |  S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 73 |  S GMTSL="" S:GMTSRHD>0 GMTSL=" "
 | 
|---|
| 74 |  S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 75 |  S (GMTSL,GMTST)="" S:GMTSCHD'>0 GMTSL=GMTSDCN S:GMTSCHD>0 (GMTST,GMTSL)=GMTSDCH
 | 
|---|
| 76 |  S:GMTSCHD>0&(GMTSLIM)>0&($L(GMTSTIM)) (GMTST,GMTSL)=GMTSDCH_" (max 10 occurrences or "_GMTSTIM_")"
 | 
|---|
| 77 |  S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 78 |  S GMTSL="" S:+($G(GMTSUND))>0&($L(GMTST)) $P(GMTSL,"-",$L(GMTST))="-"
 | 
|---|
| 79 |  S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 80 |  S GMTSL="" S:GMTSDEC>0 GMTSL="                       **  DECEASED "_GMTSDED_"  **"
 | 
|---|
| 81 |  S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 82 |  S GMTSL="" S:GMTSBLK>0 GMTSL=" " S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 83 |  S GMTSL="<component data>" S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 84 |  W:'$D(GMTSEXT) !
 | 
|---|
| 85 |  Q
 | 
|---|
| 86 | HS ; Health Summary Headers
 | 
|---|
| 87 |  N GMTSL,GMTST,TXT S GMTSL="" S:$L($G(GMTSLBL)) GMTSL=GMTSLBL
 | 
|---|
| 88 |  I $L(GMTSL)&(+($G(GMTSPLB))>0) D E(" ") S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 89 |  D:$L(GMTSL)&(+($G(GMTSPLB))>0)&(+($G(GMTSLBB))>0) E(" ")
 | 
|---|
| 90 |  S GMTSL=$J("",(72-$L(GMTSDTM)))_GMTSDTM
 | 
|---|
| 91 |  S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 92 |  S GMTSL="********************  CONFIDENTIAL HEALTH SUMMARY **********************"
 | 
|---|
| 93 |  S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 94 |  S GMTSL="PATIENT NAME      SSN-SSN-SSAN       WARD/LOCATTION        DATE OF BIRTH"
 | 
|---|
| 95 |  S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 96 |  S GMTSL="       "_GMTSDCH_" (max 10 occurrences or "_GMTSTIM_")"
 | 
|---|
| 97 |  S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 98 |  S GMTSL="                         **  DECEASED "_GMTSDED_"  **"
 | 
|---|
| 99 |  S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 100 |  S GMTSL="<component data>"
 | 
|---|
| 101 |  S TXT="",TXT=TXT_$J(" ",7)_GMTSL D:$L(GMTSL) E(TXT)
 | 
|---|
| 102 |  W:'$D(GMTSEXT) !
 | 
|---|
| 103 |  Q
 | 
|---|
| 104 | D(X) ; Display
 | 
|---|
| 105 |  I '$D(GMTSEXT) W !,$G(X) Q
 | 
|---|
| 106 |  N GMTSC S GMTSC=$G(GMTSARY("D",0))+1,GMTSARY("D",+GMTSC)=$G(X),GMTSARY("D",0)=GMTSC
 | 
|---|
| 107 |  Q
 | 
|---|
| 108 | E(X) ; Example
 | 
|---|
| 109 |  I '$D(GMTSEXT) W !,$G(X) Q
 | 
|---|
| 110 |  N GMTSC S GMTSC=$G(GMTSARY("E",0))+1,GMTSARY("E",+GMTSC)=$G(X),GMTSARY("E",0)=GMTSC
 | 
|---|
| 111 |  Q
 | 
|---|