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

MBAARPC2.m

Go to the documentation of this file.
  1. MBAARPC2 ;OIT-PD/PB - Scheduling RPCs ;FEB 23, 2017
  1. ;;1.0;Scheduling Calendar View;**1,4,5,7**;Feb 13, 2015;Build 16
  1. ;
  1. ;This routine has multiple RPCs created to support the mobile Scheduling apps
  1. ;
  1. ;Associated ICRs:
  1. ; ICR#
  1. ; 10103 XLFDT
  1. ; 5838 SDAMEVT
  1. ; 6048 SDAMEVT
  1. ; 6053 DPT
  1. ; 4433 SDAMA301
  1. ;
  1. ;Cancel an Appointment
  1. CANCEL(RV,DFN,SC,SD,TYPE,RSN,RMK) ; SD APPOINTMENT CANCEL
  1. ; MBAA RPC: MBAA CANCEL APPOINTMENT
  1. N STATUS,RESULT
  1. S STATUS=$$CANCEL1(.RESULT,DFN,SC,SD,TYPE,RSN,RMK)
  1. ;D MERGE^MBAAMRPC(.RV,.RESULT)
  1. S RV=$G(RESULT(0)) ; MBAA*1*5 - Return error text with error code
  1. Q
  1. CANCEL1(RETURN,DFN,SC,SD,TYP,RSN,RMK) ; Cancel appointment MBAA RPC: MBAA CANCEL APPOINTMENT
  1. N CDATE,CDT,ERR,ODT,OIFN,OUSR,%
  1. N CAPT,CIFN ;alb/sat 4 - existing variables need to be Newed
  1. S RETURN=0
  1. S %=$$CHKCAN(.RETURN,DFN,SC,SD) I $E(%,1,3)="APT" Q RETURN
  1. S CDATE=$$NOW^XLFDT ;ICR#: 10103 XLFDT
  1. S %=$$GETSCAP^MBAAMAP1(.CAPT,SC,DFN,SD)
  1. S CIFN=CAPT("IFN")
  1. S OUSR=CAPT("USER"),ODT=CAPT("DATE")
  1. N SDATA,SDCPHDL
  1. S SDCPHDL=$$HANDLE^SDAMEVT(1) ;ICR#: 5838 SDAMEVT
  1. D BEFORE^SDAMEVT(.SDATA,DFN,SD,SC,CIFN,SDCPHDL)
  1. S CDT=$$NOW^XLFDT() ;ICR#: 10103 XLFDT
  1. D CANCEL^MBAAMDA3(.ERR,DFN,SD,TYP,RSN,RMK,$E(CDT,1,12),DUZ,OUSR,ODT)
  1. S OIFN=$$COVERB^MBAAMDA1(SC,SD,CIFN)
  1. S %=$$CANCEL^MBAAAPI1(RETURN,CAPT("CONSULT"),SC,SD,CIFN,RMK,TYP)
  1. D CANCEL^MBAAMDA1(SC,SD,DFN,CIFN)
  1. ;alb/sat 4 - begin mod to update SDEC
  1. N SDECAPPT
  1. S SDECAPPT=$$APPTGET^SDECUTL(DFN,SD,SC)
  1. D:+SDECAPPT SDECCAN^SDEC08(SDECAPPT,"PC",RSN,RMK,"",DUZ,"01")
  1. ;alb/sat 4 - end mod
  1. D CANCEL^SDAMEVT(.SDATA,DFN,SD,SC,CIFN,0,SDCPHDL) ;ICR#: 6048 MBAA SDAMEVT API CALLS
  1. S RETURN=1
  1. Q RETURN
  1. ;
  1. CHKCAN(RETURN,DFN,SC,SD) ; Verify cancel MBAA RPC: MBAA CANCEL APPOINTMENT
  1. ;N APT,RET,%
  1. K APT N RET,TXT,% ;alb/sat 4 - existing TXT needs to be Newed
  1. S RETURN=0
  1. I '$D(^DPT(DFN,"S",SD)) S RETURN="APTNTSCH" Q RETURN ; patient doesn't have an appointment at the requested time ;ICR#: 6053 DPT
  1. ;
  1. D GETAPTS^MBAAMDA2(.APT,DFN,.SD)
  1. ;
  1. I APT("APT",SD,"STATUS")["C" D S RETURN="APTCAND" Q RETURN ; Appointment already canceled.
  1. . D ERRX^MBAAAPIE(.RETURN,"APTCAND")
  1. ;
  1. I $$ISAPTCO^MBAAMAP4(,DFN,SD) D S RETURN="APTCCHO" Q RETURN ; Appointment has a check out date and can't be canceled - MBAA*1*5
  1. . D ERRX^MBAAAPIE(.RETURN,"APTCCHO")
  1. ;
  1. S %=$$CLNRGHT^MBAAMAP1(.RET,+SC)
  1. I RET=0 D S RETURN="APTCRGT" Q RETURN ; Appointment not cancelled. Access to this clinic to this clinic is restricted to only priv. users - MBAA*1*5
  1. . S TXT(1)=RET("CLN"),TXT(2)=$C(10)
  1. . D ERRX^MBAAAPIE(.RETURN,"APTCRGT",.TXT)
  1. ;
  1. I '$$CHKSPC(.STAT,DFN,SD) D S RETURN="APTCNPE" Q RETURN ; This appointment can't be canceled - MBAA*1*5
  1. . D ERRX^MBAAAPIE(.RETURN,"APTCNPE",.TXT)
  1. ;
  1. ; OK if you made it this far
  1. S RETURN=1
  1. ;
  1. Q RETURN
  1. ;
  1. CHKSPC(RETURN,DFN,SD) ; Check if status permit cancelation, MBAA RPC: MBAA CANCEL APPOINTMENT
  1. ;INPUT: RETURN -Looks like flag of 1 or 0 is RETURNed here and by the function
  1. ; DFN - Patient IEN
  1. ; SD - Date/Time of appointment
  1. N APT0,STATUS,IND,STAT,STATS
  1. S RETURN=0
  1. ;
  1. ; get appointment 0 node
  1. S APT0=$$GETAPT0^MBAAMDA2(DFN,SD)
  1. ;
  1. ;T13 Change to use SDAMA301 API
  1. K R1 D STATUS^MBAARPC1(.R1,DFN,SD,+$G(APT0)) S STATUS=+R1 K R1 ;ICR 4433
  1. ;S STATUS=+$$STATUS^SDAM1(DFN,SD,+$G(APT0),$G(APT0)) ;ICR#: 2851 MBAA ACCESS TO SDAM1 API get appointment status
  1. D LSTCSTA1^MBAAMDA2(.STAT)
  1. D BLDLST^MBAAMAPI(.STATS,.STAT)
  1. S IND=0
  1. F S IND=$O(STATS(IND)) Q:IND=""!(RETURN=1) D
  1. . I STATS(IND,"ID")=STATUS S RETURN=1 Q
  1. ;
  1. S RETURN=$G(RETURN)
  1. Q RETURN
  1. ;
  1. ;Line Tags CLNDATA, RECALL, DELETE, CHK, NEWEWL, WFCK, ENRCHK, REQBY is commented out due to the functionality being descoped from the first release
  1. ;CLNDATA(RETURN,CLINICID) ; returns additional clinic data MBAA ADDITIONAL CLINIC DETAILS
  1. ; Input: CLINICID - IEN for the Clinic in the Hospital Location file (#44)
  1. ; Returns:
  1. ; If Successful:
  1. ; RETURN(0)="TREATING SPECIALTY^STOP CODE^CREDIT STOP CODE^SPECIALTY"
  1. ; If Failure:
  1. ; RETURN(0)="0^Missing CLINICID"
  1. ; RETURN(0)="0^Clinic doesn't exist."
  1. ;
  1. ;I $G(CLINICID)="" S RETURN(0)="0^Missing CLINICID" Q
  1. ;I '$D(^SC(CLINICID,0)) S RETURN(0)="0^Clinic doesn't exist." Q ;ICR#: 6044
  1. ;I $P(^SC(CLINICID,0),"^",3)'="C" S RETURN(0)="0^Clinic doesn't exist." Q ;ICR#: 6044
  1. ;N NODE,STOPPTR,SPECPTR,CREDITPRT,SPECLTY,SPECL,SPEC,SPEC2,STOPCODE,CREDIT,CREDITPTR,CLINIC1,SPEC1 ;IRC#: 6044
  1. ;S NODE=$G(^SC(CLINICID,0)),STOPPTR=$P(NODE,"^",7),SPECPTR=$P(NODE,"^",20),CREDITPTR=$P(NODE,"^",18)
  1. ;S STOPCODE=$P(^DIC(40.7,STOPPTR,0),"^"),CREDIT=$P(^DIC(40.7,CREDITPTR,0),"^"),SPEC=$P(^DIC(45.7,SPECPTR,0),"^") ;ICR#: 1024, 362
  1. ;S SPECLTY=$P(^DIC(45.7,SPECPTR,0),"^",2),SPECL=$P(^DIC(42.4,SPECLTY,0),"^",1) ;ICR#: 430, 362
  1. ;D GETS^DIQ(44,CLINICID,"8;9.5;2503","IE","CLINIC1")
  1. ;S SPEC=$G(CLINIC1(44,CLINICID_",",9.5,"I")),STOPCODE=$G(CLINIC1(44,CLINICID_",",8,"E")),CREDIT=$G(CLINIC1(44,CLINICID_",",2503,"E")),SPEC2=$G(CLINIC1(44,CLINICID_",",9.5,"E"))
  1. ;D GETS^DIQ(45.7,SPEC,".01;1","IE","SPEC1")
  1. ;S SPECL=$G(SPEC1(45.7,SPEC_",",1,"E"))
  1. ;S RETURN(0)=$G(SPEC2)_"^"_$G(STOPCODE)_"^"_$G(CREDIT)_"^"_$G(SPECL)
  1. ;K NODE,STOPPTR,SPECPTR,CREDITPRT,SPECLTY,SPECL,SPEC,STOPCODE,CREDIT,CREDITPTR,CLINIC1,SPEC1
  1. ;Q
  1. ;RECALL(RESULTS,DFN,CLINIC,RECALLDT,PTRECDT,PROVIDER,LEN,FAST,TEST,USER,COMMENT) ; adds new patients to the Recall List MBAA RPC: MBAA ADD TO RECALL LIST
  1. ; Input parameter is the Patient DFN
  1. ;S RESULTS(0)=1
  1. ;I $G(DFN)="" S RESULTS(0)="0^DFN is not defined" Q
  1. ;T13 Change to FM read
  1. ;N JX S JX=$$GET1^DIQ(2,$G(DFN),.01) I $G(JX)="" S RESULTS(0)="0^Not a patient in this system." Q ;ICR#: 6053 DPT
  1. ;I '$D(^DPT(DFN,0)) S RESULTS(0)="0^Not a patient in this system." Q ;ICR#: 6053 DPT
  1. ;I $G(CLINIC)="" S RESULTS(0)="0^Clinic not provided." Q
  1. ;T13 Change to FM read
  1. ;I '$D(^SC(CLINIC,0)) S RESULTS(0)="0^Clinic not in the Hospital Location File." Q ;ICR#: 6044
  1. ;N JX S JX=$$GET1^DIQ(44,$G(CLINIC),.01) I $G(JX)="" S RESULTS(0)="0^Clinic not in the Hospital Location File." Q ;ICR#: 6044
  1. ;I ($G(RECALLDT)=""!($G(RECALLDT)'>DT)) S RESULTS(0)="0^Provider Recall date not provided or not a valid date. Date must be in the future." Q
  1. ;I ($G(PTRECDT)=""!($G(PTRECDT)'>DT)) S RESULTS(0)="0^Patient recall date not provided or not a valid date. Date must be in the future" Q
  1. ;I $G(PROVIDER)="" S RESULTS(0)="0^Provider IEN not provided." Q
  1. ;I '$D(^VA(200,$G(PROVIDER),0)) S RESULTS(0)="0^Provider not provided." Q
  1. ;N JX S JX=$$GET1^DIQ(200,$G(PROVIDER),.01) I $G(JX)="" S RESULTS(0)="0^Provider not in the New Person file." Q ;ICR#: 713 VA(200
  1. ;I $G(LEN)'>0 S RESULTS(0)="0^Appointment length not provided." Q
  1. ;I $G(FAST)="" S RESULTS(0)="0^FAST code not provided." Q
  1. ;S FAST=$$LOW^XLFSTR($G(FAST))
  1. ;I "nf"'[FAST S RESULTS(0)="0^FAST code not provided." Q
  1. ;I $G(TEST)'>0 S RESULTS(0)="0^Appointment Type code not provided. Appointment Type is a numeric value." Q
  1. ;I $G(USER)'>0 S RESULTS(0)="0^User IEN not provided." Q
  1. ;I '$D(^VA(200,$G(USER),0)) S RESULTS(0)="0^User IEN not provided." Q
  1. ;N JX S JX=$$GET1^DIQ(200,$G(USER),.01) I $G(JX)="" S RESULTS(0)="0^User not in the New Person File." Q ;ICR#: 713 VA(200
  1. ;S ERR=0 D CHK I ERR=1 S RESULTS(0)="0^Duplicate Recall List Entry" Q
  1. ;K DO S (DIC,DIE)="^SD(403.5,",DIC(0)="Z",X=DFN,DLAYGO=403.5 D FILE^DICN K DO S NUM=+Y ;ICR#: 6045 SD(403.5
  1. ;S DA=NUM,DR="4.5///"_$G(CLINIC)_";4///"_$G(PROVIDER)_";2.6///"_$G(FAST)_";4.7///"_$G(LEN)_";5///"_$G(RECALLDT)_";5.5///"_$G(PTRECDT)_";2.5///"_$G(COMMENT)_";3///"_$G(TEST)_";7///"_$G(USER)
  1. ;D ^DIE
  1. ;S DA=NUM,DR="[SDRR RECALL CARD ADD]",DIE("NO^")="Not Allowed" D ^DIE
  1. ;I $D(DTOUT) D DELETE
  1. ;K DIC,DIE,DR,D0,DA,DLAYGO,NUM,PROV,X,Y,Z,OK,RDT,DIR,DTOUT
  1. ;Q
  1. ;DELETE ;delete new incomplete record and display message MBAA RPC: MBAA ADD TO RECALL LIST
  1. ;S DIK=DIE
  1. ;D ^DIK K DIK
  1. ;S RESULTS(0)="0^All required data was not provided. Recall was not created!"
  1. ;Q
  1. ;CHK ; checks to see if the patient is on the recall list for the clinic and provider date MBAA RPC: MBAA ADD TO RECALL LIST
  1. ;S XX=0 F S XX=$O(^SD(403.5,"B",DFN,XX)) Q:XX'>0 D ;ICR#: 6045 SD(403.5
  1. ;.;T13 Change to use FM
  1. ;.N ARRAY,ERR,C1,RD1,P1 D GETS^DIQ(403.5,XX_",","2;4,5","I","ARRAY","ERR") ;ICR#: 6045 SD(403.5
  1. ;.S C1=$G(ARRAY(403.5,XX_",",2,"I")),RD1=$G(ARRAY(403.5,XX_",",5,"I")),P1=$G(ARRAY(403.5,XX_",",4,"I"))
  1. ;.I $G(C1)=CLINIC&($G(RD1)=RECALLDT)&($G(P1)=PROVIDER) S ERR=1
  1. ;.;S NODE=$G(^SD(403.5,XX,0)) ;ICR#: 6045 SD(403.5
  1. ;.;I ($P(NODE,"^",2)=CLINIC&($P(NODE,"^",6)=RECALLDT)&($P(NODE,"^",5)=PROVIDER)) S ERR=1
  1. ;I $G(ERR)>0 S ERR=1
  1. ;Q
  1. ;code below is not being used in the initial release of MBAA. It will be released at a later date in a future release of MBAA
  1. ;CLNRGHT(RV,CLN) ;
  1. ; N STATUS,RESULT S STATUS=$$CLNRGHT^MBAAMAP1(.RESULT,CLN)
  1. ; ;D MERGE^MBAAMRPC(.RV,.RESULT)
  1. ; S RV(0)=$G(RESULT)
  1. ; Q
  1. NEWEWL(RV,SDWLD) ; ZLV EWL NEW
  1. N Y ;alb/sat 4 - existing Y needs to be Newed
  1. I $G(SDWLD)="" S RV(0)="0^SDWLD List missing." Q
  1. S SDWLD("WLTYPE")=$P($G(SDWLD),"^",1)
  1. I SDWLD("WLTYPE")="" S RV(0)="0^INVPARAM WLTYPE IS NULL" Q
  1. I $G(SDWLD("WLTYPE"))'>0!($G(SDWLD("WLTYPE"))'<5) S RV(0)="0^INVPARAM WLTYPE" Q
  1. S SDWLD("PATIENT")=$P($G(SDWLD),"^",2)
  1. I SDWLD("PATIENT")="" S RV(0)="0^INVPARAM PATIENT IS NULL" Q
  1. S DFN=$G(SDWLD("PATIENT")) I '$D(^DPT(DFN,0)) S RV(0)="0^INVPARAM PATIENT DOESN'T EXIST." K DFN Q ;ICR#: 6053 DPT
  1. S SDWLD("INSTITUTION")=$P($G(SDWLD),"^",3)
  1. I SDWLD("INSTITUTION")="" S RV(0)="0^INVPARAM INSTITUTION IS NULL" Q
  1. N SITE S X=$G(SDWLD("INSTITUTION")) S SITE=$$IEN^XUMF(4,,X) I +$G(SITE)'>0 S RV(0)="0^INVPARAM INVALID INSTITUTION NUMBER." Q ;ICR#:3795 XUMF
  1. S SDWLD("WAITFOR")=$P($G(SDWLD),"^",4)
  1. I SDWLD("WAITFOR")="" S RV(0)="0^INVPARAM WAITFOR IS NULL" Q
  1. ;S ERR=0 D WFCK Q:$G(ERR)>0
  1. S SDWLD("PRIORITY")=$P($G(SDWLD),"^",5)
  1. I SDWLD("PRIORITY")="" S RV(0)="0^INVPARAM PRIORITY IS NULL" Q
  1. I SDWLD("PRIORITY")'="A",(SDWLD("PRIORITY")'="F") S RV(0)="0^INVPARAM INVALID PRIORITY" Q
  1. S SDWLD("REQBY")=$P($G(SDWLD),"^",6)
  1. D REQBY
  1. Q:$G(ERR)=1
  1. S SDWLD("PROVIDER")=$P($G(SDWLD),"^",7)
  1. I SDWLD("PROVIDER")'="" D
  1. .N IEN S ERR=0,IEN=$G(SDWLD("PROVIDER"))
  1. .N JX S JX=$$GET1^DIQ(200,$G(IEN),.01) I $G(JX)="" S ERR=1,RV(0)="0^INVPARAM PROVIDER IS NOT IN THE NEW PERSON FILE" Q ;ICR#: 713 VA(200
  1. .;I '$D(^VA(200,IEN,0)) S ERR=1,RV(0)="0^INVPARAM PROVIDER IS NOT IN THE NEW PERSON FILE" Q ;ICR#: 713 VA(200
  1. .I '$D(^XUSEC("PROVIDER",IEN)) S ERR=1,RV(0)="0^INVPARAM NOT A PROVIDER" Q ;ICR#: 10076 XUSEC
  1. Q:$G(ERR)=1
  1. S SDWLD("SCPRCNT")=$P($G(SDWLD),"^",8)
  1. I SDWLD("SCPRCNT")'="" D
  1. .S ERR=0 I SDWLD("SCPRCNT")'>0!(SDWLD("SCPRCNT")'<101) S ERR=1,RV(0)="0^INVPARAM SERVICE CONNECTED PERCENTAGE" Q
  1. Q:$G(ERR)=1
  1. S SDWLD("SCPRIORITY")=$P($G(SDWLD),"^",9)
  1. I SDWLD("SCPRIORITY")'="" D
  1. .S ERR=0 I $G(SDWLD("SCPRIORITY"))'=0,($G(SDWLD("SCPRIORITY"))'=1) S ERR=1,RV(0)="0^INVPARAM INVALID PRIORITY" Q
  1. Q:$G(ERR)=1
  1. S SDWLD("DSRDDT")=$P($G(SDWLD),"^",10)
  1. I SDWLD("DSRDDT")="" S RV(0)="0^INVPARAM DESIRED DATE OF APPOINTMENT IS NULL" Q
  1. S ERR=0,X=$G(SDWLD("DSRDDT")) D ^%DT I Y=-1 S ERR=0,RV(0)="0^INVPARAM NOT A VALID DATE" Q
  1. Q:$G(ERR)=1
  1. S SDWLD("CMNTS")=$P($G(SDWLD),"^",11)
  1. I SDWLD("CMNTS")'="" D
  1. .I $L($G(SDWLD("CMNTS")))'>0!($L($G(SDWLD("CMNTS")))'<61) S ERR=1,RV(0)="0^INVPARAM COMMENTS ARE TOO LONG" Q
  1. Q:$G(ERR)=1
  1. S SDWLD("ENRSTAT")=$P($G(SDWLD),"^",12)
  1. I SDWLD("ENRSTAT")="" S RV(0)="0^INVPARAM ENROLLEE STATUS IS NULL" Q
  1. S ERR=0 D ENRCHK Q:$G(ERR)=1
  1. S SDWLD("ENRDU")=$P($G(SDWLD),"^",13)
  1. I SDWLD("ENRDU")'="" D
  1. .S ERR=0 S X=$G(SDWLD("ENRDU")) D ^%DT I $G(Y)=-1 S ERR=1,RV(0)="0^INVPARAM ENROLLEE DATE INVALID DATE" Q
  1. Q:$G(ERR)=1
  1. S SDWLD("ENRDF")=$P($G(SDWLD),"^",14)
  1. I SDWLD("ENRDF")'="" D
  1. .S ERR=0 I $G(SDWLD("ENRDF"))'=0,($G(SDWLD("ENRDF"))'<5) S ERR=1,RV(0)="0^INVPARAM ENROLLEE DATABASE FILE" Q
  1. Q:ERR=1
  1. S SDWLD("TICKLER")=$P($G(SDWLD),"^",15)
  1. I SDWLD("TICKLER")'="" D
  1. .S SDWLD("TICKLER")=$$UP^XLFSTR($G(SDWLD("TICKLER")))
  1. .S ERR=0 I $G(SDWLD("TICKLER"))'="Y" S ERR=1,RV(0)="0^INVPARAM TICKLER" Q
  1. Q:ERR=1
  1. S SDWLD("CHDCLINP")=$P($G(SDWLD),"^",16)
  1. I SDWLD("CHDCLINP")'="" D
  1. .N APTR
  1. .S ERR=0,PTR=$G(SDWLD("CHDCLINP")) I '$D(^SDWL(409.3,PTR,0)) S ERR=1,RV(0)="0^INVPARAM CHANGED CLINIC PARENT POINTER IS NOT VALID" Q ;ICR#: 6046 SDWL(409.3
  1. .;T13 Change to use FM
  1. .I $D(^SDWL(409.3,PTR,0)) S APTR=$$GET1^DIQ(409.3,PTR_",",".01","I") I APTR'=SDWLD("PATIENT") S ERR=1,RV(0)="0^INVPARAM CHANGED CLINIC PARENT POINTER IS FOR A DIFFERENT PATIENT" Q ;ICR#: 6046 SDWL(409.3
  1. .;I $D(^SDWL(409.3,PTR,0)) S APTR=$P(^SDWL(409.3,PTR,0),"^",1) I APTR'=SDWLD("PATIENT") S ERR=1,RV(0)="0^INVPARAM CHANGED CLINIC PARENT POINTER IS FOR A DIFFERENT PATIENT" Q ;ICR#: 6046 SDWL(409.3
  1. .K APTR
  1. Q:ERR=1
  1. I SDWLD("WLTYPE")=3!(SDWLD("WLTYPE")=4) D
  1. .K ERR S ERR=0
  1. .I SDWLD("REQBY")'=1,$G(SDWLD("REQBY"))'=2 S ERR=1
  1. I ERR=1 K ERR S RV(0)="0^INVPARAM REQBY" Q
  1. N STATUS,RESULT S STATUS=$$NEW^MBAAWLAP(.RESULT,.SDWLD)
  1. I 'STATUS S RV=-1
  1. I $G(STATUS) S RV(0)=1
  1. K ERR,X,IEN,DFN,PTR,CHK,TYPE,REQBY
  1. Q
  1. ;WFCK ; Check to make sure the pointer is valid for the Waitfor parameter
  1. ;N PTR S PTR=$G(SDWLD("WAITFOR")),ERR=0
  1. ;I SDWLD("WLTYPE")=1 D
  1. ;.;I '$D(^SCTM(404.51,PTR,0)) S ERR=1,RV(0)="0^INVPARAM INVALID TEAM" Q ;ICR#: 1945 DBIA 1945
  1. ;.N JX S JX=$$GET1^DIQ(404.51,$G(PTR),.01) I $G(JX)="" S ERR=1,RV(0)="0^INVPARAM INVALID TEAM" Q ;ICR#: 1945 DBIA 1945
  1. ;Q:$G(ERR)>0
  1. ;I SDWLD("WLTYPE")=2 D
  1. ;.;I '$D(^SCTM(404.57,PTR,0)) S ERR=1,RV(0)="0^INVPARAM INVALID POSITION" Q ;ICR#: 6064 MBAA ACCESS TO SCTM(404.57
  1. ;.N JX S JX=$$GET1^DIQ(404.57,$G(PTR),.01) I $G(JX)="" S ERR=1,RV(0)="0^INVPARAM INVALID POSITION" Q ;ICR#: 6064 MBAA ACCESS TO SCTM(404.57
  1. ;Q:$G(ERR)>0
  1. ;I SDWLD("WLTYPE")=3 D
  1. ;.;I '$D(^SDWL(409.31,PTR,0)) S ERR=1,RV(0)="0^INVPARAM INVALID SPECIALTY" Q ;ICR#: 6046 SDWL(409.3
  1. ;.N JX S JX=$$GET1^DIQ(409.31,$G(PTR),.01) I $G(JX)="" S ERR=1,RV(0)="0^INVPARAM INVALID SPECIALTY" Q ;ICR#: 6046 SDWL(409.3
  1. ;Q:$G(ERR)>0
  1. ;I SDWLD("WLTYPE")=4 D
  1. ;.;I '$D(^SDWL(409.32,PTR,0)) S ERR=1,RV(0)="0^INVPARAM INVALID WAIT LIST CLINIC" Q ;ICR#: 6046 SDWL(409.3
  1. ;.N JX S JX=$$GET1^DIQ(409.32,$G(PTR),.01) I $G(JX)="" S ERR=1,RV(0)="0^INVPARAM INVALID WAIT LIST CLINIC" Q ;ICR#: 6046 SDWL(409.3
  1. ;Q:$G(ERR)>0
  1. ;I SDWLD("WLTYPE")>5 S RV(0)="0^INVPARAM WAIT LIST TYPE" Q
  1. ;Q
  1. ENRCHK ; Check enrollee status codes - must be either N, E, P or U
  1. S CHK=$G(SDWLD("ENRSTAT"))
  1. I CHK'="N",(CHK'="E"),(CHK'="P"),(CHK'="U") S ERR=1,RV(0)="0^INVPARAM INVALID ENROLLEE STATUS" Q
  1. Q
  1. REQBY ; Checksto be sure a correct value for the REQBY parameter is correct based on the Wait List Type
  1. S ERR=0,TYPE=$G(SDWLD("WLTYPE")),REQBY=$G(SDWLD("REQBY"))
  1. I $G(REQBY)'=1,($G(REQBY)'=2),($G(REQBY)'="") S ERR=1,RV(0)="0^INVPARAM INVALID REQBY" Q
  1. I $G(REQBY)'="" D
  1. .I TYPE=3,(TYPE=4) D
  1. ..I REQBY'=1,(REQBY'=2) S ERR=1,RV(0)="0^INVPARAM INVALID REQBY" Q
  1. .I TYPE=1,(TYPE=2) D
  1. ..I REQBY=1,(REQBY'=2) S ERR=1,RV(0)="0^INVPARAM INVALID REQBY" Q
  1. I $G(REQBY)="" D
  1. .I TYPE'=1,(TYPE'=2) S ERR=1,RV(0)="0^INVPARAM INVALID REQBY" Q
  1. Q