SDESGETAPPTREQ ;ALB/BLB,RRM,MGD,DJS,BLB,BWF,BLB,CGP - GET APPT REQ RPCS ;Oct 31, 2022@15:35
;;5.3;Scheduling;**815,818,819,823,824,825,828,831,833,837,838,839**;Aug 13, 1993;Build 3
;;Per VHA Directive 6402, this routine should not be modified
;
; Reference to ^VA(200 in ICR #10060 ;
Q
;
; For an example of the return object, see SDESGETREQWRAPPR due to its length.
; If you add new components to the JSON return object in this routine, document
; them in header of SDESGETREQWRAPPR and initialize them in APPTREQUEST.
;
GETREQSBYDFN(JSONRETURN,DFN,EAS) ; SDES GET APPT REQ BY PATIENT
N ISDFNVALID,ISEASVALID,RETURN,ERRORS,REQUESTIEN,REQUEST
;
S ISDFNVALID=$$VALIDATEDFN(.ERRORS,$G(DFN))
S ISEASVALID=$$VALIDATEEAS(.ERRORS,$G(EAS))
I $D(ERRORS) M RETURN=ERRORS D BUILDJSON(.JSONRETURN,.RETURN) Q
;
S REQUESTIEN=0
F S REQUESTIEN=$O(^SDEC(409.85,"B",DFN,REQUESTIEN)) Q:'REQUESTIEN D
.I $$GET1^DIQ(409.85,REQUESTIEN,23,"I")="C" Q
.D GETREQUEST(.REQUEST,REQUESTIEN)
I '$D(REQUEST) S REQUEST("Request",1)=""
M RETURN=REQUEST
;
D BUILDJSON(.JSONRETURN,.RETURN)
Q
;
GETREQSBYDFNALL(JSONRETURN,DFN,EAS,STARTDATE,ENDDATE) ; SDES GET APPT REQ BY PAT ALL
N ISDFNVALID,ISEASVALID,ISDATEVALID,RETURN,ERRORS,REQUESTIEN,REQUEST
S ISDATEVALID=1
;
S ISDFNVALID=$$VALIDATEDFN(.ERRORS,$G(DFN))
S ISEASVALID=$$VALIDATEEAS(.ERRORS,$G(EAS))
I $D(ERRORS) M RETURN=ERRORS D BUILDJSON(.JSONRETURN,.RETURN) Q
;
I STARTDATE'="" D VALIDATESTART^SDESGETAPPTREQ2(.ERRORS,STARTDATE)
I ENDDATE'="" D VALIDATEEND^SDESGETAPPTREQ2(.ERRORS,ENDDATE)
I $D(ERRORS) M RETURN=ERRORS D BUILDJSON(.JSONRETURN,.RETURN) Q
I (STARTDATE'="")&(ENDDATE'="") D VALIDATERANGE^SDESGETAPPTREQ2(.ERRORS,STARTDATE,ENDDATE)
I $D(ERRORS) M RETURN=ERRORS D BUILDJSON(.JSONRETURN,.RETURN) Q
;
S REQUESTIEN=0
F S REQUESTIEN=$O(^SDEC(409.85,"B",DFN,REQUESTIEN)) Q:'REQUESTIEN D
.I ($G(STARTDATE,"")'="")!($G(ENDDATE,"")'="") S ISDATEVALID=$$VALIDATEDATES^SDESGETAPPTREQ2(REQUESTIEN,STARTDATE,ENDDATE)
.I ISDATEVALID'=1 Q
.D GETREQUEST(.REQUEST,REQUESTIEN)
I '$D(REQUEST) S REQUEST("Request",1)=""
M RETURN=REQUEST
;
D BUILDJSON(.JSONRETURN,.RETURN)
Q
;
GETREQSBYDFNOPEN(JSONRETURN,DFN,EAS) ; SDES GET APPT REQ BY PAT OPEN
N ISDFNVALID,ISEASVALID,RETURN,ERRORS,REQUESTIEN,REQUEST
;
S ISDFNVALID=$$VALIDATEDFN(.ERRORS,$G(DFN))
S ISEASVALID=$$VALIDATEEAS(.ERRORS,$G(EAS))
I $D(ERRORS) M RETURN=ERRORS D BUILDJSON(.JSONRETURN,.RETURN) Q
;
S REQUESTIEN=0
F S REQUESTIEN=$O(^SDEC(409.85,"B",DFN,REQUESTIEN)) Q:'REQUESTIEN D
.I $$GET1^DIQ(409.85,REQUESTIEN,23,"I")="C" Q
.D GETREQUEST(.REQUEST,REQUESTIEN)
I '$D(REQUEST) S REQUEST("Request",1)=""
M RETURN=REQUEST
;
D BUILDJSON(.JSONRETURN,.RETURN)
Q
;
GETREQBYREQIEN(JSONRETURN,REQUESTIEN,EAS) ; SDES GET APPT REQ BY IEN
N ISREQIENVALID,ISEASVALID,RETURN,ERRORS,REQUEST
;
S ISREQIENVALID=$$VALIDATEREQIEN(.ERRORS,$G(REQUESTIEN))
S ISEASVALID=$$VALIDATEEAS(.ERRORS,$G(EAS))
I $D(ERRORS) M RETURN=ERRORS
;
I '$D(ERRORS) D
.D GETREQUEST(.REQUEST,REQUESTIEN)
I '$D(REQUEST) S REQUEST("Request",1)=""
M RETURN=REQUEST
;
D BUILDJSON(.JSONRETURN,.RETURN)
Q
;
GETREQBYAPPTIEN(JSONRETURN,APPTIEN,EAS) ; SDES GET APPT REQ BY APPT IEN
N ISAPPTIENVALID,ISEASVALID,RETURN,ERRORS,REQUEST,REQUESTIEN,REQTYPE
;
S ISAPPTIENVALID=$$VALIDATEAPPTIEN(.ERRORS,$G(APPTIEN))
S ISEASVALID=$$VALIDATEEAS(.ERRORS,$G(EAS))
S REQUESTIEN=$$DOESREQUESTEXIST(.ERRORS,$G(APPTIEN)) ; validate and return linked request IEN
;
I $D(ERRORS) M RETURN=ERRORS
;
I '$D(ERRORS) D
.D GETREQUEST(.REQUEST,$G(REQUESTIEN))
.M RETURN=REQUEST
I '$D(REQUEST) S REQUEST("Request",1)=""
;
D BUILDJSON(.JSONRETURN,.RETURN)
Q
;
GETREQBYTYPEVET(JSONRETURN,EAS) ; SDES GET APPT REQ BY TYPE VET
N ISEASVALID,RETURN,ERRORS,REQUEST,COUNT
;
S ISEASVALID=$$VALIDATEEAS(.ERRORS,$G(EAS))
I $D(ERRORS) M RETURN=ERRORS
;
I '$D(ERRORS) D
.S REQUESTIEN=0,COUNT=0
.F S REQUESTIEN=$O(^SDEC(409.85,"TYPE","VETERAN",REQUESTIEN)) Q:'REQUESTIEN!(COUNT=200) D
..I $$GET1^DIQ(409.85,REQUESTIEN,23,"I")="C" Q
..S COUNT=COUNT+1
..D GETREQUEST(.REQUEST,REQUESTIEN)
I '$D(REQUEST) S REQUEST("Request",1)=""
M RETURN=REQUEST
;
D BUILDJSON(.JSONRETURN,.RETURN)
Q
;
VALIDATEREQIEN(ERRORS,REQUESTIEN) ;
I REQUESTIEN="" D ERRLOG^SDESJSON(.ERRORS,3) Q 0
I REQUESTIEN'="",('$D(^SDEC(409.85,REQUESTIEN)))!(REQUESTIEN=0) D ERRLOG^SDESJSON(.ERRORS,4) Q 0
Q 1
;
VALIDATEAPPTIEN(ERRORS,APPTIEN) ;
I APPTIEN="" D ERRLOG^SDESJSON(.ERRORS,14) Q 0
I APPTIEN'="",'$D(^SDEC(409.84,APPTIEN,0)) D ERRLOG^SDESJSON(.ERRORS,15) Q 0
Q 1
;
VALIDATEDFN(ERRORS,DFN) ;
I DFN="" D ERRLOG^SDESJSON(.ERRORS,1) Q 0
I DFN'="",'$D(^DPT(DFN,0)) D ERRLOG^SDESJSON(.ERRORS,2) Q 0
Q 1
;
VALIDATEEAS(ERRORS,EAS) ;
I $L(EAS) S EAS=$$EASVALIDATE^SDESUTIL($G(EAS))
I $P($G(EAS),U)=-1 D ERRLOG^SDESJSON(.ERRORS,142) Q 0
Q 1
;
GETREQTYPE(ERRORS,APPTIEN) ; validate and return linked request type
S REQTYPE=$P($$GET1^DIQ(409.84,APPTIEN,.22,"I"),";",2)
I REQTYPE="" D ERRLOG^SDESJSON(.ERRORS,182)
Q REQTYPE
;
DOESREQUESTEXIST(ERRORS,APPTIEN) ;get request IEN from appointment IEN
S REQUESTIEN=$P($$GET1^DIQ(409.84,APPTIEN,.22,"I"),";",1)
I REQUESTIEN="" D ERRLOG^SDESJSON(.ERRORS,182) Q 0
I REQUESTIEN'="",'$D(^SDEC(409.85,REQUESTIEN,0)) D ERRLOG^SDESJSON(.ERRORS,182) Q 0
Q REQUESTIEN
;
N SUBIEN,COUNT
S SUBIEN=0,COUNT=0
F S SUBIEN=$O(^SDEC(409.85,REQUESTIEN,"PATCOM",SUBIEN)) Q:'SUBIEN D
.S COUNT=COUNT+1
.S REQUEST("Request",NUM,"PatientComment",COUNT,"Comment")=$$GET1^DIQ(409.855,SUBIEN_","_REQUESTIEN_",",.01,"E")
Q
;
N SUBIEN,COUNT
S SUBIEN=0,COUNT=0
F S SUBIEN=$O(^SDEC(409.85,REQUESTIEN,1,SUBIEN)) Q:'SUBIEN D
.S COUNT=COUNT+1
.S REQUEST("Request",NUM,"CommentMultiple",COUNT,"Comment")=$$GET1^DIQ(409.8526,SUBIEN_","_REQUESTIEN_",",.01,"E")
Q
;
BUILDPATCONTACTS(REQUEST,REQUESTIEN,NUM) ; build patient contacts and associated comments
N SUBIEN,SUBIEN2,PIENS,PIENS2,COMMENTS,COUNT
S SUBIEN=0,COUNT=0
F S SUBIEN=$O(^SDEC(409.85,REQUESTIEN,4,SUBIEN)) Q:'SUBIEN D
.S COUNT=COUNT+1
.S PIENS=SUBIEN_","_REQUESTIEN_","
.S REQUEST("Request",NUM,"PatientContact",COUNT,"DateEntered")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.8544,PIENS,.01,"E"))
.S REQUEST("Request",NUM,"PatientContact",COUNT,"EnteredByIEN")=$$GET1^DIQ(409.8544,PIENS,2,"I")
.S REQUEST("Request",NUM,"PatientContact",COUNT,"EnteredByName")=$$GET1^DIQ(409.8544,PIENS,2,"E")
.S REQUEST("Request",NUM,"PatientContact",COUNT,"Action")=$$GET1^DIQ(409.8544,PIENS,3,"E")
.S REQUEST("Request",NUM,"PatientContact",COUNT,"PatientPhone")=$$GET1^DIQ(409.8544,PIENS,4,"E")
Q
;
BUILDMRTCPIDS(REQUEST,REQUESTIEN,NUM) ; build MRTC PID entries
N SUBIEN,DATE,COUNT
S SUBIEN=0,COUNT=0
F S SUBIEN=$O(^SDEC(409.85,REQUESTIEN,5,SUBIEN)) Q:'SUBIEN D
.S COUNT=COUNT+1
.S DATE=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.851,SUBIEN_","_REQUESTIEN_",",.01,"I"))
.S REQUEST("Request",NUM,"MRTC",COUNT,"PatientIndicatedDate")=DATE
Q
;
BUILDMRTCS(REQUEST,REQUESTIEN,NUM) ; build MRTC entries
N SUBIEN,COUNT,MIENS
S SUBIEN=0,COUNT=0
F S SUBIEN=$O(^SDEC(409.85,REQUESTIEN,2,SUBIEN)) Q:'SUBIEN D
.S COUNT=COUNT+1
.S MIENS=SUBIEN_","_REQUESTIEN_","
.S REQUEST("Request",NUM,"MRTC",COUNT,"ChildRequestIEN")=$$GET1^DIQ(409.852,MIENS,.01,"I")
.S REQUEST("Request",NUM,"MRTC",COUNT,"LinkedAppointmentIEN")=$$GET1^DIQ(409.852,MIENS,.02,"I")
S REQUEST("Request",NUM,"MRTCTotal")=COUNT
Q
;
BUILDSDECONTACT(REQUEST,REQUESTIEN,NUM,REQUESTTYPE) ; build SDEC contact attempts, called by get consult/recall
N CONTACTIEN,SUBIEN,CIENS,COUNT,CONTARY,CONTACTYPE,CONTACTS,ERRORS
S SUBIEN=0,COUNT=0,CONTACTIEN=0
S CONTACTIEN=$$GETCONTIEN^SDESCONTACTS(.ERRORS,REQUESTIEN,REQUESTTYPE)
I 'CONTACTIEN S REQUEST("Request",NUM,"Contact",1)="" Q
F S SUBIEN=$O(^SDEC(409.86,CONTACTIEN,1,SUBIEN)) Q:'SUBIEN D
.S CIENS=SUBIEN_","_CONTACTIEN_","
.S CONTACTYPE=$$GET1^DIQ(409.863,CIENS,1,"I")
.I $L($G(CONTACTYPE)) D
..S CONTARY(CONTACTYPE)=$G(CONTARY(CONTACTYPE))+1
..S COUNT=COUNT+1
..S REQUEST("Request",NUM,"SdecContactNumberOfCalls")=$G(CONTARY("C"))
..S REQUEST("Request",NUM,"SdecContactNumberOfEmailContact")=$G(CONTARY("E"))
..S REQUEST("Request",NUM,"SdecContactNumberOfTextContact")=$G(CONTARY("T"))
..S REQUEST("Request",NUM,"SdecContactNumberOfSecureMessage")=$G(CONTARY("S"))
..S REQUEST("Request",NUM,"SdecContactNumberOfLetters")=$G(CONTARY("L"))
S REQUEST("Request",NUM,"SdecContactDateOfLastLetterSent")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.863,CIENS,.01,"I"))
S REQUEST("Request",NUM,"SdecContactNumberOfContacts")=COUNT
D BLDCONTACT^SDESCONTACTS(.CONTACTS,CONTACTIEN)
D DISPMULT^SDESCONTACTS(.CONTACTS,CONTACTIEN)
I $D(CONTACTS) M REQUEST("Request",NUM)=CONTACTS Q
I '$D(CONTACTS) S REQUEST("Request",NUM,"Contact",1)=""
Q
BUILDCPRSPREREQS(REQUEST,REQUESTIEN,NUM) ; build CPRS linked PreRequisites
N SUBIEN,COUNT,PIENS
S SUBIEN=0,COUNT=0
F S SUBIEN=$O(^SDEC(409.85,REQUESTIEN,8,SUBIEN)) Q:'SUBIEN D
.S COUNT=COUNT+1
.S PIENS=SUBIEN_","_REQUESTIEN_","
.S REQUEST("Request",NUM,"CPRSPreRequisites",COUNT,"PreRequisite")=$$GET1^DIQ(409.8548,PIENS,.01,"E")
Q
;
GETREQUEST(REQUEST,REQUESTIEN) ;
N APPT,REQUESTARY,ERR,IENS,FN,REQDATA,NUM
S FN=409.85,NUM=""
S NUM=$O(REQUEST("Request",NUM),-1)+1
S IENS=REQUESTIEN_","
D GETS^DIQ(FN,IENS,"**","IE","REQDATA","ERR")
;
I $D(^SDEC(409.85,REQUESTIEN,"PATCOM")) D BUILDPATCOMMENTS(.REQUEST,REQUESTIEN,NUM) ; patient comments
I '$D(^SDEC(409.85,REQUESTIEN,"PATCOM")) S REQUEST("Request",NUM,"PatientComment",1)=""
;
I $D(^SDEC(409.85,REQUESTIEN,1)) D BUILDCOMMENTMULT(.REQUEST,REQUESTIEN,NUM) ; comment multiple
I '$D(^SDEC(409.85,REQUESTIEN,1)) S REQUEST("Request",NUM,"CommentMultiple",1)=""
;
; Build empty object for PatientContact. This was from an incorrect data source. Contacts are now built in BUILDSDECONTACT
S REQUEST("Request",NUM,"PatientContact",1)=""
;
I $D(^SDEC(409.85,REQUESTIEN,8)) D BUILDCPRSPREREQS(.REQUEST,REQUESTIEN,NUM) ; CPRS pre requisites
I '$D(^SDEC(409.85,REQUESTIEN,8)) S REQUEST("Request",NUM,"CPRSPreRequisites",1)=""
;
I $D(^SDEC(409.85,REQUESTIEN,2)) D BUILDMRTCS(.REQUEST,REQUESTIEN,NUM) ; MRTCs
I '$D(^SDEC(409.85,REQUESTIEN,2)) S REQUEST("Request",NUM,"MRTC",1)=""
;
I $D(^SDEC(409.85,REQUESTIEN,5)) D BUILDMRTCPIDS(.REQUEST,REQUESTIEN,NUM) ; MRTC PIDs
;
I $D(^SDEC(409.86,"SRP",REQUESTIEN)) D BUILDSDECONTACT(.REQUEST,REQUESTIEN,NUM,"A") ;SDEC Contact type attempts
;
S REQUEST("Request",NUM,"Type")="Appt Request"
S REQUEST("Request",NUM,"PatientIEN")=REQDATA(FN,REQUESTIEN_",",.01,"I")
S REQUEST("Request",NUM,"PatientICN")=$$GETPATICN^SDESINPUTVALUTL(REQDATA(FN,REQUESTIEN_",",.01,"I"))
S REQUEST("Request",NUM,"PatientName")=REQDATA(FN,REQUESTIEN_",",.01,"E") ;
S REQUEST("Request",NUM,"RequestIEN")=REQUESTIEN
S REQUEST("Request",NUM,"RequestComments")=REQDATA(FN,REQUESTIEN_",",25,"E")
S REQUEST("Request",NUM,"CreateDate")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",1,"I"))
S REQUEST("Request",NUM,"InstitutionIEN")=REQDATA(FN,REQUESTIEN_",",2,"I")
S REQUEST("Request",NUM,"InstitutionName")=REQDATA(FN,REQUESTIEN_",",2,"E")
S REQUEST("Request",NUM,"InstitutionNumber")=$$GET1^DIQ(4,REQDATA(FN,REQUESTIEN_",",2,"I"),99)
S REQUEST("Request",NUM,"RequestSubType")=REQDATA(FN,REQUESTIEN_",",4,"E")
S REQUEST("Request",NUM,"ClinicIEN")=REQDATA(FN,REQUESTIEN_",",8,"I")
S REQUEST("Request",NUM,"ClinicName")=REQDATA(FN,REQUESTIEN_",",8,"E")
S REQUEST("Request",NUM,"ClinicStopCodeIEN")=REQDATA(FN,REQUESTIEN_",",8.5,"I")
S REQUEST("Request",NUM,"ClinicStopCodeName")=REQDATA(FN,REQUESTIEN_",",8.5,"E")
S REQUEST("Request",NUM,"ClinicStopCodeAMIS")=$$GET1^DIQ(40.7,REQDATA(FN,REQUESTIEN_",",8.5,"I"),1)
S REQUEST("Request",NUM,"ClinicSecondaryStopCodeIEN")=REQDATA(FN,REQUESTIEN_",",8.6,"I")
S REQUEST("Request",NUM,"ClinicSecondaryStopCodeName")=REQDATA(FN,REQUESTIEN_",",8.6,"E")
S REQUEST("Request",NUM,"ClinicSecondaryStopCodeAMIS")=$$GET1^DIQ(40.7,REQDATA(FN,REQUESTIEN_",",8.6,"I"),1)
S REQUEST("Request",NUM,"ApptType")=REQDATA(FN,REQUESTIEN_",",8.7,"E")
S REQUEST("Request",NUM,"EnteredByName")=REQDATA(FN,REQUESTIEN_",",9,"E")
S REQUEST("Request",NUM,"EnteredByIEN")=REQDATA(FN,REQUESTIEN_",",9,"I")
S REQUEST("Request",NUM,"DateTimeEntered")=$$FMTISO^SDAMUTDT($G(REQDATA(FN,REQUESTIEN_",",9.5,"I")))
S REQUEST("Request",NUM,"Priority")=REQDATA(FN,REQUESTIEN_",",10,"E")
S REQUEST("Request",NUM,"EnrollmentPriorityGroup")=REQDATA(FN,REQUESTIEN_",",10.5,"E")
S REQUEST("Request",NUM,"ByPatientOrProvider")=REQDATA(FN,REQUESTIEN_",",11,"E")
S REQUEST("Request",NUM,"ProviderIEN")=REQDATA(FN,REQUESTIEN_",",12,"I")
S REQUEST("Request",NUM,"ProviderName")=REQDATA(FN,REQUESTIEN_",",12,"E")
S REQUEST("Request",NUM,"ProviderSecID")=$$GET1^DIQ(200,REQDATA(FN,REQUESTIEN_",",12,"I"),205.1)
S REQUEST("Request",NUM,"ScheduledDateOfAppt")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",13,"I"))
S REQUEST("Request",NUM,"DateLinkedApptMade")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",13.1,"I"))
S REQUEST("Request",NUM,"LinkedApptClinic")=REQDATA(FN,REQUESTIEN_",",13.2,"E")
S REQUEST("Request",NUM,"LinkedApptInstitutionName")=REQDATA(FN,REQUESTIEN_",",13.3,"E")
S REQUEST("Request",NUM,"LinkedApptStopCode")=REQDATA(FN,REQUESTIEN_",",13.4,"E")
S REQUEST("Request",NUM,"LinkedApptCreditStopCode")=REQDATA(FN,REQUESTIEN_",",13.5,"E")
S REQUEST("Request",NUM,"LinkedApptInstitutionNumber")=REQDATA(FN,REQUESTIEN_",",13.6,"I")
S REQUEST("Request",NUM,"LinkedApptEnteredBy")=REQDATA(FN,REQUESTIEN_",",13.7,"E")
S REQUEST("Request",NUM,"LinkedApptStatus")=REQDATA(FN,REQUESTIEN_",",13.8,"E")
S REQUEST("Request",NUM,"ServiceConnectedPercentage")=REQDATA(FN,REQUESTIEN_",",14,"E")
S REQUEST("Request",NUM,"PatientIndicatedDate")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",22,"I"))
S REQUEST("Request",NUM,"Status")=(REQDATA(FN,REQUESTIEN_",",23,"E"))
S REQUEST("Request",NUM,"MRTCNeeded")=REQDATA(409.85,REQUESTIEN_",",41,"E")
S REQUEST("Request",NUM,"MRTCDaysBetweenAppts")=REQDATA(409.85,REQUESTIEN_",",42,"E")
S REQUEST("Request",NUM,"MRTCHowManyNeeded")=REQDATA(409.85,REQUESTIEN_",",43,"E")
S REQUEST("Request",NUM,"EASTrackingNumber")=REQDATA(FN,REQUESTIEN_",",100,"E")
S REQUEST("Request",NUM,"DispositionedDate")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",19,"I"))
S REQUEST("Request",NUM,"DispositionedBy")=REQDATA(FN,REQUESTIEN_",",20,"I")
S REQUEST("Request",NUM,"DispositionedBy")=REQDATA(FN,REQUESTIEN_",",20,"E")
S REQUEST("Request",NUM,"DispositionReason")=REQDATA(FN,REQUESTIEN_",",21,"E")
S REQUEST("Request",NUM,"DispositionIEN")=REQDATA(FN,REQUESTIEN_",",21,"I")
S REQUEST("Request",NUM,"ServiceConnectedPriority")=REQDATA(FN,REQUESTIEN_",",15,"E")
S REQUEST("Request",NUM,"PatientStatus")=REQDATA(FN,REQUESTIEN_",",.02,"E")
S REQUEST("Request",NUM,"ParentRequest")=REQDATA(FN,REQUESTIEN_",",43.8,"I")
S REQUEST("Request",NUM,"ModalityName")=REQDATA(FN,REQUESTIEN_",",6,"E")
S REQUEST("Request",NUM,"ModalityCode")=REQDATA(FN,REQUESTIEN_",",6,"I")
S REQUEST("Request",NUM,"CPRSOrderID")=REQDATA(FN,REQUESTIEN_",",46,"I")
S REQUEST("Request",NUM,"CPRSTimeSensitive")=REQDATA(FN,REQUESTIEN_",",47,"I")
;
D FINISHAPPTREQ^SDESGETAPPTREQ2(.REQUEST,NUM,REQUESTIEN)
; build recall and consult
D RECALL^SDESGETREQWRAPPR(.REQUEST,NUM)
D CONSULT^SDESGETREQWRAPPR(.REQUEST,NUM)
Q
;
BUILDJSON(JSONRETURN,RETURN) ;
N JSONERROR
D ENCODE^XLFJSON("RETURN","JSONRETURN","JSONERROR")
;
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDESGETAPPTREQ 15812 printed May 14, 2023@15:09:20 Page 2
SDESGETAPPTREQ ;ALB/BLB,RRM,MGD,DJS,BLB,BWF,BLB,CGP - GET APPT REQ RPCS ;Oct 31, 2022@15:35
+1 ;;5.3;Scheduling;**815,818,819,823,824,825,828,831,833,837,838,839**;Aug 13, 1993;Build 3
+2 ;;Per VHA Directive 6402, this routine should not be modified
+3 ;
+4 ; Reference to ^VA(200 in ICR #10060 ;
+5 QUIT
+6 ;
+7 ; For an example of the return object, see SDESGETREQWRAPPR due to its length.
+8 ; If you add new components to the JSON return object in this routine, document
+9 ; them in header of SDESGETREQWRAPPR and initialize them in APPTREQUEST.
+10 ;
GETREQSBYDFN(JSONRETURN,DFN,EAS) ; SDES GET APPT REQ BY PATIENT
+1 NEW ISDFNVALID,ISEASVALID,RETURN,ERRORS,REQUESTIEN,REQUEST
+2 ;
+3 SET ISDFNVALID=$$VALIDATEDFN(.ERRORS,$GET(DFN))
+4 SET ISEASVALID=$$VALIDATEEAS(.ERRORS,$GET(EAS))
+5 IF $DATA(ERRORS)
MERGE RETURN=ERRORS
DO BUILDJSON(.JSONRETURN,.RETURN)
QUIT
+6 ;
+7 SET REQUESTIEN=0
+8 FOR
SET REQUESTIEN=$ORDER(^SDEC(409.85,"B",DFN,REQUESTIEN))
if 'REQUESTIEN
QUIT
Begin DoDot:1
+9 IF $$GET1^DIQ(409.85,REQUESTIEN,23,"I")="C"
QUIT
+10 DO GETREQUEST(.REQUEST,REQUESTIEN)
End DoDot:1
+11 IF '$DATA(REQUEST)
SET REQUEST("Request",1)=""
+12 MERGE RETURN=REQUEST
+13 ;
+14 DO BUILDJSON(.JSONRETURN,.RETURN)
+15 QUIT
+16 ;
GETREQSBYDFNALL(JSONRETURN,DFN,EAS,STARTDATE,ENDDATE) ; SDES GET APPT REQ BY PAT ALL
+1 NEW ISDFNVALID,ISEASVALID,ISDATEVALID,RETURN,ERRORS,REQUESTIEN,REQUEST
+2 SET ISDATEVALID=1
+3 ;
+4 SET ISDFNVALID=$$VALIDATEDFN(.ERRORS,$GET(DFN))
+5 SET ISEASVALID=$$VALIDATEEAS(.ERRORS,$GET(EAS))
+6 IF $DATA(ERRORS)
MERGE RETURN=ERRORS
DO BUILDJSON(.JSONRETURN,.RETURN)
QUIT
+7 ;
+8 IF STARTDATE'=""
DO VALIDATESTART^SDESGETAPPTREQ2(.ERRORS,STARTDATE)
+9 IF ENDDATE'=""
DO VALIDATEEND^SDESGETAPPTREQ2(.ERRORS,ENDDATE)
+10 IF $DATA(ERRORS)
MERGE RETURN=ERRORS
DO BUILDJSON(.JSONRETURN,.RETURN)
QUIT
+11 IF (STARTDATE'="")&(ENDDATE'="")
DO VALIDATERANGE^SDESGETAPPTREQ2(.ERRORS,STARTDATE,ENDDATE)
+12 IF $DATA(ERRORS)
MERGE RETURN=ERRORS
DO BUILDJSON(.JSONRETURN,.RETURN)
QUIT
+13 ;
+14 SET REQUESTIEN=0
+15 FOR
SET REQUESTIEN=$ORDER(^SDEC(409.85,"B",DFN,REQUESTIEN))
if 'REQUESTIEN
QUIT
Begin DoDot:1
+16 IF ($GET(STARTDATE,"")'="")!($GET(ENDDATE,"")'="")
SET ISDATEVALID=$$VALIDATEDATES^SDESGETAPPTREQ2(REQUESTIEN,STARTDATE,ENDDATE)
+17 IF ISDATEVALID'=1
QUIT
+18 DO GETREQUEST(.REQUEST,REQUESTIEN)
End DoDot:1
+19 IF '$DATA(REQUEST)
SET REQUEST("Request",1)=""
+20 MERGE RETURN=REQUEST
+21 ;
+22 DO BUILDJSON(.JSONRETURN,.RETURN)
+23 QUIT
+24 ;
GETREQSBYDFNOPEN(JSONRETURN,DFN,EAS) ; SDES GET APPT REQ BY PAT OPEN
+1 NEW ISDFNVALID,ISEASVALID,RETURN,ERRORS,REQUESTIEN,REQUEST
+2 ;
+3 SET ISDFNVALID=$$VALIDATEDFN(.ERRORS,$GET(DFN))
+4 SET ISEASVALID=$$VALIDATEEAS(.ERRORS,$GET(EAS))
+5 IF $DATA(ERRORS)
MERGE RETURN=ERRORS
DO BUILDJSON(.JSONRETURN,.RETURN)
QUIT
+6 ;
+7 SET REQUESTIEN=0
+8 FOR
SET REQUESTIEN=$ORDER(^SDEC(409.85,"B",DFN,REQUESTIEN))
if 'REQUESTIEN
QUIT
Begin DoDot:1
+9 IF $$GET1^DIQ(409.85,REQUESTIEN,23,"I")="C"
QUIT
+10 DO GETREQUEST(.REQUEST,REQUESTIEN)
End DoDot:1
+11 IF '$DATA(REQUEST)
SET REQUEST("Request",1)=""
+12 MERGE RETURN=REQUEST
+13 ;
+14 DO BUILDJSON(.JSONRETURN,.RETURN)
+15 QUIT
+16 ;
GETREQBYREQIEN(JSONRETURN,REQUESTIEN,EAS) ; SDES GET APPT REQ BY IEN
+1 NEW ISREQIENVALID,ISEASVALID,RETURN,ERRORS,REQUEST
+2 ;
+3 SET ISREQIENVALID=$$VALIDATEREQIEN(.ERRORS,$GET(REQUESTIEN))
+4 SET ISEASVALID=$$VALIDATEEAS(.ERRORS,$GET(EAS))
+5 IF $DATA(ERRORS)
MERGE RETURN=ERRORS
+6 ;
+7 IF '$DATA(ERRORS)
Begin DoDot:1
+8 DO GETREQUEST(.REQUEST,REQUESTIEN)
End DoDot:1
+9 IF '$DATA(REQUEST)
SET REQUEST("Request",1)=""
+10 MERGE RETURN=REQUEST
+11 ;
+12 DO BUILDJSON(.JSONRETURN,.RETURN)
+13 QUIT
+14 ;
GETREQBYAPPTIEN(JSONRETURN,APPTIEN,EAS) ; SDES GET APPT REQ BY APPT IEN
+1 NEW ISAPPTIENVALID,ISEASVALID,RETURN,ERRORS,REQUEST,REQUESTIEN,REQTYPE
+2 ;
+3 SET ISAPPTIENVALID=$$VALIDATEAPPTIEN(.ERRORS,$GET(APPTIEN))
+4 SET ISEASVALID=$$VALIDATEEAS(.ERRORS,$GET(EAS))
+5 ; validate and return linked request IEN
SET REQUESTIEN=$$DOESREQUESTEXIST(.ERRORS,$GET(APPTIEN))
+6 ;
+7 IF $DATA(ERRORS)
MERGE RETURN=ERRORS
+8 ;
+9 IF '$DATA(ERRORS)
Begin DoDot:1
+10 DO GETREQUEST(.REQUEST,$GET(REQUESTIEN))
+11 MERGE RETURN=REQUEST
End DoDot:1
+12 IF '$DATA(REQUEST)
SET REQUEST("Request",1)=""
+13 ;
+14 DO BUILDJSON(.JSONRETURN,.RETURN)
+15 QUIT
+16 ;
GETREQBYTYPEVET(JSONRETURN,EAS) ; SDES GET APPT REQ BY TYPE VET
+1 NEW ISEASVALID,RETURN,ERRORS,REQUEST,COUNT
+2 ;
+3 SET ISEASVALID=$$VALIDATEEAS(.ERRORS,$GET(EAS))
+4 IF $DATA(ERRORS)
MERGE RETURN=ERRORS
+5 ;
+6 IF '$DATA(ERRORS)
Begin DoDot:1
+7 SET REQUESTIEN=0
SET COUNT=0
+8 FOR
SET REQUESTIEN=$ORDER(^SDEC(409.85,"TYPE","VETERAN",REQUESTIEN))
if 'REQUESTIEN!(COUNT=200)
QUIT
Begin DoDot:2
+9 IF $$GET1^DIQ(409.85,REQUESTIEN,23,"I")="C"
QUIT
+10 SET COUNT=COUNT+1
+11 DO GETREQUEST(.REQUEST,REQUESTIEN)
End DoDot:2
End DoDot:1
+12 IF '$DATA(REQUEST)
SET REQUEST("Request",1)=""
+13 MERGE RETURN=REQUEST
+14 ;
+15 DO BUILDJSON(.JSONRETURN,.RETURN)
+16 QUIT
+17 ;
VALIDATEREQIEN(ERRORS,REQUESTIEN) ;
+1 IF REQUESTIEN=""
DO ERRLOG^SDESJSON(.ERRORS,3)
QUIT 0
+2 IF REQUESTIEN'=""
IF ('$DATA(^SDEC(409.85,REQUESTIEN)))!(REQUESTIEN=0)
DO ERRLOG^SDESJSON(.ERRORS,4)
QUIT 0
+3 QUIT 1
+4 ;
VALIDATEAPPTIEN(ERRORS,APPTIEN) ;
+1 IF APPTIEN=""
DO ERRLOG^SDESJSON(.ERRORS,14)
QUIT 0
+2 IF APPTIEN'=""
IF '$DATA(^SDEC(409.84,APPTIEN,0))
DO ERRLOG^SDESJSON(.ERRORS,15)
QUIT 0
+3 QUIT 1
+4 ;
VALIDATEDFN(ERRORS,DFN) ;
+1 IF DFN=""
DO ERRLOG^SDESJSON(.ERRORS,1)
QUIT 0
+2 IF DFN'=""
IF '$DATA(^DPT(DFN,0))
DO ERRLOG^SDESJSON(.ERRORS,2)
QUIT 0
+3 QUIT 1
+4 ;
VALIDATEEAS(ERRORS,EAS) ;
+1 IF $LENGTH(EAS)
SET EAS=$$EASVALIDATE^SDESUTIL($GET(EAS))
+2 IF $PIECE($GET(EAS),U)=-1
DO ERRLOG^SDESJSON(.ERRORS,142)
QUIT 0
+3 QUIT 1
+4 ;
GETREQTYPE(ERRORS,APPTIEN) ; validate and return linked request type
+1 SET REQTYPE=$PIECE($$GET1^DIQ(409.84,APPTIEN,.22,"I"),";",2)
+2 IF REQTYPE=""
DO ERRLOG^SDESJSON(.ERRORS,182)
+3 QUIT REQTYPE
+4 ;
DOESREQUESTEXIST(ERRORS,APPTIEN) ;get request IEN from appointment IEN
+1 SET REQUESTIEN=$PIECE($$GET1^DIQ(409.84,APPTIEN,.22,"I"),";",1)
+2 IF REQUESTIEN=""
DO ERRLOG^SDESJSON(.ERRORS,182)
QUIT 0
+3 IF REQUESTIEN'=""
IF '$DATA(^SDEC(409.85,REQUESTIEN,0))
DO ERRLOG^SDESJSON(.ERRORS,182)
QUIT 0
+4 QUIT REQUESTIEN
+5 ;
+1 NEW SUBIEN,COUNT
+2 SET SUBIEN=0
SET COUNT=0
+3 FOR
SET SUBIEN=$ORDER(^SDEC(409.85,REQUESTIEN,"PATCOM",SUBIEN))
if 'SUBIEN
QUIT
Begin DoDot:1
+4 SET COUNT=COUNT+1
+5 SET REQUEST("Request",NUM,"PatientComment",COUNT,"Comment")=$$GET1^DIQ(409.855,SUBIEN_","_REQUESTIEN_",",.01,"E")
End DoDot:1
+6 QUIT
+7 ;
+1 NEW SUBIEN,COUNT
+2 SET SUBIEN=0
SET COUNT=0
+3 FOR
SET SUBIEN=$ORDER(^SDEC(409.85,REQUESTIEN,1,SUBIEN))
if 'SUBIEN
QUIT
Begin DoDot:1
+4 SET COUNT=COUNT+1
+5 SET REQUEST("Request",NUM,"CommentMultiple",COUNT,"Comment")=$$GET1^DIQ(409.8526,SUBIEN_","_REQUESTIEN_",",.01,"E")
End DoDot:1
+6 QUIT
+7 ;
BUILDPATCONTACTS(REQUEST,REQUESTIEN,NUM) ; build patient contacts and associated comments
+1 NEW SUBIEN,SUBIEN2,PIENS,PIENS2,COMMENTS,COUNT
+2 SET SUBIEN=0
SET COUNT=0
+3 FOR
SET SUBIEN=$ORDER(^SDEC(409.85,REQUESTIEN,4,SUBIEN))
if 'SUBIEN
QUIT
Begin DoDot:1
+4 SET COUNT=COUNT+1
+5 SET PIENS=SUBIEN_","_REQUESTIEN_","
+6 SET REQUEST("Request",NUM,"PatientContact",COUNT,"DateEntered")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.8544,PIENS,.01,"E"))
+7 SET REQUEST("Request",NUM,"PatientContact",COUNT,"EnteredByIEN")=$$GET1^DIQ(409.8544,PIENS,2,"I")
+8 SET REQUEST("Request",NUM,"PatientContact",COUNT,"EnteredByName")=$$GET1^DIQ(409.8544,PIENS,2,"E")
+9 SET REQUEST("Request",NUM,"PatientContact",COUNT,"Action")=$$GET1^DIQ(409.8544,PIENS,3,"E")
+10 SET REQUEST("Request",NUM,"PatientContact",COUNT,"PatientPhone")=$$GET1^DIQ(409.8544,PIENS,4,"E")
End DoDot:1
+11 QUIT
+12 ;
BUILDMRTCPIDS(REQUEST,REQUESTIEN,NUM) ; build MRTC PID entries
+1 NEW SUBIEN,DATE,COUNT
+2 SET SUBIEN=0
SET COUNT=0
+3 FOR
SET SUBIEN=$ORDER(^SDEC(409.85,REQUESTIEN,5,SUBIEN))
if 'SUBIEN
QUIT
Begin DoDot:1
+4 SET COUNT=COUNT+1
+5 SET DATE=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.851,SUBIEN_","_REQUESTIEN_",",.01,"I"))
+6 SET REQUEST("Request",NUM,"MRTC",COUNT,"PatientIndicatedDate")=DATE
End DoDot:1
+7 QUIT
+8 ;
BUILDMRTCS(REQUEST,REQUESTIEN,NUM) ; build MRTC entries
+1 NEW SUBIEN,COUNT,MIENS
+2 SET SUBIEN=0
SET COUNT=0
+3 FOR
SET SUBIEN=$ORDER(^SDEC(409.85,REQUESTIEN,2,SUBIEN))
if 'SUBIEN
QUIT
Begin DoDot:1
+4 SET COUNT=COUNT+1
+5 SET MIENS=SUBIEN_","_REQUESTIEN_","
+6 SET REQUEST("Request",NUM,"MRTC",COUNT,"ChildRequestIEN")=$$GET1^DIQ(409.852,MIENS,.01,"I")
+7 SET REQUEST("Request",NUM,"MRTC",COUNT,"LinkedAppointmentIEN")=$$GET1^DIQ(409.852,MIENS,.02,"I")
End DoDot:1
+8 SET REQUEST("Request",NUM,"MRTCTotal")=COUNT
+9 QUIT
+10 ;
BUILDSDECONTACT(REQUEST,REQUESTIEN,NUM,REQUESTTYPE) ; build SDEC contact attempts, called by get consult/recall
+1 NEW CONTACTIEN,SUBIEN,CIENS,COUNT,CONTARY,CONTACTYPE,CONTACTS,ERRORS
+2 SET SUBIEN=0
SET COUNT=0
SET CONTACTIEN=0
+3 SET CONTACTIEN=$$GETCONTIEN^SDESCONTACTS(.ERRORS,REQUESTIEN,REQUESTTYPE)
+4 IF 'CONTACTIEN
SET REQUEST("Request",NUM,"Contact",1)=""
QUIT
+5 FOR
SET SUBIEN=$ORDER(^SDEC(409.86,CONTACTIEN,1,SUBIEN))
if 'SUBIEN
QUIT
Begin DoDot:1
+6 SET CIENS=SUBIEN_","_CONTACTIEN_","
+7 SET CONTACTYPE=$$GET1^DIQ(409.863,CIENS,1,"I")
+8 IF $LENGTH($GET(CONTACTYPE))
Begin DoDot:2
+9 SET CONTARY(CONTACTYPE)=$GET(CONTARY(CONTACTYPE))+1
+10 SET COUNT=COUNT+1
+11 SET REQUEST("Request",NUM,"SdecContactNumberOfCalls")=$GET(CONTARY("C"))
+12 SET REQUEST("Request",NUM,"SdecContactNumberOfEmailContact")=$GET(CONTARY("E"))
+13 SET REQUEST("Request",NUM,"SdecContactNumberOfTextContact")=$GET(CONTARY("T"))
+14 SET REQUEST("Request",NUM,"SdecContactNumberOfSecureMessage")=$GET(CONTARY("S"))
+15 SET REQUEST("Request",NUM,"SdecContactNumberOfLetters")=$GET(CONTARY("L"))
End DoDot:2
End DoDot:1
+16 SET REQUEST("Request",NUM,"SdecContactDateOfLastLetterSent")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.863,CIENS,.01,"I"))
+17 SET REQUEST("Request",NUM,"SdecContactNumberOfContacts")=COUNT
+18 DO BLDCONTACT^SDESCONTACTS(.CONTACTS,CONTACTIEN)
+19 DO DISPMULT^SDESCONTACTS(.CONTACTS,CONTACTIEN)
+20 IF $DATA(CONTACTS)
MERGE REQUEST("Request",NUM)=CONTACTS
QUIT
+21 IF '$DATA(CONTACTS)
SET REQUEST("Request",NUM,"Contact",1)=""
+22 QUIT
BUILDCPRSPREREQS(REQUEST,REQUESTIEN,NUM) ; build CPRS linked PreRequisites
+1 NEW SUBIEN,COUNT,PIENS
+2 SET SUBIEN=0
SET COUNT=0
+3 FOR
SET SUBIEN=$ORDER(^SDEC(409.85,REQUESTIEN,8,SUBIEN))
if 'SUBIEN
QUIT
Begin DoDot:1
+4 SET COUNT=COUNT+1
+5 SET PIENS=SUBIEN_","_REQUESTIEN_","
+6 SET REQUEST("Request",NUM,"CPRSPreRequisites",COUNT,"PreRequisite")=$$GET1^DIQ(409.8548,PIENS,.01,"E")
End DoDot:1
+7 QUIT
+8 ;
GETREQUEST(REQUEST,REQUESTIEN) ;
+1 NEW APPT,REQUESTARY,ERR,IENS,FN,REQDATA,NUM
+2 SET FN=409.85
SET NUM=""
+3 SET NUM=$ORDER(REQUEST("Request",NUM),-1)+1
+4 SET IENS=REQUESTIEN_","
+5 DO GETS^DIQ(FN,IENS,"**","IE","REQDATA","ERR")
+6 ;
+7 ; patient comments
IF $DATA(^SDEC(409.85,REQUESTIEN,"PATCOM"))
DO BUILDPATCOMMENTS(.REQUEST,REQUESTIEN,NUM)
+8 IF '$DATA(^SDEC(409.85,REQUESTIEN,"PATCOM"))
SET REQUEST("Request",NUM,"PatientComment",1)=""
+9 ;
+10 ; comment multiple
IF $DATA(^SDEC(409.85,REQUESTIEN,1))
DO BUILDCOMMENTMULT(.REQUEST,REQUESTIEN,NUM)
+11 IF '$DATA(^SDEC(409.85,REQUESTIEN,1))
SET REQUEST("Request",NUM,"CommentMultiple",1)=""
+12 ;
+13 ; Build empty object for PatientContact. This was from an incorrect data source. Contacts are now built in BUILDSDECONTACT
+14 SET REQUEST("Request",NUM,"PatientContact",1)=""
+15 ;
+16 ; CPRS pre requisites
IF $DATA(^SDEC(409.85,REQUESTIEN,8))
DO BUILDCPRSPREREQS(.REQUEST,REQUESTIEN,NUM)
+17 IF '$DATA(^SDEC(409.85,REQUESTIEN,8))
SET REQUEST("Request",NUM,"CPRSPreRequisites",1)=""
+18 ;
+19 ; MRTCs
IF $DATA(^SDEC(409.85,REQUESTIEN,2))
DO BUILDMRTCS(.REQUEST,REQUESTIEN,NUM)
+20 IF '$DATA(^SDEC(409.85,REQUESTIEN,2))
SET REQUEST("Request",NUM,"MRTC",1)=""
+21 ;
+22 ; MRTC PIDs
IF $DATA(^SDEC(409.85,REQUESTIEN,5))
DO BUILDMRTCPIDS(.REQUEST,REQUESTIEN,NUM)
+23 ;
+24 ;SDEC Contact type attempts
IF $DATA(^SDEC(409.86,"SRP",REQUESTIEN))
DO BUILDSDECONTACT(.REQUEST,REQUESTIEN,NUM,"A")
+25 ;
+26 SET REQUEST("Request",NUM,"Type")="Appt Request"
+27 SET REQUEST("Request",NUM,"PatientIEN")=REQDATA(FN,REQUESTIEN_",",.01,"I")
+28 SET REQUEST("Request",NUM,"PatientICN")=$$GETPATICN^SDESINPUTVALUTL(REQDATA(FN,REQUESTIEN_",",.01,"I"))
+29 ;
SET REQUEST("Request",NUM,"PatientName")=REQDATA(FN,REQUESTIEN_",",.01,"E")
+30 SET REQUEST("Request",NUM,"RequestIEN")=REQUESTIEN
+31 SET REQUEST("Request",NUM,"RequestComments")=REQDATA(FN,REQUESTIEN_",",25,"E")
+32 SET REQUEST("Request",NUM,"CreateDate")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",1,"I"))
+33 SET REQUEST("Request",NUM,"InstitutionIEN")=REQDATA(FN,REQUESTIEN_",",2,"I")
+34 SET REQUEST("Request",NUM,"InstitutionName")=REQDATA(FN,REQUESTIEN_",",2,"E")
+35 SET REQUEST("Request",NUM,"InstitutionNumber")=$$GET1^DIQ(4,REQDATA(FN,REQUESTIEN_",",2,"I"),99)
+36 SET REQUEST("Request",NUM,"RequestSubType")=REQDATA(FN,REQUESTIEN_",",4,"E")
+37 SET REQUEST("Request",NUM,"ClinicIEN")=REQDATA(FN,REQUESTIEN_",",8,"I")
+38 SET REQUEST("Request",NUM,"ClinicName")=REQDATA(FN,REQUESTIEN_",",8,"E")
+39 SET REQUEST("Request",NUM,"ClinicStopCodeIEN")=REQDATA(FN,REQUESTIEN_",",8.5,"I")
+40 SET REQUEST("Request",NUM,"ClinicStopCodeName")=REQDATA(FN,REQUESTIEN_",",8.5,"E")
+41 SET REQUEST("Request",NUM,"ClinicStopCodeAMIS")=$$GET1^DIQ(40.7,REQDATA(FN,REQUESTIEN_",",8.5,"I"),1)
+42 SET REQUEST("Request",NUM,"ClinicSecondaryStopCodeIEN")=REQDATA(FN,REQUESTIEN_",",8.6,"I")
+43 SET REQUEST("Request",NUM,"ClinicSecondaryStopCodeName")=REQDATA(FN,REQUESTIEN_",",8.6,"E")
+44 SET REQUEST("Request",NUM,"ClinicSecondaryStopCodeAMIS")=$$GET1^DIQ(40.7,REQDATA(FN,REQUESTIEN_",",8.6,"I"),1)
+45 SET REQUEST("Request",NUM,"ApptType")=REQDATA(FN,REQUESTIEN_",",8.7,"E")
+46 SET REQUEST("Request",NUM,"EnteredByName")=REQDATA(FN,REQUESTIEN_",",9,"E")
+47 SET REQUEST("Request",NUM,"EnteredByIEN")=REQDATA(FN,REQUESTIEN_",",9,"I")
+48 SET REQUEST("Request",NUM,"DateTimeEntered")=$$FMTISO^SDAMUTDT($GET(REQDATA(FN,REQUESTIEN_",",9.5,"I")))
+49 SET REQUEST("Request",NUM,"Priority")=REQDATA(FN,REQUESTIEN_",",10,"E")
+50 SET REQUEST("Request",NUM,"EnrollmentPriorityGroup")=REQDATA(FN,REQUESTIEN_",",10.5,"E")
+51 SET REQUEST("Request",NUM,"ByPatientOrProvider")=REQDATA(FN,REQUESTIEN_",",11,"E")
+52 SET REQUEST("Request",NUM,"ProviderIEN")=REQDATA(FN,REQUESTIEN_",",12,"I")
+53 SET REQUEST("Request",NUM,"ProviderName")=REQDATA(FN,REQUESTIEN_",",12,"E")
+54 SET REQUEST("Request",NUM,"ProviderSecID")=$$GET1^DIQ(200,REQDATA(FN,REQUESTIEN_",",12,"I"),205.1)
+55 SET REQUEST("Request",NUM,"ScheduledDateOfAppt")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",13,"I"))
+56 SET REQUEST("Request",NUM,"DateLinkedApptMade")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",13.1,"I"))
+57 SET REQUEST("Request",NUM,"LinkedApptClinic")=REQDATA(FN,REQUESTIEN_",",13.2,"E")
+58 SET REQUEST("Request",NUM,"LinkedApptInstitutionName")=REQDATA(FN,REQUESTIEN_",",13.3,"E")
+59 SET REQUEST("Request",NUM,"LinkedApptStopCode")=REQDATA(FN,REQUESTIEN_",",13.4,"E")
+60 SET REQUEST("Request",NUM,"LinkedApptCreditStopCode")=REQDATA(FN,REQUESTIEN_",",13.5,"E")
+61 SET REQUEST("Request",NUM,"LinkedApptInstitutionNumber")=REQDATA(FN,REQUESTIEN_",",13.6,"I")
+62 SET REQUEST("Request",NUM,"LinkedApptEnteredBy")=REQDATA(FN,REQUESTIEN_",",13.7,"E")
+63 SET REQUEST("Request",NUM,"LinkedApptStatus")=REQDATA(FN,REQUESTIEN_",",13.8,"E")
+64 SET REQUEST("Request",NUM,"ServiceConnectedPercentage")=REQDATA(FN,REQUESTIEN_",",14,"E")
+65 SET REQUEST("Request",NUM,"PatientIndicatedDate")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",22,"I"))
+66 SET REQUEST("Request",NUM,"Status")=(REQDATA(FN,REQUESTIEN_",",23,"E"))
+67 SET REQUEST("Request",NUM,"MRTCNeeded")=REQDATA(409.85,REQUESTIEN_",",41,"E")
+68 SET REQUEST("Request",NUM,"MRTCDaysBetweenAppts")=REQDATA(409.85,REQUESTIEN_",",42,"E")
+69 SET REQUEST("Request",NUM,"MRTCHowManyNeeded")=REQDATA(409.85,REQUESTIEN_",",43,"E")
+70 SET REQUEST("Request",NUM,"EASTrackingNumber")=REQDATA(FN,REQUESTIEN_",",100,"E")
+71 SET REQUEST("Request",NUM,"DispositionedDate")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",19,"I"))
+72 SET REQUEST("Request",NUM,"DispositionedBy")=REQDATA(FN,REQUESTIEN_",",20,"I")
+73 SET REQUEST("Request",NUM,"DispositionedBy")=REQDATA(FN,REQUESTIEN_",",20,"E")
+74 SET REQUEST("Request",NUM,"DispositionReason")=REQDATA(FN,REQUESTIEN_",",21,"E")
+75 SET REQUEST("Request",NUM,"DispositionIEN")=REQDATA(FN,REQUESTIEN_",",21,"I")
+76 SET REQUEST("Request",NUM,"ServiceConnectedPriority")=REQDATA(FN,REQUESTIEN_",",15,"E")
+77 SET REQUEST("Request",NUM,"PatientStatus")=REQDATA(FN,REQUESTIEN_",",.02,"E")
+78 SET REQUEST("Request",NUM,"ParentRequest")=REQDATA(FN,REQUESTIEN_",",43.8,"I")
+79 SET REQUEST("Request",NUM,"ModalityName")=REQDATA(FN,REQUESTIEN_",",6,"E")
+80 SET REQUEST("Request",NUM,"ModalityCode")=REQDATA(FN,REQUESTIEN_",",6,"I")
+81 SET REQUEST("Request",NUM,"CPRSOrderID")=REQDATA(FN,REQUESTIEN_",",46,"I")
+82 SET REQUEST("Request",NUM,"CPRSTimeSensitive")=REQDATA(FN,REQUESTIEN_",",47,"I")
+83 ;
+84 DO FINISHAPPTREQ^SDESGETAPPTREQ2(.REQUEST,NUM,REQUESTIEN)
+85 ; build recall and consult
+86 DO RECALL^SDESGETREQWRAPPR(.REQUEST,NUM)
+87 DO CONSULT^SDESGETREQWRAPPR(.REQUEST,NUM)
+88 QUIT
+89 ;
BUILDJSON(JSONRETURN,RETURN) ;
+1 NEW JSONERROR
+2 DO ENCODE^XLFJSON("RETURN","JSONRETURN","JSONERROR")
+3 ;
+4 QUIT
+5 ;