- GMRCSLM2 ;SLC/DCM,WAT - LM Detailed display and printing ;Sep 10, 2020@14:20:28
- ;;3.0;CONSULT/REQUEST TRACKING;**1,4,18,15,17,23,22,65,66,73,81,110,145**;DEC 27,1997;Build 18
- ;
- ;ICRs
- ;GLOBALS/FILES
- ;#872 ^ORD(101 #875 ORDER STATUS file point(100.01) #2638 ORDER STATUS file access #2849 ORDERS file #10060 NEW PERSON (file 200) #10040 HOSPITAL LOCATION (^SC)
- ;#10090 INSTITUTION
- ;ROUTINES
- ;#2467 $$OI^ORX8 #2056 $$GET1^DIQ #10104 XLFSTR #4156 $$CVEDT^DGCV #10117 ^VALM10 #4807 RDIS^DGRPDB
- ;
- DT(GMRCO,GMRCIERR) ;;Entry point to set-up detailed display.
- ;;Pass in GMRCO as +GMRCO - a number only. GMRCO=IEN from of consult from file 123
- ;;Results are placed in ^TMP("GMRCR",$J,"DT",
- ;;Pass in variable GMRCOER=2 if calling from the GUI, GMRCOER=1 if call is from CPRS consults tab
- ;;Pass in variable GMRCOER=0 (or as <UNDEFINED>) if call is from consults routines
- K GMRCQUT
- N DFN,GMRCD,GMRCDA,ORIFN,GMRCSF,GMRCUCID S GMRCDVDL="",$P(GMRCDVDL,"-",80)=""
- I $S('GMRCO:1,'$D(^GMR(123,+GMRCO,0)):1,1:0) D:$S('$D(GMRCOER):1,'GMRCOER:1,1:0) S GMRCQUT=1 Q
- .S GMRCMSG="The consult entry selected for the Detailed Display is unknown." D EXAC^GMRCADC(GMRCMSG) K GMRCMSG
- .Q
- K ^TMP("GMRCR",$J,"DT") S TAB="",$P(TAB," ",30)="",GMRCCT=1
- S GMRCO(0)=^GMR(123,+GMRCO,0),ORIFN=$P(GMRCO(0),"^",3),DFN=$P(GMRCO(0),"^",2)
- S X="SDUTL3" X ^%ZOSF("TEST") I D
- .N PR S PR=$$OUTPTPR^SDUTL3(DFN) I $L(PR) S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Current PC Provider: "_$P(PR,"^",2),GMRCCT=GMRCCT+1
- .S PR=$$OUTPTTM^SDUTL3(DFN) I $L(PR) S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Current PC Team: "_$P(PR,"^",2),GMRCCT=GMRCCT+1
- .Q
- N VAIN,VAEL,CVELIG
- D INP^VADPT S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Current Pat. Status: "_$S(+VAIN(8):"Inpatient",1:"Outpatient"),GMRCCT=GMRCCT+1
- I $D(VAIN(4)),$L($P(VAIN(4),"^",2)) S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Ward:"_$E(TAB,1,18)_$P(VAIN(4),"^",2),GMRCCT=GMRCCT+1
- S GMRCUCID=$$GET1^DIQ(123,+GMRCO,80) I GMRCUCID]"" S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="UCID:"_$E(TAB,1,23-$L("UCID:"))_GMRCUCID,GMRCCT=GMRCCT+1 ;110
- D ELIG^VADPT
- S:$L($P(VAEL(1),"^",2)) ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Primary Eligibility:"_$E(TAB,1,3)_$P(VAEL(1),"^",2)_$S(VAEL(8)']"":" (NOT VERIFIED)",1:"("_$P(VAEL(8),"^",2)_")"),GMRCCT=GMRCCT+1
- ;wat 66
- I $L($P(VAEL(6),U,2)) D
- .;if TYPE is Active Duty and VETERAN Y/N? is No, then call the pt Active Duty
- .I $P(VAEL(6),U,1)=5&(VAEL(4)=0) S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Patient Type:"_$E(TAB,1,10)_$P(VAEL(6),U,2),GMRCCT=GMRCCT+1
- .E S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Patient Type:"_$E(TAB,1,10)_$P(VAEL(6),U,2),GMRCCT=GMRCCT+1
- ;//wat 66
- S CVELIG=$$CVEDT^DGCV(DFN) S:$P($G(CVELIG),U,3) ^TMP("GMRCR",$J,"DT",GMRCCT,0)="CV Eligible:"_$E(TAB,1,11)_"YES",GMRCCT=GMRCCT+1 ;WAT
- ;wat 66
- N VASV,OIFOEF S OIFOEF="NO" D SVC^VADPT S:(VASV(11)>0)!(VASV(12)>0)!(VASV(13)>0) OIFOEF="YES"
- S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="OEF/OIF: "_$E(TAB,1,14)_$G(OIFOEF),GMRCCT=GMRCCT+1
- ; GET SC RATINGS AND %
- N INC,COND S INC=0
- I $P(VAEL(3),U)=1 D
- .S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="",GMRCCT=GMRCCT+1
- .S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Service Connection/Rated Disabilities",GMRCCT=GMRCCT+1
- .I '$P(VAEL(3),U,2) S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="SC Percent:"_$E(TAB,1,12)_"DATA NOT FOUND",GMRCCT=GMRCCT+1
- .E S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="SC Percent:"_$E(TAB,1,12)_$P(VAEL(3),U,2)_"%",GMRCCT=GMRCCT+1
- .D RDIS^DGRPDB(DFN,.GMRCRDIS) I $D(GMRCRDIS(1)) D
- ..F S INC=$O(GMRCRDIS(INC)) Q:INC="" D
- ...S COND=$$GET1^DIQ(31,$P(GMRCRDIS(INC),U),.01)
- ...S:$G(INC)=1 ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Rated Disabilities:"_$E(TAB,1,4)_$G(COND)_" ("_$P(GMRCRDIS(INC),U,2)_"%)",GMRCCT=GMRCCT+1
- ...S:$G(INC)>1 ^TMP("GMRCR",$J,"DT",GMRCCT,0)=$E(TAB,1,23)_$G(COND)_" ("_$P(GMRCRDIS(INC),U,2)_"%)",GMRCCT=GMRCCT+1
- .I '$D(GMRCRDIS) D
- ..S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Rated Disabilities:"_$E(TAB,1,4)_"NONE STATED",GMRCCT=GMRCCT+1
- ;//wat 66
- S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="",GMRCCT=GMRCCT+1
- S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Order Information",GMRCCT=GMRCCT+1
- S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="To Service:"_$E(TAB,1,12)_$P($G(^GMR(123.5,+$P(GMRCO(0),"^",5),0)),"^"),GMRCCT=GMRCCT+1
- I $P(GMRCO(0),"^",11) S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Attention:"_$E(TAB,1,13)_$$GET1^DIQ(200,$P($G(GMRCO(0)),"^",11),.01),GMRCCT=GMRCCT+1
- S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="From Service:"_$E(TAB,1,10)_$P($G(^SC(+$P(GMRCO(0),"^",6),0)),"^"),GMRCCT=GMRCCT+1
- S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Requesting Provider: "_$E(TAB,1,2)_$S($P(GMRCO(0),"^",14)]"":$$GET1^DIQ(200,$P($G(GMRCO(0)),"^",14),.01),1:""),GMRCCT=GMRCCT+1
- I $L($P(GMRCO(0),"^",18)) D
- .S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Service is to be rendered on an "_$S($P(GMRCO(0),"^",18)="I":"INPATIENT",1:"OUTPATIENT")_" basis",GMRCCT=GMRCCT+1
- .Q
- I $P(GMRCO(0),"^",10) S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Place:"_$E(TAB,1,17)_$P($G(^ORD(101,+$P(GMRCO(0),"^",10),0)),"^",2),GMRCCT=GMRCCT+1
- S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Urgency:"_$E(TAB,1,15)_$S($L($P(GMRCO(0),"^",9)):$P($G(^ORD(101,+$P(GMRCO(0),"^",9),0)),"^",2),1:""),GMRCCT=GMRCCT+1
- S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Clinically Ind. Date:"_$E(TAB,1,2)_$$FMTE^XLFDT($P($G(GMRCO(0)),"^",24),1),GMRCCT=GMRCCT+1
- S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="DST ID:"_$E(TAB,1,16)_$G(^GMR(123,+GMRCO,75)),GMRCCT=GMRCCT+1
- S X="ORX8" X ^%ZOSF("TEST") I D
- .N GMRCOITM S GMRCOITM=$$OI^ORX8(ORIFN)
- .S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Orderable Item:"_$E(TAB,1,8)_$P(GMRCOITM,U,2),GMRCCT=GMRCCT+1
- .Q
- S GMRCPRNM=$P(GMRCO(0),"^",8),GMRCPROC=$S(+GMRCPRNM:$P($G(^GMR(123.3,+GMRCPRNM,0)),"^"),1:"Consult Request")
- I $L(GMRCPROC) D
- .N GMRCLN
- .S GMRCTYPE=$S($P(GMRCO(0),U,17)="P":"Procedure",1:"Consult")
- .S GMRCLN=GMRCTYPE_":"_$E(TAB,1,22-$L(GMRCTYPE))_GMRCPROC
- .S ^TMP("GMRCR",$J,"DT",GMRCCT,0)=GMRCLN
- .S GMRCCT=GMRCCT+1
- .I $G(^GMR(123,+GMRCO,1)) D
- .. S GMRCLN=""
- .. S GMRCLN="Clinical Procedure:"_$E(TAB,1,4)
- .. S GMRCLN=GMRCLN_$$GET1^DIQ(123,+GMRCO,1.01,"E")
- .. S ^TMP("GMRCR",$J,"DT",GMRCCT,0)=GMRCLN
- .. S GMRCCT=GMRCCT+1
- .Q
- D PROVDIAG(+GMRCO)
- I $D(^GMR(123,+GMRCO,20,0)) D
- .I $O(^GMR(123,+GMRCO,20,0)) S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Reason For Request:",GMRCCT=GMRCCT+1 D Q
- .. S LN=0
- .. F S LN=$O(^GMR(123,+GMRCO,20,LN)) Q:LN="" D
- ... S ^TMP("GMRCR",$J,"DT",GMRCCT,0)=^GMR(123,+GMRCO,20,LN,0)
- ... I $G(GMRCIERR) D
- .... N TXT S TXT=^TMP("GMRCR",$J,"DT",GMRCCT,0)_"..."
- .... S ^TMP("GMRCR",$J,"DT",GMRCCT,0)=TXT
- .... S LN=9999 ;quit with just one line
- ... S GMRCCT=GMRCCT+1
- .. Q
- . Q
- S ^TMP("GMRCR",$J,"DT",GMRCCT,0)=" ",GMRCCT=GMRCCT+1
- ; get inter-facility consult info
- S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Inter-facility Information",GMRCCT=GMRCCT+1
- I '$P(GMRCO(0),"^",23) D
- . S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="This is not an inter-facility consult request.",GMRCCT=GMRCCT+1
- E D
- . S ^TMP("GMRCR",$J,"DT",GMRCCT,0)=$$REPEAT^XLFSTR("-",27)
- . S GMRCCT=GMRCCT+1
- . N GMRCOP
- . S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Remote Facility:"_$E(TAB,1,6)_$$GET1^DIQ(4,+$P(GMRCO(0),"^",23),.01),GMRCCT=GMRCCT+1 ;WAT/73
- . S GMRCO(12)=$G(^GMR(123,+GMRCO,12))
- . I $L($P(GMRCO(12),U,6)) D
- .. S GMRCOP=$P(GMRCO(12),U,6)
- . I '$D(GMRCOP) S GMRCOP=$$GET1^DIQ(200,+$P(GMRCO(0),U,14),.01)
- . S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Ordering Provider:"_$E(TAB,1,5)_GMRCOP,GMRCCT=GMRCCT+1
- . S GMRCO(13)=$G(^GMR(123,+GMRCO,13)) I $L($P(GMRCO(13),U,2,3))>1 D
- .. N LINE
- .. S LINE=$P(GMRCO(13),U,2) I $L(LINE) S LINE=LINE_$E(TAB,1,5) D
- ... S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Ordering Provider phone: "_LINE
- ... S GMRCCT=GMRCCT+1
- .. S LINE=$P(GMRCO(13),U,3) I $L(LINE) S LINE=LINE_$E(TAB,1,5) D
- ... S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Ordering Provider pager: "_LINE
- ... S GMRCCT=GMRCCT+1
- . S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Remote Consult #"_$E(TAB)_$P(GMRCO(0),"^",22),GMRCCT=GMRCCT+1
- . I $L($P(GMRCO(13),U)) S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Remote Service name: "_$E(TAB)_$P(GMRCO(13),U),GMRCCT=GMRCCT+1
- . S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Role: "_$E(TAB,1,10)_$S($P(GMRCO(12),U,5)="P":"Requesting facility",1:"Consulting facility"),GMRCCT=GMRCCT+1
- S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="",GMRCCT=GMRCCT+1
- ;get status, last action, and significant findings
- S STS=$P(GMRCO(0),"^",12),^TMP("GMRCR",$J,"DT",GMRCCT,0)="Status: "_$E(TAB,1,14)_$S($D(^ORD(100.01,+STS,0)):$P(^(0),"^",1),1:$P(^ORD(100.01,6,0),"^",1)),GMRCCT=GMRCCT+1
- S GMRCA=$P(^GMR(123,+GMRCO,0),"^",13),^TMP("GMRCR",$J,"DT",GMRCCT,0)="Last Action:"_$E(TAB,1,11)_$S(+GMRCA:$P($G(^GMR(123.1,GMRCA,0)),"^",1),1:""),GMRCCT=GMRCCT+1
- I $L($P(GMRCO(0),"^",19)) D
- .S GMRCSF=$P(GMRCO(0),"^",19)
- .S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Significant Findings: "_$S(GMRCSF="Y":"YES",GMRCSF="N":"NO",1:"Unknown")
- .S GMRCCT=GMRCCT+1
- .Q
- I $G(GMRCIERR) Q ;don't need results or activities on IFC errors
- D ACTLOG^GMRCSLM4(+GMRCO)
- ; any inter-facility results?
- I $P(GMRCO(0),"^",23) D
- . N GMRCIFRS,X S GMRCIFRS=0,X=""
- . F S X=$O(^GMR(123,GMRCO,51,"B",X)) Q:X="" S GMRCIFRS=GMRCIFRS+1
- . S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="",GMRCCT=GMRCCT+1
- . S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Inter-facility Results: "_$S(GMRCIFRS>0:"Results are available via Display Results action.",1:"No results available for this consult request."),GMRCCT=GMRCCT+2
- ;get local results
- D GETRSLT^GMRCART($NA(^TMP("GMRCRT",$J)),1)
- N NXT S NXT=0
- F S NXT=$O(^TMP("GMRCRT",$J,NXT)) Q:'NXT D
- . S ^TMP("GMRCR",$J,"DT",GMRCCT,0)=$G(^TMP("GMRCRT",$J,NXT,0))
- . S GMRCCT=GMRCCT+1
- . Q
- K ^TMP("GMRCRT",$J)
- I $S('$D(GMRCOER):1,'GMRCOER:1,1:0),$D(VALMAR) D CLEAN^VALM10
- S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="",$P(^(0),"=",80)="",^(0)=$E(^(0),1,36)_" END "_$E(^(0),43,80)
- DTQ K X,LN,PL,TO,WP,FLG,SEX,STS,URG,WRD,BKLN,DATA,WRD,PROC,LINE,GMRCD,GMRCDVDL,GMRCO,GMRCAR,GMRCRB,GMRCLA,GMRCSR,GMRCTO,MCFILE,MCPROC,DSPLINE,GMRCLA1,GMRCPRNM,GMRCPROC,GMRCTYPE,GMRCWARD
- I $D(GMRCOER),'GMRCOER D:$D(VALMEVL) KILL^VALM10() D:$D(VALMAR) CLEAN^VALM10
- Q
- PROVDIAG(GMRCDA) ;test all prov diags
- N GMRCD,GMRCCODE,PIECE,FLG,CODINTXT,BUFFER,REPEAT
- S FLG=0
- S REPEAT=22 ;spaces to repeat for formatting
- S GMRCD=$G(^GMR(123,GMRCDA,30))
- S GMRCCODE=$G(^GMR(123,GMRCDA,30.1)),CODINTXT="("_$P(GMRCCODE,U)_")"
- ;icd-9 consults stored code in diagnosis text, icd-10 does not. Strip code from text and append to end for display
- ;desired coding system and code display format (ICD-9-CM 123.45) or (ICD-10-CM S06.4X0S)
- I GMRCD[$G(CODINTXT) D
- .S GMRCD=$E(GMRCD,0,($L(GMRCD)-$L(CODINTXT)))
- I $L($P(GMRCCODE,U))>0 D
- .I $P(GMRCCODE,U,3)="ICD" S GMRCD=GMRCD_"(ICD-9-CM "_$P(GMRCCODE,U)_")"
- .I $P(GMRCCODE,U,3)="10D" S GMRCD=GMRCD_"(ICD-10-CM "_$P(GMRCCODE,U)_")"
- I $L($G(GMRCD))>54 D
- .F S PIECE=$L(GMRCD) Q:PIECE<54 D ;$L of GMRCD will change below, so hold original length in PIECE
- .. N SEG,I S I=2
- .. F S SEG=$P(GMRCD," ",1,I) Q:$L(SEG)>=54!($L(SEG," ")<I) S I=I+1
- .. I $L(SEG)=$L(GMRCD) S SEG=$E(GMRCD,1,54) ;means GMRCD doesn't contain spaces, e.g. v55,250.00,414.00,etc.
- .. S BUFFER=SEG
- .. S:SEG[" " SEG=$P(GMRCD," ",1,(I-1)) I $L(SEG)=0 S SEG=$E(BUFFER,1,54) ;$P only good when SEG contains a space, otherwise grab a SEG from BUFFER
- .. S:FLG=0 ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Provisional Diagnosis: "_SEG
- .. I FLG=1&($F(GMRCD," ")'=2) S REPEAT=23
- .. S:FLG=1 ^TMP("GMRCR",$J,"DT",GMRCCT,0)=$$REPEAT^XLFSTR(" ",REPEAT)_SEG
- .. S FLG=1,GMRCCT=GMRCCT+1
- .. S GMRCD=$E(GMRCD,$L(SEG)+1,999)
- . I $F(GMRCD," ")'=2 S REPEAT=23
- . S ^TMP("GMRCR",$J,"DT",GMRCCT,0)=$$REPEAT^XLFSTR(" ",REPEAT)_GMRCD
- . S GMRCCT=GMRCCT+1,GMRCD=""
- I $G(GMRCD)'="" D
- . S ^TMP("GMRCR",$J,"DT",GMRCCT,0)="Provisional Diagnosis: "_GMRCD
- . S GMRCCT=GMRCCT+1
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMRCSLM2 11671 printed Feb 18, 2025@23:13:33 Page 2
- GMRCSLM2 ;SLC/DCM,WAT - LM Detailed display and printing ;Sep 10, 2020@14:20:28
- +1 ;;3.0;CONSULT/REQUEST TRACKING;**1,4,18,15,17,23,22,65,66,73,81,110,145**;DEC 27,1997;Build 18
- +2 ;
- +3 ;ICRs
- +4 ;GLOBALS/FILES
- +5 ;#872 ^ORD(101 #875 ORDER STATUS file point(100.01) #2638 ORDER STATUS file access #2849 ORDERS file #10060 NEW PERSON (file 200) #10040 HOSPITAL LOCATION (^SC)
- +6 ;#10090 INSTITUTION
- +7 ;ROUTINES
- +8 ;#2467 $$OI^ORX8 #2056 $$GET1^DIQ #10104 XLFSTR #4156 $$CVEDT^DGCV #10117 ^VALM10 #4807 RDIS^DGRPDB
- +9 ;
- DT(GMRCO,GMRCIERR) ;;Entry point to set-up detailed display.
- +1 ;;Pass in GMRCO as +GMRCO - a number only. GMRCO=IEN from of consult from file 123
- +2 ;;Results are placed in ^TMP("GMRCR",$J,"DT",
- +3 ;;Pass in variable GMRCOER=2 if calling from the GUI, GMRCOER=1 if call is from CPRS consults tab
- +4 ;;Pass in variable GMRCOER=0 (or as <UNDEFINED>) if call is from consults routines
- +5 KILL GMRCQUT
- +6 NEW DFN,GMRCD,GMRCDA,ORIFN,GMRCSF,GMRCUCID
- SET GMRCDVDL=""
- SET $PIECE(GMRCDVDL,"-",80)=""
- +7 IF $SELECT('GMRCO:1,'$DATA(^GMR(123,+GMRCO,0)):1,1:0)
- if $SELECT('$DATA(GMRCOER)
- Begin DoDot:1
- +8 SET GMRCMSG="The consult entry selected for the Detailed Display is unknown."
- DO EXAC^GMRCADC(GMRCMSG)
- KILL GMRCMSG
- +9 QUIT
- End DoDot:1
- SET GMRCQUT=1
- QUIT
- +10 KILL ^TMP("GMRCR",$JOB,"DT")
- SET TAB=""
- SET $PIECE(TAB," ",30)=""
- SET GMRCCT=1
- +11 SET GMRCO(0)=^GMR(123,+GMRCO,0)
- SET ORIFN=$PIECE(GMRCO(0),"^",3)
- SET DFN=$PIECE(GMRCO(0),"^",2)
- +12 SET X="SDUTL3"
- XECUTE ^%ZOSF("TEST")
- IF $TEST
- Begin DoDot:1
- +13 NEW PR
- SET PR=$$OUTPTPR^SDUTL3(DFN)
- IF $LENGTH(PR)
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Current PC Provider: "_$PIECE(PR,"^",2)
- SET GMRCCT=GMRCCT+1
- +14 SET PR=$$OUTPTTM^SDUTL3(DFN)
- IF $LENGTH(PR)
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Current PC Team: "_$PIECE(PR,"^",2)
- SET GMRCCT=GMRCCT+1
- +15 QUIT
- End DoDot:1
- +16 NEW VAIN,VAEL,CVELIG
- +17 DO INP^VADPT
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Current Pat. Status: "_$SELECT(+VAIN(8):"Inpatient",1:"Outpatient")
- SET GMRCCT=GMRCCT+1
- +18 IF $DATA(VAIN(4))
- IF $LENGTH($PIECE(VAIN(4),"^",2))
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Ward:"_$EXTRACT(TAB,1,18)_$PIECE(VAIN(4),"^",2)
- SET GMRCCT=GMRCCT+1
- +19 ;110
- SET GMRCUCID=$$GET1^DIQ(123,+GMRCO,80)
- IF GMRCUCID]""
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="UCID:"_$EXTRACT(TAB,1,23-$LENGTH("UCID:"))_GMRCUCID
- SET GMRCCT=GMRCCT+1
- +20 DO ELIG^VADPT
- +21 if $LENGTH($PIECE(VAEL(1),"^",2))
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Primary Eligibility:"_$EXTRACT(TAB,1,3)_$PIECE(VAEL(1),"^",2)_$SELECT(VAEL(8)']"":" (NOT VERIFIED)",1:"("_$PIECE(VAEL(8),"^",2)_")")
- SET GMRCCT=GMRCCT+1
- +22 ;wat 66
- +23 IF $LENGTH($PIECE(VAEL(6),U,2))
- Begin DoDot:1
- +24 ;if TYPE is Active Duty and VETERAN Y/N? is No, then call the pt Active Duty
- +25 IF $PIECE(VAEL(6),U,1)=5&(VAEL(4)=0)
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Patient Type:"_$EXTRACT(TAB,1,10)_$PIECE(VAEL(6),U,2)
- SET GMRCCT=GMRCCT+1
- +26 IF '$TEST
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Patient Type:"_$EXTRACT(TAB,1,10)_$PIECE(VAEL(6),U,2)
- SET GMRCCT=GMRCCT+1
- End DoDot:1
- +27 ;//wat 66
- +28 ;WAT
- SET CVELIG=$$CVEDT^DGCV(DFN)
- if $PIECE($GET(CVELIG),U,3)
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="CV Eligible:"_$EXTRACT(TAB,1,11)_"YES"
- SET GMRCCT=GMRCCT+1
- +29 ;wat 66
- +30 NEW VASV,OIFOEF
- SET OIFOEF="NO"
- DO SVC^VADPT
- if (VASV(11)>0)!(VASV(12)>0)!(VASV(13)>0)
- SET OIFOEF="YES"
- +31 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="OEF/OIF: "_$EXTRACT(TAB,1,14)_$GET(OIFOEF)
- SET GMRCCT=GMRCCT+1
- +32 ; GET SC RATINGS AND %
- +33 NEW INC,COND
- SET INC=0
- +34 IF $PIECE(VAEL(3),U)=1
- Begin DoDot:1
- +35 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=""
- SET GMRCCT=GMRCCT+1
- +36 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Service Connection/Rated Disabilities"
- SET GMRCCT=GMRCCT+1
- +37 IF '$PIECE(VAEL(3),U,2)
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="SC Percent:"_$EXTRACT(TAB,1,12)_"DATA NOT FOUND"
- SET GMRCCT=GMRCCT+1
- +38 IF '$TEST
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="SC Percent:"_$EXTRACT(TAB,1,12)_$PIECE(VAEL(3),U,2)_"%"
- SET GMRCCT=GMRCCT+1
- +39 DO RDIS^DGRPDB(DFN,.GMRCRDIS)
- IF $DATA(GMRCRDIS(1))
- Begin DoDot:2
- +40 FOR
- SET INC=$ORDER(GMRCRDIS(INC))
- if INC=""
- QUIT
- Begin DoDot:3
- +41 SET COND=$$GET1^DIQ(31,$PIECE(GMRCRDIS(INC),U),.01)
- +42 if $GET(INC)=1
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Rated Disabilities:"_$EXTRACT(TAB,1,4)_$GET(COND)_" ("_$PIECE(GMRCRDIS(INC),U,2)_"%)"
- SET GMRCCT=GMRCCT+1
- +43 if $GET(INC)>1
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=$EXTRACT(TAB,1,23)_$GET(COND)_" ("_$PIECE(GMRCRDIS(INC),U,2)_"%)"
- SET GMRCCT=GMRCCT+1
- End DoDot:3
- End DoDot:2
- +44 IF '$DATA(GMRCRDIS)
- Begin DoDot:2
- +45 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Rated Disabilities:"_$EXTRACT(TAB,1,4)_"NONE STATED"
- SET GMRCCT=GMRCCT+1
- End DoDot:2
- End DoDot:1
- +46 ;//wat 66
- +47 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=""
- SET GMRCCT=GMRCCT+1
- +48 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Order Information"
- SET GMRCCT=GMRCCT+1
- +49 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="To Service:"_$EXTRACT(TAB,1,12)_$PIECE($GET(^GMR(123.5,+$PIECE(GMRCO(0),"^",5),0)),"^")
- SET GMRCCT=GMRCCT+1
- +50 IF $PIECE(GMRCO(0),"^",11)
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Attention:"_$EXTRACT(TAB,1,13)_$$GET1^DIQ(200,$PIECE($GET(GMRCO(0)),"^",11),.01)
- SET GMRCCT=GMRCCT+1
- +51 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="From Service:"_$EXTRACT(TAB,1,10)_$PIECE($GET(^SC(+$PIECE(GMRCO(0),"^",6),0)),"^")
- SET GMRCCT=GMRCCT+1
- +52 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Requesting Provider: "_$EXTRACT(TAB,1,2)_$SELECT($PIECE(GMRCO(0),"^",14)]"":$$GET1^DIQ(200,$PIECE($GET(GMRCO(0)),"^",14),.01),1:"")
- SET GMRCCT=GMRCCT+1
- +53 IF $LENGTH($PIECE(GMRCO(0),"^",18))
- Begin DoDot:1
- +54 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Service is to be rendered on an "_$SELECT($PIECE(GMRCO(0),"^",18)="I":"INPATIENT",1:"OUTPATIENT")_" basis"
- SET GMRCCT=GMRCCT+1
- +55 QUIT
- End DoDot:1
- +56 IF $PIECE(GMRCO(0),"^",10)
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Place:"_$EXTRACT(TAB,1,17)_$PIECE($GET(^ORD(101,+$PIECE(GMRCO(0),"^",10),0)),"^",2)
- SET GMRCCT=GMRCCT+1
- +57 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Urgency:"_$EXTRACT(TAB,1,15)_$SELECT($LENGTH($PIECE(GMRCO(0),"^",9)):$PIECE($GET(^ORD(101,+$PIECE(GMRCO(0),"^",9),0)),"^",2),1:"")
- SET GMRCCT=GMRCCT+1
- +58 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Clinically Ind. Date:"_$EXTRACT(TAB,1,2)_$$FMTE^XLFDT($PIECE($GET(GMRCO(0)),"^",24),1)
- SET GMRCCT=GMRCCT+1
- +59 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="DST ID:"_$EXTRACT(TAB,1,16)_$GET(^GMR(123,+GMRCO,75))
- SET GMRCCT=GMRCCT+1
- +60 SET X="ORX8"
- XECUTE ^%ZOSF("TEST")
- IF $TEST
- Begin DoDot:1
- +61 NEW GMRCOITM
- SET GMRCOITM=$$OI^ORX8(ORIFN)
- +62 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Orderable Item:"_$EXTRACT(TAB,1,8)_$PIECE(GMRCOITM,U,2)
- SET GMRCCT=GMRCCT+1
- +63 QUIT
- End DoDot:1
- +64 SET GMRCPRNM=$PIECE(GMRCO(0),"^",8)
- SET GMRCPROC=$SELECT(+GMRCPRNM:$PIECE($GET(^GMR(123.3,+GMRCPRNM,0)),"^"),1:"Consult Request")
- +65 IF $LENGTH(GMRCPROC)
- Begin DoDot:1
- +66 NEW GMRCLN
- +67 SET GMRCTYPE=$SELECT($PIECE(GMRCO(0),U,17)="P":"Procedure",1:"Consult")
- +68 SET GMRCLN=GMRCTYPE_":"_$EXTRACT(TAB,1,22-$LENGTH(GMRCTYPE))_GMRCPROC
- +69 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=GMRCLN
- +70 SET GMRCCT=GMRCCT+1
- +71 IF $GET(^GMR(123,+GMRCO,1))
- Begin DoDot:2
- +72 SET GMRCLN=""
- +73 SET GMRCLN="Clinical Procedure:"_$EXTRACT(TAB,1,4)
- +74 SET GMRCLN=GMRCLN_$$GET1^DIQ(123,+GMRCO,1.01,"E")
- +75 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=GMRCLN
- +76 SET GMRCCT=GMRCCT+1
- End DoDot:2
- +77 QUIT
- End DoDot:1
- +78 DO PROVDIAG(+GMRCO)
- +79 IF $DATA(^GMR(123,+GMRCO,20,0))
- Begin DoDot:1
- +80 IF $ORDER(^GMR(123,+GMRCO,20,0))
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Reason For Request:"
- SET GMRCCT=GMRCCT+1
- Begin DoDot:2
- +81 SET LN=0
- +82 FOR
- SET LN=$ORDER(^GMR(123,+GMRCO,20,LN))
- if LN=""
- QUIT
- Begin DoDot:3
- +83 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=^GMR(123,+GMRCO,20,LN,0)
- +84 IF $GET(GMRCIERR)
- Begin DoDot:4
- +85 NEW TXT
- SET TXT=^TMP("GMRCR",$JOB,"DT",GMRCCT,0)_"..."
- +86 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=TXT
- +87 ;quit with just one line
- SET LN=9999
- End DoDot:4
- +88 SET GMRCCT=GMRCCT+1
- End DoDot:3
- +89 QUIT
- End DoDot:2
- QUIT
- +90 QUIT
- End DoDot:1
- +91 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=" "
- SET GMRCCT=GMRCCT+1
- +92 ; get inter-facility consult info
- +93 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Inter-facility Information"
- SET GMRCCT=GMRCCT+1
- +94 IF '$PIECE(GMRCO(0),"^",23)
- Begin DoDot:1
- +95 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="This is not an inter-facility consult request."
- SET GMRCCT=GMRCCT+1
- End DoDot:1
- +96 IF '$TEST
- Begin DoDot:1
- +97 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=$$REPEAT^XLFSTR("-",27)
- +98 SET GMRCCT=GMRCCT+1
- +99 NEW GMRCOP
- +100 ;WAT/73
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Remote Facility:"_$EXTRACT(TAB,1,6)_$$GET1^DIQ(4,+$PIECE(GMRCO(0),"^",23),.01)
- SET GMRCCT=GMRCCT+1
- +101 SET GMRCO(12)=$GET(^GMR(123,+GMRCO,12))
- +102 IF $LENGTH($PIECE(GMRCO(12),U,6))
- Begin DoDot:2
- +103 SET GMRCOP=$PIECE(GMRCO(12),U,6)
- End DoDot:2
- +104 IF '$DATA(GMRCOP)
- SET GMRCOP=$$GET1^DIQ(200,+$PIECE(GMRCO(0),U,14),.01)
- +105 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Ordering Provider:"_$EXTRACT(TAB,1,5)_GMRCOP
- SET GMRCCT=GMRCCT+1
- +106 SET GMRCO(13)=$GET(^GMR(123,+GMRCO,13))
- IF $LENGTH($PIECE(GMRCO(13),U,2,3))>1
- Begin DoDot:2
- +107 NEW LINE
- +108 SET LINE=$PIECE(GMRCO(13),U,2)
- IF $LENGTH(LINE)
- SET LINE=LINE_$EXTRACT(TAB,1,5)
- Begin DoDot:3
- +109 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Ordering Provider phone: "_LINE
- +110 SET GMRCCT=GMRCCT+1
- End DoDot:3
- +111 SET LINE=$PIECE(GMRCO(13),U,3)
- IF $LENGTH(LINE)
- SET LINE=LINE_$EXTRACT(TAB,1,5)
- Begin DoDot:3
- +112 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Ordering Provider pager: "_LINE
- +113 SET GMRCCT=GMRCCT+1
- End DoDot:3
- End DoDot:2
- +114 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Remote Consult #"_$EXTRACT(TAB)_$PIECE(GMRCO(0),"^",22)
- SET GMRCCT=GMRCCT+1
- +115 IF $LENGTH($PIECE(GMRCO(13),U))
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Remote Service name: "_$EXTRACT(TAB)_$PIECE(GMRCO(13),U)
- SET GMRCCT=GMRCCT+1
- +116 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Role: "_$EXTRACT(TAB,1,10)_$SELECT($PIECE(GMRCO(12),U,5)="P":"Requesting facility",1:"Consulting facility")
- SET GMRCCT=GMRCCT+1
- End DoDot:1
- +117 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=""
- SET GMRCCT=GMRCCT+1
- +118 ;get status, last action, and significant findings
- +119 SET STS=$PIECE(GMRCO(0),"^",12)
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Status: "_$EXTRACT(TAB,1,14)_$SELECT($DATA(^ORD(100.01,+STS,0)):$PIECE(^(0),"^",1),1:$PIECE(^ORD(100.01,6,0),"^",1))
- SET GMRCCT=GMRCCT+1
- +120 SET GMRCA=$PIECE(^GMR(123,+GMRCO,0),"^",13)
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Last Action:"_$EXTRACT(TAB,1,11)_$SELECT(+GMRCA:$PIECE($GET(^GMR(123.1,GMRCA,0)),"^",1),1:"")
- SET GMRCCT=GMRCCT+1
- +121 IF $LENGTH($PIECE(GMRCO(0),"^",19))
- Begin DoDot:1
- +122 SET GMRCSF=$PIECE(GMRCO(0),"^",19)
- +123 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Significant Findings: "_$SELECT(GMRCSF="Y":"YES",GMRCSF="N":"NO",1:"Unknown")
- +124 SET GMRCCT=GMRCCT+1
- +125 QUIT
- End DoDot:1
- +126 ;don't need results or activities on IFC errors
- IF $GET(GMRCIERR)
- QUIT
- +127 DO ACTLOG^GMRCSLM4(+GMRCO)
- +128 ; any inter-facility results?
- +129 IF $PIECE(GMRCO(0),"^",23)
- Begin DoDot:1
- +130 NEW GMRCIFRS,X
- SET GMRCIFRS=0
- SET X=""
- +131 FOR
- SET X=$ORDER(^GMR(123,GMRCO,51,"B",X))
- if X=""
- QUIT
- SET GMRCIFRS=GMRCIFRS+1
- +132 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=""
- SET GMRCCT=GMRCCT+1
- +133 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Inter-facility Results: "_$SELECT(GMRCIFRS>0:"Results are available via Display Results action.",1:"No results available for this consult request.")
- SET GMRCCT=GMRCCT+2
- End DoDot:1
- +134 ;get local results
- +135 DO GETRSLT^GMRCART($NAME(^TMP("GMRCRT",$JOB)),1)
- +136 NEW NXT
- SET NXT=0
- +137 FOR
- SET NXT=$ORDER(^TMP("GMRCRT",$JOB,NXT))
- if 'NXT
- QUIT
- Begin DoDot:1
- +138 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=$GET(^TMP("GMRCRT",$JOB,NXT,0))
- +139 SET GMRCCT=GMRCCT+1
- +140 QUIT
- End DoDot:1
- +141 KILL ^TMP("GMRCRT",$JOB)
- +142 IF $SELECT('$DATA(GMRCOER):1,'GMRCOER:1,1:0)
- IF $DATA(VALMAR)
- DO CLEAN^VALM10
- +143 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=""
- SET $PIECE(^(0),"=",80)=""
- SET ^(0)=$EXTRACT(^(0),1,36)_" END "_$EXTRACT(^(0),43,80)
- DTQ KILL X,LN,PL,TO,WP,FLG,SEX,STS,URG,WRD,BKLN,DATA,WRD,PROC,LINE,GMRCD,GMRCDVDL,GMRCO,GMRCAR,GMRCRB,GMRCLA,GMRCSR,GMRCTO,MCFILE,MCPROC,DSPLINE,GMRCLA1,GMRCPRNM,GMRCPROC,GMRCTYPE,GMRCWARD
- +1 IF $DATA(GMRCOER)
- IF 'GMRCOER
- if $DATA(VALMEVL)
- DO KILL^VALM10()
- if $DATA(VALMAR)
- DO CLEAN^VALM10
- +2 QUIT
- PROVDIAG(GMRCDA) ;test all prov diags
- +1 NEW GMRCD,GMRCCODE,PIECE,FLG,CODINTXT,BUFFER,REPEAT
- +2 SET FLG=0
- +3 ;spaces to repeat for formatting
- SET REPEAT=22
- +4 SET GMRCD=$GET(^GMR(123,GMRCDA,30))
- +5 SET GMRCCODE=$GET(^GMR(123,GMRCDA,30.1))
- SET CODINTXT="("_$PIECE(GMRCCODE,U)_")"
- +6 ;icd-9 consults stored code in diagnosis text, icd-10 does not. Strip code from text and append to end for display
- +7 ;desired coding system and code display format (ICD-9-CM 123.45) or (ICD-10-CM S06.4X0S)
- +8 IF GMRCD[$GET(CODINTXT)
- Begin DoDot:1
- +9 SET GMRCD=$EXTRACT(GMRCD,0,($LENGTH(GMRCD)-$LENGTH(CODINTXT)))
- End DoDot:1
- +10 IF $LENGTH($PIECE(GMRCCODE,U))>0
- Begin DoDot:1
- +11 IF $PIECE(GMRCCODE,U,3)="ICD"
- SET GMRCD=GMRCD_"(ICD-9-CM "_$PIECE(GMRCCODE,U)_")"
- +12 IF $PIECE(GMRCCODE,U,3)="10D"
- SET GMRCD=GMRCD_"(ICD-10-CM "_$PIECE(GMRCCODE,U)_")"
- End DoDot:1
- +13 IF $LENGTH($GET(GMRCD))>54
- Begin DoDot:1
- +14 ;$L of GMRCD will change below, so hold original length in PIECE
- FOR
- SET PIECE=$LENGTH(GMRCD)
- if PIECE<54
- QUIT
- Begin DoDot:2
- +15 NEW SEG,I
- SET I=2
- +16 FOR
- SET SEG=$PIECE(GMRCD," ",1,I)
- if $LENGTH(SEG)>=54!($LENGTH(SEG," ")<I)
- QUIT
- SET I=I+1
- +17 ;means GMRCD doesn't contain spaces, e.g. v55,250.00,414.00,etc.
- IF $LENGTH(SEG)=$LENGTH(GMRCD)
- SET SEG=$EXTRACT(GMRCD,1,54)
- +18 SET BUFFER=SEG
- +19 ;$P only good when SEG contains a space, otherwise grab a SEG from BUFFER
- if SEG[" "
- SET SEG=$PIECE(GMRCD," ",1,(I-1))
- IF $LENGTH(SEG)=0
- SET SEG=$EXTRACT(BUFFER,1,54)
- +20 if FLG=0
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Provisional Diagnosis: "_SEG
- +21 IF FLG=1&($FIND(GMRCD," ")'=2)
- SET REPEAT=23
- +22 if FLG=1
- SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=$$REPEAT^XLFSTR(" ",REPEAT)_SEG
- +23 SET FLG=1
- SET GMRCCT=GMRCCT+1
- +24 SET GMRCD=$EXTRACT(GMRCD,$LENGTH(SEG)+1,999)
- End DoDot:2
- +25 IF $FIND(GMRCD," ")'=2
- SET REPEAT=23
- +26 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)=$$REPEAT^XLFSTR(" ",REPEAT)_GMRCD
- +27 SET GMRCCT=GMRCCT+1
- SET GMRCD=""
- End DoDot:1
- +28 IF $GET(GMRCD)'=""
- Begin DoDot:1
- +29 SET ^TMP("GMRCR",$JOB,"DT",GMRCCT,0)="Provisional Diagnosis: "_GMRCD
- +30 SET GMRCCT=GMRCCT+1
- End DoDot:1
- +31 QUIT