Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: GMTSADH5

GMTSADH5.m

Go to the documentation of this file.
  1. GMTSADH5 ; SLC/DCM,KER - Health Summary Ad Hoc RPC's ;Nov 26, 2018@22:22
  1. ;;2.7;Health Summary;**36,35,37,49,63,110,116,125**;Oct 20, 1995;Build 15
  1. ;
  1. ; External References
  1. ; DBIA 1268 ^AUTTHF(
  1. ; DBIA 1268 ^AUTTHF("B"
  1. ; DBIA 67 ^LAB(60
  1. ; DBIA 3148 ^PXD(811.9
  1. ; DBIA 3059 ^TIU(8925.1
  1. ; DBIA 10006 ^DIC
  1. ; DBIA 2052 $$GET1^DID
  1. ; DBIA 3058 $$ISA^TIULX
  1. ; DBIA 6345 SEL^YTQGMTS
  1. ; DBIA 4543 SSET^PSN50P65
  1. ; DBIA 4662 SSET^PSS50P7
  1. ;
  1. COMP(Y) ; Get ADHOC sub components (FILE 142.1)
  1. ;
  1. ; Y(i)=(1)I;IFN^(2)Component Name [Abb]^(3)Occ Limit^
  1. ; (4)Time Limit^(5)Header Name^(6)Hosp Loc Disp^
  1. ; (7)ICD Text Disp^(8)Prov Narr Disp^
  1. ; (9)CPT Modifier Disp^(10)Summary Order
  1. ;
  1. N GMTSI,GMTSII,GMTSIFN,GMTSC,X,X1
  1. S Y(1)=$O(^GMT(142,"B","GMTS HS ADHOC OPTION",0))
  1. I 'Y(1) S Y(1)=-1 Q ; Error, no ADHOC type defined
  1. S (GMTSC,GMTSI)=0,GMTSII=Y(1)
  1. F S GMTSI=$O(^GMT(142,GMTSII,1,GMTSI)) Q:'GMTSI S X=^(GMTSI,0) D
  1. . S GMTSIFN=$P(X,"^",2),X1=$G(^GMT(142.1,+GMTSIFN,0))
  1. . Q:'$L(X1) Q:$P(X1,"^",6)="P" S GMTSC=GMTSC+1
  1. . S Y(GMTSC)=GMTSI_";"_GMTSIFN
  1. . S Y(GMTSC)=Y(GMTSC)_"^"_$P(X1,"^")_" ["_$P(X1,"^",4)_"]"
  1. . S Y(GMTSC)=Y(GMTSC)_"^"_$S($P(X1,"^",5)="Y":$P(X,"^",3),1:"")
  1. . S Y(GMTSC)=Y(GMTSC)_"^"_$S($P(X1,"^",3)="Y":$P(X,"^",4),1:"")
  1. . S Y(GMTSC)=Y(GMTSC)_"^"_$S($L($P(X1,"^",9)):$P(X1,"^",9),1:$P(X,"^",5))
  1. . S Y(GMTSC)=Y(GMTSC)_"^"_$S($P(X1,"^",10)="Y":$P(X,"^",6),1:"")
  1. . S Y(GMTSC)=Y(GMTSC)_"^"_$S($P(X1,"^",11)="Y":$P(X,"^",7),1:"")
  1. . S Y(GMTSC)=Y(GMTSC)_"^"_$S($P(X1,"^",12)="Y":$P(X,"^",8),1:"")
  1. . S Y(GMTSC)=Y(GMTSC)_"^"_$P(X,"^")
  1. Q
  1. ;
  1. COMPSUB(Y,GMTSUB) ; Get subcomponents from a predefined ADHOC component
  1. ; GMTSUB=desired Adhoc subcomponent
  1. ; Y(i)=ifn of pointed to file entry^name
  1. Q:'$G(GMTSUB)
  1. N GMTSI,GMTSII,GMTSIFN,GMTSC,X,X1
  1. S X=$O(^GMT(142,"B","GMTS HS ADHOC OPTION",0))
  1. I 'X Q ; Error, no ADHOC type defined
  1. S (GMTSC,GMTSI)=0,GMTSII=X
  1. F S GMTSI=$O(^GMT(142,GMTSII,1,GMTSUB,1,GMTSI)) Q:'GMTSI S X=^(GMTSI,0) D
  1. . S GMTSIFN=+X,X1=$P(X,";",2)
  1. . I '$D(@("^"_X1_+X_",0)")) Q
  1. . S X=@("^"_X1_+X_",0)"),GMTSC=GMTSC+1,Y(GMTSC)=GMTSIFN_"^"_$P(X,"^")
  1. Q
  1. ;
  1. FILES(Y,GMTSCP) ; Get Files to select from for a component
  1. Q:'$G(GMTSCP) Q:'$D(^GMT(142.1,GMTSCP,1))
  1. N GMTSGEC,GMTSI,GMTSC,X
  1. S (GMTSGEC,GMTSI,GMTSC)=0
  1. I $P($G(^GMT(142.1,GMTSCP,0)),U,4)="GECH" S GMTSGEC=1
  1. F S GMTSI=$O(^GMT(142.1,GMTSCP,1,GMTSI)) Q:'GMTSI D
  1. .S X=^(GMTSI,0),GMTSC=GMTSC+1 S:GMTSGEC=1 X=X_"G" ;naked reference refers to ^GMT(142.1,GMTSCP,1,GMTSI from previous line
  1. .S Y(GMTSC)=GMTSI_"^"_$$FNAM^GMTSU(+X)_"^"_X
  1. Q
  1. ;
  1. FILESEL(GMTSRT,GMTSFI,GMTSFM,DIR) ; Get file entries
  1. Q:'$G(GMTSFI)
  1. K ^TMP("ORDATA",$J)
  1. N GMTSI,GMTSJ,GMTSC,X,GMTSGL,GMTSGLB,GMTSCNT,HFC
  1. S GMTSI=$G(GMTSFM),GMTSCNT=44,GMTSC=0,GMTSRT=$NA(^TMP("ORDATA",$J,1))
  1. S:'$D(DIR) DIR=1
  1. I GMTSFI=60 D Q
  1. . F Q:GMTSC'<GMTSCNT S GMTSI=$O(^LAB(60,"B",GMTSI),DIR) Q:GMTSI="" S GMTSJ=0 F S GMTSJ=$O(^LAB(60,"B",GMTSI,GMTSJ)) Q:'GMTSJ D
  1. . . I $D(^LAB(60,GMTSJ,0)) S X=^(0) I $P(X,"^",4)="CH","BO"[$P(X,"^",3) S GMTSC=GMTSC+1,^TMP("ORDATA",$J,1,GMTSC)=GMTSJ_"^"_GMTSI
  1. I GMTSFI="9999999.64G" D Q
  1. . F Q:GMTSC'<GMTSCNT S GMTSI=$O(^AUTTHF("B",GMTSI),DIR) Q:GMTSI="" S GMTSJ=0 F S GMTSJ=$O(^AUTTHF("B",GMTSI,GMTSJ)) Q:'GMTSJ I $D(^AUTTHF(GMTSJ,0)) S X=^(0) D
  1. ..;naked references below refers to ^AUTTHF(GMTSJ,0
  1. ..I (($P(^(0),U,10)="C")&(+$P(^(0),U,11)'=1))&($P(^(0)," ",1)="GEC") D
  1. ...S GMTSC=GMTSC+1
  1. ...S HFC=$S($P($G(X),U,10)="F":"Factor",$P($G(X),U,10)="C":"Category")
  1. ...S ^TMP("ORDATA",$J,1,GMTSC)=GMTSJ_U_GMTSI_" ("_HFC_")"
  1. I GMTSFI=9999999.64 D Q
  1. . F Q:GMTSC'<GMTSCNT S GMTSI=$O(^AUTTHF("B",GMTSI),DIR) Q:GMTSI="" S GMTSJ=0 F S GMTSJ=$O(^AUTTHF("B",GMTSI,GMTSJ)) Q:'GMTSJ I $D(^AUTTHF(GMTSJ,0)) S X=^(0) D
  1. ..I +$P(X,U,11)'=1 D
  1. ...S GMTSC=GMTSC+1
  1. ...S HFC=$S($P($G(X),U,10)="F":"Factor",$P($G(X),U,10)="C":"Category")
  1. ...S ^TMP("ORDATA",$J,1,GMTSC)=GMTSJ_U_GMTSI_" ("_HFC_")"
  1. I GMTSFI=811.9 D Q
  1. . F Q:GMTSC'<GMTSCNT S GMTSI=$O(^PXD(811.9,"B",GMTSI),DIR) Q:GMTSI="" S GMTSJ=0 F S GMTSJ=$O(^PXD(811.9,"B",GMTSI,GMTSJ)) Q:'GMTSJ I $D(^PXD(811.9,GMTSJ,0)) S X=^(0) D
  1. . . I $P(X,"^",6)'=1 S GMTSC=GMTSC+1,^TMP("ORDATA",$J,1,GMTSC)=GMTSJ_"^"_GMTSI
  1. I GMTSFI=8925.1 D Q
  1. . F Q:GMTSC'<GMTSCNT S GMTSI=$O(^TIU(8925.1,"B",GMTSI),DIR) Q:GMTSI="" S GMTSJ=0 F S GMTSJ=$O(^TIU(8925.1,"B",GMTSI,GMTSJ)) Q:'GMTSJ I $D(^TIU(8925.1,GMTSJ,0)) S X=^(0) D
  1. . . I $P(X,"^",4)="DOC",$$ISA^TIULX(GMTSJ,3) S GMTSC=GMTSC+1,^TMP("ORDATA",$J,1,GMTSC)=GMTSJ_"^"_GMTSI
  1. ; KDM 1/28/2014 GMTS*2.7*110
  1. ; Added code for the 81 file (CPT code) to list in logical sort order using the "BA" indexed file
  1. I GMTSFI=81 D Q
  1. . S GMTSGL=$$FCLR^GMTSU(+GMTSFI) I $L(GMTSGL) S GMTSGLB=$$FLOC^GMTSU(+GMTSFI)_"""BA"")" D
  1. .. F Q:GMTSC'<GMTSCNT S GMTSI=$O(@GMTSGLB@(GMTSI),DIR) Q:GMTSI="" S GMTSJ=0 F S GMTSJ=$O(@GMTSGLB@(GMTSI,GMTSJ)) Q:'GMTSJ I $D(@GMTSGL@(GMTSJ,0)) S X=^(0) D
  1. ... S GMTSC=GMTSC+1,^TMP("ORDATA",$J,1,GMTSC)=GMTSJ_"^"_GMTSI
  1. ; use Mental Health API to return active, scoreable instruments
  1. I GMTSFI=601.71 D Q
  1. . N GMTSDIR S GMTSDIR=DIR
  1. . D SEL^YTQGMTS(GMTSRT,GMTSI,GMTSCNT,GMTSDIR)
  1. I GMTSFI=50.7 D Q
  1. . D SSET^PSS50P7(GMTSC,GMTSCNT,GMTSI,DIR,"ORDATA")
  1. I GMTSFI=50.605 D Q
  1. . D SSET^PSN50P65(GMTSC,GMTSCNT,GMTSI,DIR,"ORDATA")
  1. S GMTSGL=$$FCLR^GMTSU(+GMTSFI) I $L(GMTSGL) S GMTSGLB=$$FLOC^GMTSU(+GMTSFI)_"""B"")" D
  1. . F Q:GMTSC'<GMTSCNT S GMTSI=$O(@GMTSGLB@(GMTSI),DIR) Q:GMTSI="" S GMTSJ=0 F S GMTSJ=$O(@GMTSGLB@(GMTSI,GMTSJ)) Q:'GMTSJ I $D(@GMTSGL@(GMTSJ,0)) S X=^(0) D
  1. . . S GMTSC=GMTSC+1,^TMP("ORDATA",$J,1,GMTSC)=GMTSJ_"^"_GMTSI
  1. Q
  1. ;
  1. REPORT(GMTSEG,GMTSEGC,GMTSEGI,GMTSCPS,DFN) ; Build Report
  1. ; Uses array of Components passed in GMTSCPS()
  1. ; GMTSCPS(i)=array of subcomponents chosen,
  1. ; value is pointer at ^GMT(142,DA(1),1,DA)
  1. Q:'$G(DFN)
  1. N GMTSCNT,DIC,DIZ,DIW,DIWI,DIWT,DIWTC,X,GMTSI,GMTSJ,GMTSK,GMTSTYP,GMTSTITL
  1. S X="GMTS HS ADHOC",DIC=142,DIZ(0)="ZF"
  1. D ^DIC Q:'Y
  1. S GMTSTYP=+Y,GMTSTITL="AD HOC",(GMTSJ,GMTSI)=0,GMTSEGC=$O(GMTSCPS(99999999),-1)
  1. F S GMTSI=$O(GMTSCPS(GMTSI)) Q:'GMTSI D
  1. . N GMTSREC,GMTSS2,GMTSSJ,GMTSEL
  1. . S GMTSREC=^GMT(142,GMTSTYP,1,+GMTSCPS(GMTSI),0),GMTSJ=GMTSJ+1
  1. . S GMTSEG(GMTSJ)=GMTSREC,GMTSEGI($P(GMTSREC,U,2))=GMTSJ,GMTSS2=0,GMTSSJ=GMTSJ
  1. . S $P(GMTSEG(GMTSJ),"^",3)=$P(GMTSCPS(GMTSI),"^",2)
  1. . S $P(GMTSEG(GMTSJ),"^",4)=$P(GMTSCPS(GMTSI),"^",3)
  1. . I $L($P(GMTSCPS(GMTSI),"^",4)) S $P(GMTSEG(GMTSJ),"^",5)=$P(GMTSCPS(GMTSI),"^",4)
  1. . I $L($P(GMTSCPS(GMTSI),"^",5)) S $P(GMTSEG(GMTSJ),"^",6)=$P(GMTSCPS(GMTSI),"^",5)
  1. . S $P(GMTSEG(GMTSJ),"^",7)=$P(GMTSCPS(GMTSI),"^",6)
  1. . I $L($P(GMTSCPS(GMTSI),"^",7)) S $P(GMTSEG(GMTSJ),"^",8)=$P(GMTSCPS(GMTSI),"^",7)
  1. . S (GMTSCNT,GMTSK)=0
  1. . F S GMTSK=$O(GMTSCPS(GMTSK)) Q:'GMTSK D
  1. . .I $P($G(GMTSCPS(GMTSK)),U,9)="9999999.64G" S $P(GMTSCPS(GMTSK),U,9)="9999999.64"
  1. . .I +GMTSCPS(GMTSI)=+GMTSCPS(GMTSK),$P(GMTSCPS(GMTSK),"^",9),$P(GMTSCPS(GMTSK),"^",10) D
  1. . . . S GMTSCNT=GMTSCNT+1
  1. . . . S:'$D(GMTSEG(GMTSJ,$P(GMTSCPS(GMTSK),"^",9),0)) GMTSEG(GMTSJ,$P(GMTSCPS(GMTSK),"^",9),0)=$$GET1^DID($P(GMTSCPS(GMTSK),"^",9),,,"GLOBAL NAME")
  1. . . . S GMTSEG(GMTSJ,$P(GMTSCPS(GMTSK),"^",9),GMTSCNT)=$P(GMTSCPS(GMTSK),"^",10)
  1. . . . K GMTSCPS(GMTSK)
  1. Q
  1. ;
  1. SUBITEM(Y,GMTSTEST) ; Get Subitems for a Test Panel
  1. Q:'$G(GMTSTEST) N GMTSCNT S GMTSCNT=0
  1. I '$L($P(^LAB(60,GMTSTEST,0),"^",5)),$O(^LAB(60,GMTSTEST,2,0)) D COMPILE(GMTSTEST,GMTSCNT)
  1. Q
  1. ;
  1. COMPILE(GMTSTEST,GMTSCNT) ; Expand lab panels
  1. N GMTSI,GMTSJ,GMTSRT S GMTSI=0
  1. F S GMTSI=$O(^LAB(60,GMTSTEST,2,GMTSI)) Q:GMTSI'>0 D
  1. . S GMTSJ=+$G(^LAB(60,GMTSTEST,2,+GMTSI,0))
  1. . S GMTSRT=$G(^LAB(60,+GMTSJ,0))
  1. . I $L($P(GMTSRT,U,5)),("BO"[$P(GMTSRT,U,3)) D
  1. . . S GMTSCNT=GMTSCNT+1
  1. . . S Y(GMTSCNT)=+GMTSJ_"^"_GMTSRT
  1. . E D
  1. . . D COMPILE(+$G(^LAB(60,GMTSTEST,2,GMTSI,0)),GMTSCNT)
  1. Q