| 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 | 
|---|