| 1 | GMTSPXU1 ; SLC/SBW - PCE Utilities sub-routines ; 03/24/2004 [8/24/04 8:28am]
 | 
|---|
| 2 |  ;;2.7;Health Summary;**10,37,71**;Oct 20, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; External References
 | 
|---|
| 5 |  ;   DBIA  3390  $$ICDDX^ICDCODE
 | 
|---|
| 6 |  ;   DBIA  3390  $$ICDOP^ICDCODE
 | 
|---|
| 7 |  ;   DBIA  3390  $$ICDD^ICDCODE
 | 
|---|
| 8 |  ;   DBIA  1995  $$CPT^ICPTCOD
 | 
|---|
| 9 |  ;   DBIA 10026  ^DIR
 | 
|---|
| 10 |  ;   DBIA 10011  ^DIWP
 | 
|---|
| 11 |  ;                       
 | 
|---|
| 12 | GETICDDX(GMTSICD,GMTSICF,GMMOD) ; Entry point to get ICD9 data
 | 
|---|
| 13 |  N REC,CODE,NAME,DESC,ICDX,ICDI,ICDA
 | 
|---|
| 14 |  S GMTSICD=$G(GMTSICD),GMTSICF=$G(GMTSICF),GMMOD=$G(GMMOD)
 | 
|---|
| 15 |  S ICDX=$$ICDDX^ICDCODE(+GMTSICD)
 | 
|---|
| 16 |  S REC(80,GMTSICD,.01,"E")=$P(ICDX,"^",2)
 | 
|---|
| 17 |  S REC(80,GMTSICD,.01,"I")=$P(ICDX,"^",2)
 | 
|---|
| 18 |  S REC(80,GMTSICD,3,"E")=$P(ICDX,"^",4)
 | 
|---|
| 19 |  S REC(80,GMTSICD,3,"I")=$P(ICDX,"^",4)
 | 
|---|
| 20 |  S ICDI=$$ICDD^ICDCODE($P(ICDX,"^",2),"ICDA")
 | 
|---|
| 21 |  S REC(80,GMTSICD,10,"E")=$G(ICDA(1))
 | 
|---|
| 22 |  S REC(80,GMTSICD,10,"I")=$G(ICDA(1))
 | 
|---|
| 23 |  S CODE=REC(80,GMTSICD,.01,"I")
 | 
|---|
| 24 |  S NAME=REC(80,GMTSICD,3,"E")
 | 
|---|
| 25 |  S DESC=REC(80,GMTSICD,10,"E")
 | 
|---|
| 26 |  S:GMTSICF="L"!(GMTSICF="") GMTSICD=CODE_"-"_DESC
 | 
|---|
| 27 |  S:GMTSICF="S" GMTSICD=CODE_"-"_NAME
 | 
|---|
| 28 |  S:GMTSICF="C" GMTSICD=CODE
 | 
|---|
| 29 |  S:GMTSICF="T" GMTSICD=DESC
 | 
|---|
| 30 |  I $G(GMMOD)]"" S GMMOD=$P(GMMOD,","),GMTSICD=GMMOD_" "_GMTSICD
 | 
|---|
| 31 |  S:GMTSICF="N" GMTSICD=""
 | 
|---|
| 32 |  Q
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 | GETICDOP(GMTSICD,GMTSICF,GMMOD) ; Entry point to get ICD0 data
 | 
|---|
| 35 |  S GMTSICD=$G(GMTSICD),GMTSICF=$G(GMTSICF),GMMOD=$G(GMMOD)
 | 
|---|
| 36 |  N REC,CODE,NAME,DESC,ICDX,ICDI,ICDA
 | 
|---|
| 37 |  S ICDX=$$ICDOP^ICDCODE(+GMTSICD)
 | 
|---|
| 38 |  S REC(80.1,GMTSICD,.01,"E")=$P(ICDX,"^",2)
 | 
|---|
| 39 |  S REC(80.1,GMTSICD,.01,"I")=$P(ICDX,"^",2)
 | 
|---|
| 40 |  S REC(80.1,GMTSICD,4,"E")=$P(ICDX,"^",5)
 | 
|---|
| 41 |  S REC(80.1,GMTSICD,4,"I")=$P(ICDX,"^",5)
 | 
|---|
| 42 |  S ICDI=$$ICDD^ICDCODE($P(ICDX,"^",2),"ICDA")
 | 
|---|
| 43 |  S REC(80.1,GMTSICD,10,"E")=$G(ICDA(1))
 | 
|---|
| 44 |  S REC(80.1,GMTSICD,10,"I")=$G(ICDA(1))
 | 
|---|
| 45 |  S CODE=REC(80.1,GMTSICD,.01,"I")
 | 
|---|
| 46 |  S NAME=REC(80.1,GMTSICD,4,"E")
 | 
|---|
| 47 |  S DESC=REC(80.1,GMTSICD,10,"E")
 | 
|---|
| 48 |  S:GMTSICF="L"!(GMTSICF="") GMTSICD=CODE_"-"_DESC
 | 
|---|
| 49 |  S:GMTSICF="S" GMTSICD=CODE_"-"_NAME
 | 
|---|
| 50 |  S:GMTSICF="C" GMTSICD=CODE
 | 
|---|
| 51 |  S:GMTSICF="T" GMTSICD=DESC
 | 
|---|
| 52 |  S:GMTSICF="N" GMTSICD=""
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 | GETCPT(GMTSCPT) ; Entry point to get CPT data
 | 
|---|
| 56 |  N ICPT S GMTSCPT=+($G(GMTSCPT)) Q:GMTSCPT=0 ""
 | 
|---|
| 57 |  S ICPT=$$CPT^ICPTCOD(+GMTSCPT),ICPT=$P(ICPT,"^",2)_"-"_$P(ICPT,"^",3)
 | 
|---|
| 58 |  Q ICPT
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 | TXTFMT(GMTSICD,GMTSNARR,GMICL,GMTAB,DIWL,GMTSQTY,GMTSPRIM) ; Formats GMTSICD & GMTSNARR together
 | 
|---|
| 61 |  I GMTSICD="",GMTSNARR="" Q
 | 
|---|
| 62 |  N DIWR,DIWF,X
 | 
|---|
| 63 |  S DIWR=80-(GMICL+GMTAB)
 | 
|---|
| 64 |  K ^UTILITY($J,"W")
 | 
|---|
| 65 |  I $G(GMTSICD)]"" S X=GMTSICD S:$G(GMTSNARR)]"" X=X_"; "
 | 
|---|
| 66 |  I $G(GMTSNARR)]"" S X=$G(X)_GMTSNARR D
 | 
|---|
| 67 |  . I $G(GMTSPRIM)]"" S X=X_GMTSPRIM
 | 
|---|
| 68 |  . I $G(GMTSQTY)]"" S X=X_GMTSQTY
 | 
|---|
| 69 |  . D ^DIWP
 | 
|---|
| 70 |  I $G(GMTSNARR)']"" D
 | 
|---|
| 71 |  . I $G(GMTSQTY)]"" S X=$G(X)_GMTSQTY
 | 
|---|
| 72 |  . I $G(GMTSPRIM)]"" S X=X_GMTSPRIM
 | 
|---|
| 73 |  . D ^DIWP
 | 
|---|
| 74 |  Q
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 | ORDERPRO(GMPROV,GMLEN) ; Re-order and format providers for visit
 | 
|---|
| 77 |  N GMCNT,GMTSP,GMNODE,GMP
 | 
|---|
| 78 |  S GMCNT=0
 | 
|---|
| 79 |  F GMP="P","S","Z" S GMTSP="" F  S GMTSP=$O(^TMP("PXHSV",$J,GMTSIVD,GMTSVDF,"P",GMP,GMTSP)) Q:GMTSP'>0  D
 | 
|---|
| 80 |  . S GMNODE=^TMP("PXHSV",$J,GMTSIVD,GMTSVDF,"P",GMP,GMTSP)
 | 
|---|
| 81 |  . Q:GMNODE']""
 | 
|---|
| 82 |  . S GMCNT=GMCNT+1
 | 
|---|
| 83 |  . S GMPROV(GMCNT)=$E($P(GMNODE,U),1,GMLEN-4)_$S(GMP="P"!(GMP="S"):" ("_GMP_")",1:"")
 | 
|---|
| 84 |  Q
 | 
|---|
| 85 |  ;                              
 | 
|---|
| 86 |  ; The following code segments are called from "ROUTINE" type
 | 
|---|
| 87 |  ; Menu Options to display items in a file
 | 
|---|
| 88 |  ;                           
 | 
|---|
| 89 | LM ;   Entry Point - for GMTS Measurement Panel
 | 
|---|
| 90 |  S GMTSLST="^GMT(142.7," G DSPLST
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 | DSPLST ;   Common code for Health Summary MNX Lists
 | 
|---|
| 93 |  K DIR
 | 
|---|
| 94 |  I '$D(@(GMTSLST_"""B"")")) W !,"NO ",$P(@(GMTSLST_"0)"),U),"S DEFINED.",! Q
 | 
|---|
| 95 |  W @IOF,!!,"Existing ",$P(@(GMTSLST_"0)"),U),"S:",! S GMTSCNT=""
 | 
|---|
| 96 | CONT ;   Continue
 | 
|---|
| 97 |  F  S GMTSCNT=$O(@(GMTSLST_"""B"",GMTSCNT)")) Q:GMTSCNT=""  D  G:1'[$G(Y)&($L($G(Y))) QUIT
 | 
|---|
| 98 |  . N DIR K Y W !,?5,GMTSCNT I (IOSL-3)<$Y S DIR(0)="E" D
 | 
|---|
| 99 |  . . D ^DIR W @IOF
 | 
|---|
| 100 |  K DIR S DIR(0)="E" D ^DIR W !
 | 
|---|
| 101 | QUIT ;   Quit
 | 
|---|
| 102 |  K DIR,X,Y,GMTSLST,GMTSCNT
 | 
|---|
| 103 |  Q
 | 
|---|