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

RMPV0RMPRPAT.m

Go to the documentation of this file.
RMPV0RMPRPAT ; OIT/JDA - Adapted from RMPRPAT; Dec 01, 2024@21:44:41
 ;;1.0;PROSTHETICS VISION 4 SIGHT II;**2**;Jan 31, 2025;Build 38
 ;Per VHA Directive 10-93-142, this routine should not be modified.
 ;
 ; Reference to file #665 supported by ICR #6537
 ; Reference to file #2 (^DPT) supported by ICR #7019
 ; Reference to RMPRPAT0 supported by ICR #7557
 ; Reference to RMPRPAT1 supported by ICR #7558
 ; Reference to RMPRPAT2 supported by ICR #7563
 ; Reference to 2319^RMPOBIL2 supported by ICR #7560
 ; Reference to STAR^RMPRPAT supported by ICR #7561
 ; Reference to DISP^RMPRPAT5 supported by ICR #7567
 ; Reference to NPC^RMPRPAT5 supported by ICR #7567
 ;
RMPRPAT ;PHX/RFM/JLT-DISPLAY 2319 FIRST PAGE ;8/29/1994
 ;;3.0;PROSTHETICS;**29,62,162**;Feb 09, 1996;Build 5
 ;
 ; RVD - patch # 62 - sets RMPRNAM, RMPRSSN,RMPRDOB and RMPRSSNE
 ;
ASK ;Set common variables
 Q:$G(RMPRDFN)<1 
 ;PATCH *162 => insure activity screen displays first time (RMPRFRST) in and Home Oxygen activity is NOT included (RCNT=7) for inside issue option
 N RCNT
 D HOMEZIS^RMPVRT S DFN=RMPRDFN,RMPRBACK=1,RMPRFRST=1,RCNT=7 I $G(RSTCK)'=1 S RCNT=8,RFLG=1
 D ADD^VADPT,OAD^VADPT,DEM^VADPT,ELIG^VADPT
 ;next 2 lines added by patch #62
 S RMPRNAM=$P(VADM(1),U),RMPRSSN=$P(VADM(2),U)
 S RMPRDOB=$P(VADM(3),U),RMPRSSNE=VA("PID")
 D WRITEIND^RMPVIO("@IOF")
 S %X="^RMPR(665,"_RMPRDFN_",",%Y="R5(" D %XY^%RCR S RMPRCNUM=VAEL(7)
ASK1 ;CALL ROUTINE TO DISPLAY SCREEN SELECTI0N
 Q:$G(RMPRDFN)'>0  S DFN=RMPRDFN
 I '$D(VAEL(7)) D ELIG^VADPT
 I '$D(VAPA(1)) D ADD^VADPT
 I '$D(VADM(1)) D DEM^VADPT
 I '$D(VAOA(1)) D OAD^VADPT
 I $D(^RMPR(665,RMPRDFN,8,0)) D WRITECTL^RMPVIO("!"),WRITE^RMPVIO("*Comments on file")
 I '$D(^RMPR(665,RMPRDFN,1,0)) D WRITE^RMPVIO($C(7)),WRITECTL^RMPVIO("!!"),WRITE^RMPVIO("*No Disability Code on File!")
 I $D(^RMPR(665,RMPRDFN,1,0)),'$O(^(0)) D WRITE^RMPVIO($C(7)),WRITECTL^RMPVIO("!!"),WRITE^RMPVIO("*No Disability Code on File!")
 D DISP^RMPRPAT5 K ANS D WRITECTL^RMPVIO("!")
 K RMPRQ,RMPRQUES,DIR,RMPREND1,RMPRL
 D ASK1^RMPRPAT1 K ANS I $G(RMPRFRST)=1,$G(RSTCK) D HELP^RMPRPAT1 ;insure activity list appears upon entry
 D %DIR^RMPVFM
 K DIR,RMPRFRST
 I Y["^" G EXIT
 I Y="",'$D(RMPR1APN) G EXIT
 I Y>0 S ANS=Y G QUE
 ;RMPR1APN is set in the entry action to menu RMPR PRINT 2319
 ;and killed in the exit action.  We do not want to prompt
 ;patient name while creating records, only in display
 ;options
 ;prompt to select a new patient
 I Y="",$D(RMPR1APN) S RMPR2APN=RMPRDFN D GETPAT^RMPV0RMPRUTIL
 I '$D(RMPRDFN) S RMPRDFN=RMPR2APN G EXIT
 I $D(RMPR2APN) K RMPR2APN D ASK1
 Q 
ASK2 ;ASK TO CONTINUE AFTER SCREEN DISPLAY
 G ASK1
HELP D WRITECTL^RMPVIO("!"),WRITE^RMPVIO("You may only enter screen 1-8,`^`, or `return`") G ASK2
 Q 
STAR ;DISPLAY ADDRESS INFO
 Q:$G(DFN)'>0 
 S RMPRBACK=1
 I '$D(VADM(1))!('$D(VAOA(8))!('$D(VAPA(8))!('$D(VAEL(7))))) N VAHOW D DEM^VADPT,ADD^VADPT,OAD^VADPT
 D:$E(IOST)["C" WRITEIND^RMPVIO("@IOF")
 D WRITECTL^RMPVIO("!"),WRITE^RMPVIO($E(RMPRNAM,1,20)),WRITECTL^RMPVIO("?23"),WRITE^RMPVIO("SSN: "),WRITE^RMPVIO($P(VADM(2),U,2)),WRITECTL^RMPVIO("?42")
 D WRITE^RMPVIO("DOB: "),WRITE^RMPVIO($P(VADM(3),U,2)),WRITECTL^RMPVIO("?61"),WRITE^RMPVIO("CLAIM# "),WRITE^RMPVIO(VAEL(7)) ;RMPRCNUM
STARD D WRITECTL^RMPVIO("!!"),WRITE^RMPVIO("Phone: "),WRITE^RMPVIO(VAPA(8)),WRITECTL^RMPVIO("?40"),WRITE^RMPVIO("Phone: "),WRITE^RMPVIO(VAOA(8))
 D WRITECTL^RMPVIO("!"),WRITE^RMPVIO("Current Address:"),WRITECTL^RMPVIO("?40"),WRITE^RMPVIO("Primary Next of Kin Address:")
 D WRITECTL^RMPVIO("!"),WRITE^RMPVIO(VAPA(1)),WRITECTL^RMPVIO("?40"),WRITE^RMPVIO(VAOA(1))
 ; lines truncated
 I VAPA(2)=""&(VAPA(3)="") D:VAPA(4)'="" WRITECTL^RMPVIO("!"),WRITE^RMPVIO(VAPA(4)_", "_$P(VAPA(5),U,2)_" "_VAPA(6)) D
 . D:VAOA(4)'="" WRITECTL^RMPVIO("?40"),WRITE^RMPVIO(VAOA(4)_", "_$P(VAOA(5),U,2)_" "_VAOA(6)) D:VAOA(10)'="" WRITECTL^RMPVIO("!"),WRITECTL^RMPVIO("?40"),WRITE^RMPVIO("Relationship: "),WRITE^RMPVIO(VAOA(10)) G END
 I VAPA(2)'=""&(VAPA(3)="") D WRITECTL^RMPVIO("!"),WRITE^RMPVIO(VAPA(2)) D:VAOA(4)'="" WRITECTL^RMPVIO("?40"),WRITE^RMPVIO(VAOA(4)_", "_$P(VAOA(5),U,2)_" "_VAOA(6)) D
 . D:VAPA(4)'="" WRITECTL^RMPVIO("!"),WRITE^RMPVIO(VAPA(4)_", "_$P(VAPA(5),U,2)_" "_VAPA(6)) D:VAOA(10)'="" WRITECTL^RMPVIO("?40"),WRITE^RMPVIO("Relationship: "),WRITE^RMPVIO(VAOA(10)) G END
 I VAPA(2)'=""&(VAPA(3))'="" D WRITECTL^RMPVIO("!"),WRITE^RMPVIO(VAPA(2)) D:VAOA(4)'="" WRITECTL^RMPVIO("?40"),WRITE^RMPVIO(VAOA(4)_", "),WRITE^RMPVIO($P(VAOA(5),U,2)_" "_VAOA(6)),WRITECTL^RMPVIO("!"),WRITE^RMPVIO(VAPA(3)) D
 . D:VAOA(10)'="" WRITECTL^RMPVIO("?40"),WRITE^RMPVIO("Relationship: "),WRITE^RMPVIO(VAOA(10))
 ; end truncation
 I  D:VAPA(4)'="" WRITECTL^RMPVIO("!"),WRITE^RMPVIO(VAPA(4)_", "_$P(VAPA(5),U,2)_" "_VAPA(6))
END D ELIG^VADPT
 D WRITECTL^RMPVIO("!!"),WRITE^RMPVIO("Patient Type: "),WRITE^RMPVIO($P(VAEL(6),U,2)),WRITECTL^RMPVIO("?40")
 D WRITE^RMPVIO("Period of Service: "),WRITE^RMPVIO($P(VAEL(2),U,2))
 D WRITECTL^RMPVIO("!"),WRITE^RMPVIO("Primary Eligibility Code:"),WRITECTL^RMPVIO("?40")
 D WRITE^RMPVIO("Status: "),WRITE^RMPVIO($P(VAEL(9),U,2)),WRITECTL^RMPVIO("!"),WRITE^RMPVIO($P(VAEL(1),U,2))
 D WRITECTL^RMPVIO("?40"),WRITE^RMPVIO("Eligibility Status: "),WRITE^RMPVIO($E($P(VAEL(8),U,2),1,19))
 D MB^VADPT
 D WRITECTL^RMPVIO("!!"),WRITE^RMPVIO("Receiving A&A Benefits? ")
 D:VAMB(1)=0 WRITE^RMPVIO("NO") D:$P(VAMB(1),U,1)=1 WRITE^RMPVIO($P(VAMB(1),U,2))
 D WRITECTL^RMPVIO("?40"),WRITE^RMPVIO("Receiving Housebound Benefits? ")
 D:VAMB(2)=0 WRITE^RMPVIO("NO") D:$P(VAMB(2),U,1)=1 WRITE^RMPVIO($P(VAMB(2),U,2))
 D WRITECTL^RMPVIO("!"),WRITE^RMPVIO("Receiving Social Security? ")
 D:VAMB(3)=0 WRITE^RMPVIO("NO") D:$P(VAMB(3),U,1)=1 WRITE^RMPVIO($P(VAMB(3),U,2))
 D WRITECTL^RMPVIO("?40"),WRITE^RMPVIO("Receiving VA Pension? ") D:VAMB(4)=0 WRITE^RMPVIO("NO")
 D:$P(VAMB(4),U,1)=1 WRITE^RMPVIO($P(VAMB(4),U,2))
 D WRITECTL^RMPVIO("!"),WRITE^RMPVIO("Receiving Military Retirement? ")
 D:VAMB(5)=0 WRITE^RMPVIO("NO") D:$P(VAMB(5),U,1)=1 WRITE^RMPVIO($P(VAMB(5),U,2))
 D WRITECTL^RMPVIO("?40"),WRITE^RMPVIO("Receiving VA Disability? ") D:VAMB(7)=0 WRITE^RMPVIO("NO")
 D:$P(VAMB(7),U,1)=1 WRITE^RMPVIO($P(VAMB(7),U,2))
 S (RO,FG)=0 I '$D(^RMPR(665,RMPRDFN,1)) D WRITECTL^RMPVIO("!"),WRITE^RMPVIO("No Prosthetic Disability Codes entered for this Patient.") S RO=1
 ; line truncated
 I RO=0 F  D:'FG WRITECTL^RMPVIO("!"),WRITE^RMPVIO("Prosthetic Disability Code(s):") S RO=$O(^RMPR(665,RMPRDFN,1,RO)) Q:RO'>0  S RR=^(RO,0) S:$P(RR,U,10) FG=1 D
 . I '$P(RR,U,10) D WRITE^RMPVIO(" "),WRITE^RMPVIO($P(^RMPR(662,+RR,0),U,1)),WRITE^RMPVIO("-"),WRITE^RMPVIO($S($P(RR,U,3)=1:"SC",$P(RR,U,3)=2:"NSC",1:"")) S FG=1
 ; end truncation
 I $P($G(^DPT(DFN,.372,0)),U,4)>IOSL-2-$Y D QUEST2 G:$G(RMNOQUIT)=0 ASK1
 ; line truncated
 S RO=0 F I=0:0 S RO=$O(^DPT(DFN,.372,RO)) Q:RO'>0!$D(RMPREND1)  I +$P(^(RO,0),U,1),$D(^DIC(31,+$P(^(0),U,1))) D
 . D:'$D(RMPRL) WRITECTL^RMPVIO("!"),WRITE^RMPVIO("Patient Name: "),WRITE^RMPVIO(VADM(1)),WRITECTL^RMPVIO("?40"),WRITE^RMPVIO("SSN: "),WRITE^RMPVIO($P(VADM(2),U,2)),WRITECTL^RMPVIO("!!"),WRITE^RMPVIO("MAS Disability Code(s):") D WRI
 ; end truncation
 K RMNOQUIT G:$D(RMPREND1) ASK1
 D SVC^VADPT D WRITECTL^RMPVIO("!!"),WRITE^RMPVIO("*POW? "),WRITE^RMPVIO($S(VASV(4)=1:"YES",1:"NO"))
 G:$D(RMPRBACK) QUES
 D WRITEIND^RMPVIO("@IOF") G ASK1
WRI I $Y>(IOSL-6),'$D(RMPRQUES) D QUEST1 Q:$D(RMPREND1)  ;patch *162, replace GOTO with Quit when within FOR loop
 ; line truncated
 D WRITECTL^RMPVIO("!"),WRITE^RMPVIO($E($P(^DIC(31,$P(^DPT(DFN,.372,RO,0),U,1),0),U,1),1,30)),WRITECTL^RMPVIO("?40")
 D WRITE^RMPVIO("Disability% "),WRITE^RMPVIO($P(^DPT(DFN,.372,RO,0),U,2)),WRITECTL^RMPVIO("?56"),WRITE^RMPVIO(" Service Connected? ")
 D:$P(^DPT(DFN,.372,RO,0),U,3)=1 WRITE^RMPVIO("YES") D:$P(^DPT(DFN,.372,RO,0),U,3)=0 WRITE^RMPVIO("NO") S RMPRL=1 Q 
 ; end truncation
QUES ;ASK WHAT PAGE OF A PATIENT'S 10-2319
 K RMPRFLG,RMPRL F I=0:0 Q:$Y>21  D WRITECTL^RMPVIO("!")
QUES1 D READCTL^RMPVIO("!"),READPMT^RMPVIO("Enter return to continue or `^` to exit: "),READ^RMPVIO(.ANS)
 G:'$T EXIT
 I ANS="" G ASK1
 I $G(ANS)="" G EXIT
 I "^"[ANS G ASK1
 E  D WRITE^RMPVIO($C(7)),WRITECTL^RMPVIO("!"),WRITE^RMPVIO("You must enter an `^` to exit!") G QUES1
QUE D:ANS=5 WRITEIND^RMPVIO("@IOF")
 G EXIT:"^"[ANS,STAR^RMPRPAT:ANS=1,^RMPRPAT0:ANS=2,^RMPRPAT1:ANS=3
 I ANS=4 G ^RMPRPAT2
 I ANS=8 G 2319^RMPOBIL2
 G DU^RMPRAINQ:ANS=5
 G ^RMPRPAT5:ANS=6
 I ANS=7 S RMPRDIR7=1 G EN^RMPV0RMPRDIS
 D WRITECTL^RMPVIO("!!"),WRITE^RMPVIO($C(7)) G QUES
 Q 
EXIT ;EXIT FOR DISPLAY OF A PATIENT'S 10-2319
 ;must always exit through this point
 I '$D(^RMPR(665,RMPRDFN,1,0)) D DIS^RMPV0RMPRPAT5
 I $D(^RMPR(665,RMPRDFN,1,0)),'$O(^(0)) D DIS^RMPV0RMPRPAT5
 I $D(^RMPR(665,RMPRDFN,1,0)),$O(^(0)) K RMPRKILL
 D NPC^RMPRPAT5
 K RMPRCOMB,Y,DIE,DIC,RMPRCCO,DIR,VASV,VAMB,VAEL,VADM,VAPA,FG,VAOA,TYPE,RMPROBL,RC,AMIS,CST,DATE,DEL,RFLG,QTY,REM,SN,STA,RR,RO,I,J,RMPRCNUM,RMPRFG,TRANS,TRANS1,RK,FLG,RA,RI,RT,RTCH,LC,MC,RMPRDT,RMPRJOB,RMPRWO
 K RMPR2APN,RMPRQ,RR5,R5,DFN,FL,PAGE,AN,FRM,VEN,RZ,%X,%Y,VA,VAERR,TLC,TMC,R660,RCK,RJ,RDA,RL,RTC,RTCD,RTHD,RTR,RW,RWP,RMPRQUES,RMPREND1 D KVAR^VADPT
 K:'$D(RMPRF)!($G(RMPRBACK)<1) RMPRDOB,RMPRDFN,RMPRNAM,RMPRSSN,RMPRBACK
 Q 
QUEST1 S RMPRQUES=1
 N DIR S DIR(0)="E" D WRITECTL^RMPVIO("!!") D %DIR^RMPVFM D WRITEIND^RMPVIO("@IOF")
 I $D(DTOUT)!($D(DUOUT)) S RMPREND1=1 Q  ;patch *162, set quit flag if user chooses to exit option
 D WRITECTL^RMPVIO("!") Q 
QUEST2 ;PUT MAS DISABILITY CODES ON NEXT PAGE IF THEY WILL NOT ALL FIT ON THIS
 ;PAGE
 N DIR S DIR(0)="E" D WRITECTL^RMPVIO("!!") D %DIR^RMPVFM D WRITEIND^RMPVIO("@IOF") S RMNOQUIT=1
 I $D(DTOUT)!($D(DUOUT)) S RMNOQUIT=0
 D WRITEIND^RMPVIO("@IOF")
 Q