SDES2UTILAREQTMP ;ALB/AGW - SDES2 UTILITY TO REQ GLOBAL ARRAY ; JUL 10,2026
;;5.3;Scheduling;**951**;Aug 13, 1993;Build 5
;;Per VHA Directive 6402, this routine should not be modified
;
; Reference to ^VA(200 in ICR #10060 ;
;
; called by SDES2GETAPPTREQ for SDES2 GET APPT REQ BY TYP VET to set up global array for RESULT
Q
;
GETREQUESTTMP(REQUEST,REQUESTIEN,NUM) ;
N ERR,IENS,FN,REQDATA,CLINSTOPIEN,CLINCREDIEN,DFN,SENSITIVE,CONTACTIEN,PRIOGROUP
S FN=409.85
S IENS=REQUESTIEN_","
D GETS^DIQ(FN,IENS,"**","IE","REQDATA","ERR")
Q:$D(ERR)
; Check the AMIS Stop codes on clinic
S CLINSTOPIEN=$S(REQDATA(FN,REQUESTIEN_",",8.5,"I")'="":REQDATA(FN,REQUESTIEN_",",8.5,"I"),1:$$GET1^DIQ(44,REQDATA(FN,REQUESTIEN_",",8,"I")_",",8,"I"))
S CLINCREDIEN=$S(REQDATA(FN,REQUESTIEN_",",13.5,"I")'="":REQDATA(FN,REQUESTIEN_",",13.5,"I"),1:$$GET1^DIQ(44,REQDATA(FN,REQUESTIEN_",",8,"I")_",",2503,"I"))
;
I $D(^SDEC(409.85,REQUESTIEN,"PATCOM")) D BLDPATCMTSTMP(.REQUEST,REQUESTIEN,NUM)
I '$D(^SDEC(409.85,REQUESTIEN,"PATCOM")) S @REQUEST@("Request",NUM,"PatientComment",1)=""
;
I $D(^SDEC(409.85,REQUESTIEN,"COMAUD")) D BLDCOMMAUDITTMP(.REQUEST,REQUESTIEN,NUM)
I '$D(^SDEC(409.85,REQUESTIEN,"COMAUD")) S @REQUEST@("Request",NUM,"CommentMultiple",1)=""
;
I $D(^SDEC(409.85,REQUESTIEN,8)) D BDCPRSPREREQSTMP(.REQUEST,REQUESTIEN,NUM)
I '$D(^SDEC(409.85,REQUESTIEN,8)) S @REQUEST@("Request",NUM,"CPRSPreRequisites",1)=""
;
I $D(^SDEC(409.85,REQUESTIEN,2)) D BLDMRTCSTMP(.REQUEST,REQUESTIEN,NUM) ;MRTCs
I '$D(^SDEC(409.85,REQUESTIEN,2)) S @REQUEST@("Request",NUM,"MRTC",1)=""
;
D GETCONTACTIEN^SDES2CONTACTS(.CONTACTIEN,REQUESTIEN_";SDEC(409.85,")
D BLDSDECONTMP(.REQUEST,REQUESTIEN,NUM,"A")
I 'CONTACTIEN D SDECONTACT^SDES2GETREQS(.REQUEST,NUM) D
.S @REQUEST@("Request",NUM,"SdecContactNumberOfCalls")=""
.S @REQUEST@("Request",NUM,"SdecContactNumberOfEmailContact")=""
.S @REQUEST@("Request",NUM,"SdecContactNumberOfTextContact")=""
.S @REQUEST@("Request",NUM,"SdecContactNumberOfSecureMessage")=""
.S @REQUEST@("Request",NUM,"SdecContactDateOfLastLetterSent")=""
.S @REQUEST@("Request",NUM,"SdecContactNumberOfLetters")=""
.S @REQUEST@("Request",NUM,"SdecContactNumberOfContacts")=0
.Q
;
S DFN=REQDATA(FN,REQUESTIEN_",",.01,"I")
S PRIOGROUP=$$PRIORITY^DGENA(DFN)
I PRIOGROUP S PRIOGROUP="GROUP "_PRIOGROUP
;
S @REQUEST@("Request",NUM,"Type")="Appt Request"
S @REQUEST@("Request",NUM,"PatientIEN")=DFN
S @REQUEST@("Request",NUM,"PatientICN")=$$GETPATICN^SDESINPUTVALUTL(DFN)
S @REQUEST@("Request",NUM,"PatientName")=REQDATA(FN,REQUESTIEN_",",.01,"E") ;
S @REQUEST@("Request",NUM,"PatientPhone")=$$GET1^DIQ(2,DFN_",",.131,"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,"ChildRequestSequenceNumber")=$$GET1^DIQ(409.85,REQUESTIEN,43.1,"I")
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")=CLINSTOPIEN
S @REQUEST@("Request",NUM,"ClinicStopCodeName")=$$GET1^DIQ(40.7,CLINSTOPIEN_",",.01,"E")
S @REQUEST@("Request",NUM,"ClinicStopCodeAMIS")=$$GET1^DIQ(40.7,CLINSTOPIEN_",",1,"E")
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,"CreditStopCodeIEN")=CLINCREDIEN
S @REQUEST@("Request",NUM,"CreditStopCodeName")=$$GET1^DIQ(40.7,CLINCREDIEN_",",.01,"E")
S @REQUEST@("Request",NUM,"CreditStopCodeAMIS")=$$GET1^DIQ(40.7,CLINCREDIEN_",",1,"E")
S @REQUEST@("Request",NUM,"DisplayClinicAppt")=$$GET1^DIQ(44,REQDATA(FN,REQUESTIEN_",",8,"I")_",",62,"E")
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")=PRIOGROUP
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,"LinkedApptInstitutionNumber")=REQDATA(FN,REQUESTIEN_",",13.3,"I")
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,"LinkedApptStationNumber")=REQDATA(FN,REQUESTIEN_",",13.6,"E")
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,"ParentRequestIEN")=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")
S @REQUEST@("Request",NUM,"PIDChangeAllowed")=$S(+$G(REQDATA(FN,REQUESTIEN_",",49,"I"))=1:1,1:0)
S @REQUEST@("Request",NUM,"PatientLast4")=$$LAST4SSN^SDESINPUTVALUTL(DFN)
S @REQUEST@("Request",NUM,"DuplicateReason")=$G(REQDATA(FN,REQUESTIEN_",",51,"E"))
; sensitive record indicator
D SENSITIVE^SDES2UTIL(.SENSITIVE,DFN,DUZ)
S @REQUEST@("Request",NUM,"SensitiveRecord")=$G(SENSITIVE(1))
; build recall and consult
S @REQUEST@("Request",NUM,"RecallAccessionNumber")=""
S @REQUEST@("Request",NUM,"RecallComment")=""
S @REQUEST@("Request",NUM,"RecallFastingNonFasting")=""
S @REQUEST@("Request",NUM,"RecallProviderIEN")=""
S @REQUEST@("Request",NUM,"RecallProviderName")=""
S @REQUEST@("Request",NUM,"RecallAppointmentLength")=""
S @REQUEST@("Request",NUM,"RecallProviderIndicatedDate")=""
S @REQUEST@("Request",NUM,"RecallDateReminderSent")=""
S @REQUEST@("Request",NUM,"RecallSecondPrint")=""
S @REQUEST@("Request",NUM,"RecallGAFScore")=""
S @REQUEST@("Request",NUM,"RecallSimilarPatientData")=""
S @REQUEST@("Request",NUM,"RecallAppointmentType")=""
S @REQUEST@("Request",NUM,"RecallProviderNewPersonIEN")=""
S @REQUEST@("Request",NUM,"RecallProviderSecID")=""
S @REQUEST@("Request",NUM,"RecallClinicStopCodeIEN")=""
S @REQUEST@("Request",NUM,"RecallClinicStopCodeAMIS")=""
S @REQUEST@("Request",NUM,"RecallClinicStopCodeName")=""
S @REQUEST@("Request",NUM,"RecallClinicSecondaryStopCodeIEN")=""
S @REQUEST@("Request",NUM,"RecallClinicSecondaryStopCodeAMIS")=""
S @REQUEST@("Request",NUM,"RecallClinicSecondaryStopCodeName")=""
S @REQUEST@("Request",NUM,"RecallEnteredBySecID")=""
I '$D(@REQUEST@("Request",NUM,"DuplicateReason")) S @REQUEST@("Request",NUM,"DuplicateReason")=""
I '$D(@REQUEST@("Request",NUM,"EASTrackingNumber")) S @REQUEST@("Request",NUM,"EASTrackingNumber")=""
S @REQUEST@("Request",NUM,"ConsultAssociatedStopCodes",1)=""
S @REQUEST@("Request",NUM,"ConsultRequestType")=""
S @REQUEST@("Request",NUM,"ConsultToService")=""
S @REQUEST@("Request",NUM,"ConsultCovidPriority")=""
S @REQUEST@("Request",NUM,"ConsultDateReleasedFromCPRS")="" ; check
S @REQUEST@("Request",NUM,"ConsultUrgencyOrEarliestDate")=""
S @REQUEST@("Request",NUM,"ConsultServiceRenderedAs")=""
S @REQUEST@("Request",NUM,"ConsultProhibitedClinicFlag")=""
S @REQUEST@("Request",NUM,"ConsultClinicIndicatedDate")=""
S @REQUEST@("Request",NUM,"ConsultCanEditPid")=""
S @REQUEST@("Request",NUM,"CPRSStatus")=""
I '$D(@REQUEST@("Request",NUM,"DuplicateReason")) S @REQUEST@("Request",NUM,"DuplicateReason")=""
I '$D(@REQUEST@("Request",NUM,"EASTrackingNumber")) S @REQUEST@("Request",NUM,"EASTrackingNumber")=""
Q
;
BLDSDECONTMP(REQUEST,REQUESTIEN,NUM,REQUESTTYPE) ;get consult/recall
N CONTACTIEN,SUBIEN,CLINICIEN,CIENS,COUNT,CONTARY,CONTACTYPE,CONTACTS,ERRORS
S COUNT=0,CONTACTIEN=0
S CLINICIEN=$$GET1^DIQ(409.85,REQUESTIEN,8,"I")
S CONTACTIEN=$$GETCONTIEN^SDESCONTACTS(.ERRORS,REQUESTIEN,REQUESTTYPE)
I 'CONTACTIEN S @REQUEST@("Request",NUM,"Contact",1)="" Q
S SUBIEN=$$GET1^DIQ(409.86,CONTACTIEN,2.2,"I")-1
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:($G(CONTACTYPE)="L") @REQUEST@("Request",NUM,"SdecContactDateOfLastLetterSent")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.863,CIENS,.01,"I"),$G(CLINICIEN))
.S:('$D(@REQUEST@("Request",NUM,"SdecContactDateOfLastLetterSent"))) @REQUEST@("Request",NUM,"SdecContactDateOfLastLetterSent")=""
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
;
BLDPATCMTSTMP(REQUEST,REQUESTIEN,NUM) ;
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
;
BLDCOMMAUDITTMP(REQUEST,REQUESTIEN,NUM) ;Comments Audit Multiple (#27)
N SUBIEN,COUNT
S SUBIEN=0,COUNT=0
F S SUBIEN=$O(^SDEC(409.85,REQUESTIEN,"COMAUD",SUBIEN)) Q:'SUBIEN D
.S COUNT=COUNT+1
.S @REQUEST@("Request",NUM,"CommentMultiple",COUNT,"DateCommAdded")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.8527,SUBIEN_","_REQUESTIEN_",",.01,"I"))
.S @REQUEST@("Request",NUM,"CommentMultiple",COUNT,"CommAddedByDUZ")=$$GET1^DIQ(409.8527,SUBIEN_","_REQUESTIEN_",",1,"I")
.S @REQUEST@("Request",NUM,"CommentMultiple",COUNT,"CommAddedByName")=$$GET1^DIQ(409.8527,SUBIEN_","_REQUESTIEN_",",1,"E")
.S @REQUEST@("Request",NUM,"CommentMultiple",COUNT,"Comment")=$$GET1^DIQ(409.8527,SUBIEN_","_REQUESTIEN_",",2,"I")
Q
;
BDCPRSPREREQSTMP(REQUEST,REQUESTIEN,NUM) ;
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
;
BLDMRTCSTMP(REQUEST,REQUESTIEN,NUM) ;
N SUBIEN,COUNT,MIENS,CHILDIEN
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 CHILDIEN=$$GET1^DIQ(409.852,MIENS,.01,"I")
.S @REQUEST@("Request",NUM,"MRTC",COUNT,"ChildRequestIEN")=CHILDIEN
.S @REQUEST@("Request",NUM,"MRTC",COUNT,"LinkedAppointmentIEN")=$$GET1^DIQ(409.852,MIENS,.02,"I")
.S @REQUEST@("Request",NUM,"MRTC",COUNT,"ChildRequestSequenceNumber")=$$GET1^DIQ(409.85,CHILDIEN,43.1,"I")
.S @REQUEST@("Request",NUM,"MRTC",COUNT,"PatientIndicatedDate")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.85,CHILDIEN,22,"I"))
S @REQUEST@("Request",NUM,"MRTCTotal")=COUNT
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDES2UTILAREQTMP 14113 printed Sep 17, 2026@21:41:26 Page 2
SDES2UTILAREQTMP ;ALB/AGW - SDES2 UTILITY TO REQ GLOBAL ARRAY ; JUL 10,2026
+1 ;;5.3;Scheduling;**951**;Aug 13, 1993;Build 5
+2 ;;Per VHA Directive 6402, this routine should not be modified
+3 ;
+4 ; Reference to ^VA(200 in ICR #10060 ;
+5 ;
+6 ; called by SDES2GETAPPTREQ for SDES2 GET APPT REQ BY TYP VET to set up global array for RESULT
+7 QUIT
+8 ;
GETREQUESTTMP(REQUEST,REQUESTIEN,NUM) ;
+1 NEW ERR,IENS,FN,REQDATA,CLINSTOPIEN,CLINCREDIEN,DFN,SENSITIVE,CONTACTIEN,PRIOGROUP
+2 SET FN=409.85
+3 SET IENS=REQUESTIEN_","
+4 DO GETS^DIQ(FN,IENS,"**","IE","REQDATA","ERR")
+5 if $DATA(ERR)
QUIT
+6 ; Check the AMIS Stop codes on clinic
+7 SET CLINSTOPIEN=$SELECT(REQDATA(FN,REQUESTIEN_",",8.5,"I")'="":REQDATA(FN,REQUESTIEN_",",8.5,"I"),1:$$GET1^DIQ(44,REQDATA(FN,REQUESTIEN_",",8,"I")_",",8,"I"))
+8 SET CLINCREDIEN=$SELECT(REQDATA(FN,REQUESTIEN_",",13.5,"I")'="":REQDATA(FN,REQUESTIEN_",",13.5,"I"),1:$$GET1^DIQ(44,REQDATA(FN,REQUESTIEN_",",8,"I")_",",2503,"I"))
+9 ;
+10 IF $DATA(^SDEC(409.85,REQUESTIEN,"PATCOM"))
DO BLDPATCMTSTMP(.REQUEST,REQUESTIEN,NUM)
+11 IF '$DATA(^SDEC(409.85,REQUESTIEN,"PATCOM"))
SET @REQUEST@("Request",NUM,"PatientComment",1)=""
+12 ;
+13 IF $DATA(^SDEC(409.85,REQUESTIEN,"COMAUD"))
DO BLDCOMMAUDITTMP(.REQUEST,REQUESTIEN,NUM)
+14 IF '$DATA(^SDEC(409.85,REQUESTIEN,"COMAUD"))
SET @REQUEST@("Request",NUM,"CommentMultiple",1)=""
+15 ;
+16 IF $DATA(^SDEC(409.85,REQUESTIEN,8))
DO BDCPRSPREREQSTMP(.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 BLDMRTCSTMP(.REQUEST,REQUESTIEN,NUM)
+20 IF '$DATA(^SDEC(409.85,REQUESTIEN,2))
SET @REQUEST@("Request",NUM,"MRTC",1)=""
+21 ;
+22 DO GETCONTACTIEN^SDES2CONTACTS(.CONTACTIEN,REQUESTIEN_";SDEC(409.85,")
+23 DO BLDSDECONTMP(.REQUEST,REQUESTIEN,NUM,"A")
+24 IF 'CONTACTIEN
DO SDECONTACT^SDES2GETREQS(.REQUEST,NUM)
Begin DoDot:1
+25 SET @REQUEST@("Request",NUM,"SdecContactNumberOfCalls")=""
+26 SET @REQUEST@("Request",NUM,"SdecContactNumberOfEmailContact")=""
+27 SET @REQUEST@("Request",NUM,"SdecContactNumberOfTextContact")=""
+28 SET @REQUEST@("Request",NUM,"SdecContactNumberOfSecureMessage")=""
+29 SET @REQUEST@("Request",NUM,"SdecContactDateOfLastLetterSent")=""
+30 SET @REQUEST@("Request",NUM,"SdecContactNumberOfLetters")=""
+31 SET @REQUEST@("Request",NUM,"SdecContactNumberOfContacts")=0
+32 QUIT
End DoDot:1
+33 ;
+34 SET DFN=REQDATA(FN,REQUESTIEN_",",.01,"I")
+35 SET PRIOGROUP=$$PRIORITY^DGENA(DFN)
+36 IF PRIOGROUP
SET PRIOGROUP="GROUP "_PRIOGROUP
+37 ;
+38 SET @REQUEST@("Request",NUM,"Type")="Appt Request"
+39 SET @REQUEST@("Request",NUM,"PatientIEN")=DFN
+40 SET @REQUEST@("Request",NUM,"PatientICN")=$$GETPATICN^SDESINPUTVALUTL(DFN)
+41 ;
SET @REQUEST@("Request",NUM,"PatientName")=REQDATA(FN,REQUESTIEN_",",.01,"E")
+42 SET @REQUEST@("Request",NUM,"PatientPhone")=$$GET1^DIQ(2,DFN_",",.131,"E")
+43 SET @REQUEST@("Request",NUM,"RequestIEN")=REQUESTIEN
+44 SET @REQUEST@("Request",NUM,"RequestComments")=REQDATA(FN,REQUESTIEN_",",25,"E")
+45 SET @REQUEST@("Request",NUM,"CreateDate")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",1,"I"))
+46 SET @REQUEST@("Request",NUM,"InstitutionIEN")=REQDATA(FN,REQUESTIEN_",",2,"I")
+47 SET @REQUEST@("Request",NUM,"InstitutionName")=REQDATA(FN,REQUESTIEN_",",2,"E")
+48 SET @REQUEST@("Request",NUM,"InstitutionNumber")=$$GET1^DIQ(4,REQDATA(FN,REQUESTIEN_",",2,"I"),99)
+49 SET @REQUEST@("Request",NUM,"RequestSubType")=REQDATA(FN,REQUESTIEN_",",4,"E")
+50 SET @REQUEST@("Request",NUM,"ChildRequestSequenceNumber")=$$GET1^DIQ(409.85,REQUESTIEN,43.1,"I")
+51 SET @REQUEST@("Request",NUM,"ClinicIEN")=REQDATA(FN,REQUESTIEN_",",8,"I")
+52 SET @REQUEST@("Request",NUM,"ClinicName")=REQDATA(FN,REQUESTIEN_",",8,"E")
+53 SET @REQUEST@("Request",NUM,"ClinicStopCodeIEN")=CLINSTOPIEN
+54 SET @REQUEST@("Request",NUM,"ClinicStopCodeName")=$$GET1^DIQ(40.7,CLINSTOPIEN_",",.01,"E")
+55 SET @REQUEST@("Request",NUM,"ClinicStopCodeAMIS")=$$GET1^DIQ(40.7,CLINSTOPIEN_",",1,"E")
+56 SET @REQUEST@("Request",NUM,"ClinicSecondaryStopCodeIEN")=REQDATA(FN,REQUESTIEN_",",8.6,"I")
+57 SET @REQUEST@("Request",NUM,"ClinicSecondaryStopCodeName")=REQDATA(FN,REQUESTIEN_",",8.6,"E")
+58 SET @REQUEST@("Request",NUM,"ClinicSecondaryStopCodeAMIS")=$$GET1^DIQ(40.7,REQDATA(FN,REQUESTIEN_",",8.6,"I"),1)
+59 SET @REQUEST@("Request",NUM,"CreditStopCodeIEN")=CLINCREDIEN
+60 SET @REQUEST@("Request",NUM,"CreditStopCodeName")=$$GET1^DIQ(40.7,CLINCREDIEN_",",.01,"E")
+61 SET @REQUEST@("Request",NUM,"CreditStopCodeAMIS")=$$GET1^DIQ(40.7,CLINCREDIEN_",",1,"E")
+62 SET @REQUEST@("Request",NUM,"DisplayClinicAppt")=$$GET1^DIQ(44,REQDATA(FN,REQUESTIEN_",",8,"I")_",",62,"E")
+63 SET @REQUEST@("Request",NUM,"ApptType")=REQDATA(FN,REQUESTIEN_",",8.7,"E")
+64 SET @REQUEST@("Request",NUM,"EnteredByName")=REQDATA(FN,REQUESTIEN_",",9,"E")
+65 SET @REQUEST@("Request",NUM,"EnteredByIEN")=REQDATA(FN,REQUESTIEN_",",9,"I")
+66 SET @REQUEST@("Request",NUM,"DateTimeEntered")=$$FMTISO^SDAMUTDT($GET(REQDATA(FN,REQUESTIEN_",",9.5,"I")))
+67 SET @REQUEST@("Request",NUM,"Priority")=REQDATA(FN,REQUESTIEN_",",10,"E")
+68 SET @REQUEST@("Request",NUM,"EnrollmentPriorityGroup")=PRIOGROUP
+69 SET @REQUEST@("Request",NUM,"ByPatientOrProvider")=REQDATA(FN,REQUESTIEN_",",11,"E")
+70 SET @REQUEST@("Request",NUM,"ProviderIEN")=REQDATA(FN,REQUESTIEN_",",12,"I")
+71 SET @REQUEST@("Request",NUM,"ProviderName")=REQDATA(FN,REQUESTIEN_",",12,"E")
+72 SET @REQUEST@("Request",NUM,"ProviderSecID")=$$GET1^DIQ(200,REQDATA(FN,REQUESTIEN_",",12,"I"),205.1)
+73 SET @REQUEST@("Request",NUM,"ScheduledDateOfAppt")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",13,"I"))
+74 SET @REQUEST@("Request",NUM,"DateLinkedApptMade")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",13.1,"I"))
+75 SET @REQUEST@("Request",NUM,"LinkedApptClinic")=REQDATA(FN,REQUESTIEN_",",13.2,"E")
+76 SET @REQUEST@("Request",NUM,"LinkedApptInstitutionName")=REQDATA(FN,REQUESTIEN_",",13.3,"E")
+77 SET @REQUEST@("Request",NUM,"LinkedApptInstitutionNumber")=REQDATA(FN,REQUESTIEN_",",13.3,"I")
+78 SET @REQUEST@("Request",NUM,"LinkedApptStopCode")=REQDATA(FN,REQUESTIEN_",",13.4,"E")
+79 SET @REQUEST@("Request",NUM,"LinkedApptCreditStopCode")=REQDATA(FN,REQUESTIEN_",",13.5,"E")
+80 SET @REQUEST@("Request",NUM,"LinkedApptStationNumber")=REQDATA(FN,REQUESTIEN_",",13.6,"E")
+81 SET @REQUEST@("Request",NUM,"LinkedApptEnteredBy")=REQDATA(FN,REQUESTIEN_",",13.7,"E")
+82 SET @REQUEST@("Request",NUM,"LinkedApptStatus")=REQDATA(FN,REQUESTIEN_",",13.8,"E")
+83 SET @REQUEST@("Request",NUM,"ServiceConnectedPercentage")=REQDATA(FN,REQUESTIEN_",",14,"E")
+84 SET @REQUEST@("Request",NUM,"PatientIndicatedDate")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",22,"I"))
+85 SET @REQUEST@("Request",NUM,"Status")=(REQDATA(FN,REQUESTIEN_",",23,"E"))
+86 SET @REQUEST@("Request",NUM,"MRTCNeeded")=REQDATA(409.85,REQUESTIEN_",",41,"E")
+87 SET @REQUEST@("Request",NUM,"MRTCDaysBetweenAppts")=REQDATA(409.85,REQUESTIEN_",",42,"E")
+88 SET @REQUEST@("Request",NUM,"MRTCHowManyNeeded")=REQDATA(409.85,REQUESTIEN_",",43,"E")
+89 SET @REQUEST@("Request",NUM,"EASTrackingNumber")=REQDATA(FN,REQUESTIEN_",",100,"E")
+90 SET @REQUEST@("Request",NUM,"DispositionedDate")=$$FMTISO^SDAMUTDT(REQDATA(FN,REQUESTIEN_",",19,"I"))
+91 SET @REQUEST@("Request",NUM,"DispositionedBy")=REQDATA(FN,REQUESTIEN_",",20,"I")
+92 SET @REQUEST@("Request",NUM,"DispositionedBy")=REQDATA(FN,REQUESTIEN_",",20,"E")
+93 SET @REQUEST@("Request",NUM,"DispositionReason")=REQDATA(FN,REQUESTIEN_",",21,"E")
+94 SET @REQUEST@("Request",NUM,"DispositionIEN")=REQDATA(FN,REQUESTIEN_",",21,"I")
+95 SET @REQUEST@("Request",NUM,"ServiceConnectedPriority")=REQDATA(FN,REQUESTIEN_",",15,"E")
+96 SET @REQUEST@("Request",NUM,"PatientStatus")=REQDATA(FN,REQUESTIEN_",",.02,"E")
+97 SET @REQUEST@("Request",NUM,"ParentRequestIEN")=REQDATA(FN,REQUESTIEN_",",43.8,"I")
+98 SET @REQUEST@("Request",NUM,"ModalityName")=REQDATA(FN,REQUESTIEN_",",6,"E")
+99 SET @REQUEST@("Request",NUM,"ModalityCode")=REQDATA(FN,REQUESTIEN_",",6,"I")
+100 SET @REQUEST@("Request",NUM,"CPRSOrderID")=REQDATA(FN,REQUESTIEN_",",46,"I")
+101 SET @REQUEST@("Request",NUM,"CPRSTimeSensitive")=REQDATA(FN,REQUESTIEN_",",47,"I")
+102 SET @REQUEST@("Request",NUM,"PIDChangeAllowed")=$SELECT(+$GET(REQDATA(FN,REQUESTIEN_",",49,"I"))=1:1,1:0)
+103 SET @REQUEST@("Request",NUM,"PatientLast4")=$$LAST4SSN^SDESINPUTVALUTL(DFN)
+104 SET @REQUEST@("Request",NUM,"DuplicateReason")=$GET(REQDATA(FN,REQUESTIEN_",",51,"E"))
+105 ; sensitive record indicator
+106 DO SENSITIVE^SDES2UTIL(.SENSITIVE,DFN,DUZ)
+107 SET @REQUEST@("Request",NUM,"SensitiveRecord")=$GET(SENSITIVE(1))
+108 ; build recall and consult
+109 SET @REQUEST@("Request",NUM,"RecallAccessionNumber")=""
+110 SET @REQUEST@("Request",NUM,"RecallComment")=""
+111 SET @REQUEST@("Request",NUM,"RecallFastingNonFasting")=""
+112 SET @REQUEST@("Request",NUM,"RecallProviderIEN")=""
+113 SET @REQUEST@("Request",NUM,"RecallProviderName")=""
+114 SET @REQUEST@("Request",NUM,"RecallAppointmentLength")=""
+115 SET @REQUEST@("Request",NUM,"RecallProviderIndicatedDate")=""
+116 SET @REQUEST@("Request",NUM,"RecallDateReminderSent")=""
+117 SET @REQUEST@("Request",NUM,"RecallSecondPrint")=""
+118 SET @REQUEST@("Request",NUM,"RecallGAFScore")=""
+119 SET @REQUEST@("Request",NUM,"RecallSimilarPatientData")=""
+120 SET @REQUEST@("Request",NUM,"RecallAppointmentType")=""
+121 SET @REQUEST@("Request",NUM,"RecallProviderNewPersonIEN")=""
+122 SET @REQUEST@("Request",NUM,"RecallProviderSecID")=""
+123 SET @REQUEST@("Request",NUM,"RecallClinicStopCodeIEN")=""
+124 SET @REQUEST@("Request",NUM,"RecallClinicStopCodeAMIS")=""
+125 SET @REQUEST@("Request",NUM,"RecallClinicStopCodeName")=""
+126 SET @REQUEST@("Request",NUM,"RecallClinicSecondaryStopCodeIEN")=""
+127 SET @REQUEST@("Request",NUM,"RecallClinicSecondaryStopCodeAMIS")=""
+128 SET @REQUEST@("Request",NUM,"RecallClinicSecondaryStopCodeName")=""
+129 SET @REQUEST@("Request",NUM,"RecallEnteredBySecID")=""
+130 IF '$DATA(@REQUEST@("Request",NUM,"DuplicateReason"))
SET @REQUEST@("Request",NUM,"DuplicateReason")=""
+131 IF '$DATA(@REQUEST@("Request",NUM,"EASTrackingNumber"))
SET @REQUEST@("Request",NUM,"EASTrackingNumber")=""
+132 SET @REQUEST@("Request",NUM,"ConsultAssociatedStopCodes",1)=""
+133 SET @REQUEST@("Request",NUM,"ConsultRequestType")=""
+134 SET @REQUEST@("Request",NUM,"ConsultToService")=""
+135 SET @REQUEST@("Request",NUM,"ConsultCovidPriority")=""
+136 ; check
SET @REQUEST@("Request",NUM,"ConsultDateReleasedFromCPRS")=""
+137 SET @REQUEST@("Request",NUM,"ConsultUrgencyOrEarliestDate")=""
+138 SET @REQUEST@("Request",NUM,"ConsultServiceRenderedAs")=""
+139 SET @REQUEST@("Request",NUM,"ConsultProhibitedClinicFlag")=""
+140 SET @REQUEST@("Request",NUM,"ConsultClinicIndicatedDate")=""
+141 SET @REQUEST@("Request",NUM,"ConsultCanEditPid")=""
+142 SET @REQUEST@("Request",NUM,"CPRSStatus")=""
+143 IF '$DATA(@REQUEST@("Request",NUM,"DuplicateReason"))
SET @REQUEST@("Request",NUM,"DuplicateReason")=""
+144 IF '$DATA(@REQUEST@("Request",NUM,"EASTrackingNumber"))
SET @REQUEST@("Request",NUM,"EASTrackingNumber")=""
+145 QUIT
+146 ;
BLDSDECONTMP(REQUEST,REQUESTIEN,NUM,REQUESTTYPE) ;get consult/recall
+1 NEW CONTACTIEN,SUBIEN,CLINICIEN,CIENS,COUNT,CONTARY,CONTACTYPE,CONTACTS,ERRORS
+2 SET COUNT=0
SET CONTACTIEN=0
+3 SET CLINICIEN=$$GET1^DIQ(409.85,REQUESTIEN,8,"I")
+4 SET CONTACTIEN=$$GETCONTIEN^SDESCONTACTS(.ERRORS,REQUESTIEN,REQUESTTYPE)
+5 IF 'CONTACTIEN
SET @REQUEST@("Request",NUM,"Contact",1)=""
QUIT
+6 SET SUBIEN=$$GET1^DIQ(409.86,CONTACTIEN,2.2,"I")-1
+7 FOR
SET SUBIEN=$ORDER(^SDEC(409.86,CONTACTIEN,1,SUBIEN))
if 'SUBIEN
QUIT
Begin DoDot:1
+8 SET CIENS=SUBIEN_","_CONTACTIEN_","
+9 SET CONTACTYPE=$$GET1^DIQ(409.863,CIENS,1,"I")
+10 IF $LENGTH($GET(CONTACTYPE))
Begin DoDot:2
+11 SET CONTARY(CONTACTYPE)=$GET(CONTARY(CONTACTYPE))+1
+12 SET COUNT=COUNT+1
+13 SET @REQUEST@("Request",NUM,"SdecContactNumberOfCalls")=$GET(CONTARY("C"))
+14 SET @REQUEST@("Request",NUM,"SdecContactNumberOfEmailContact")=$GET(CONTARY("E"))
+15 SET @REQUEST@("Request",NUM,"SdecContactNumberOfTextContact")=$GET(CONTARY("T"))
+16 SET @REQUEST@("Request",NUM,"SdecContactNumberOfSecureMessage")=$GET(CONTARY("S"))
+17 SET @REQUEST@("Request",NUM,"SdecContactNumberOfLetters")=$GET(CONTARY("L"))
+18 if ($GET(CONTACTYPE)="L")
SET @REQUEST@("Request",NUM,"SdecContactDateOfLastLetterSent")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.863,CIENS,.01,"I"),$GET(CLINICIEN))
End DoDot:2
+19 if ('$DATA(@REQUEST@("Request",NUM,"SdecContactDateOfLastLetterSent")))
SET @REQUEST@("Request",NUM,"SdecContactDateOfLastLetterSent")=""
End DoDot:1
+20 SET @REQUEST@("Request",NUM,"SdecContactNumberOfContacts")=COUNT
+21 DO BLDCONTACT^SDESCONTACTS(.CONTACTS,CONTACTIEN)
+22 DO DISPMULT^SDESCONTACTS(.CONTACTS,CONTACTIEN)
+23 IF $DATA(CONTACTS)
MERGE @REQUEST@("Request",NUM)=CONTACTS
QUIT
+24 IF '$DATA(CONTACTS)
SET @REQUEST@("Request",NUM,"Contact",1)=""
+25 QUIT
+26 ;
BLDPATCMTSTMP(REQUEST,REQUESTIEN,NUM) ;
+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 ;
BLDCOMMAUDITTMP(REQUEST,REQUESTIEN,NUM) ;Comments Audit Multiple (#27)
+1 NEW SUBIEN,COUNT
+2 SET SUBIEN=0
SET COUNT=0
+3 FOR
SET SUBIEN=$ORDER(^SDEC(409.85,REQUESTIEN,"COMAUD",SUBIEN))
if 'SUBIEN
QUIT
Begin DoDot:1
+4 SET COUNT=COUNT+1
+5 SET @REQUEST@("Request",NUM,"CommentMultiple",COUNT,"DateCommAdded")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.8527,SUBIEN_","_REQUESTIEN_",",.01,"I"))
+6 SET @REQUEST@("Request",NUM,"CommentMultiple",COUNT,"CommAddedByDUZ")=$$GET1^DIQ(409.8527,SUBIEN_","_REQUESTIEN_",",1,"I")
+7 SET @REQUEST@("Request",NUM,"CommentMultiple",COUNT,"CommAddedByName")=$$GET1^DIQ(409.8527,SUBIEN_","_REQUESTIEN_",",1,"E")
+8 SET @REQUEST@("Request",NUM,"CommentMultiple",COUNT,"Comment")=$$GET1^DIQ(409.8527,SUBIEN_","_REQUESTIEN_",",2,"I")
End DoDot:1
+9 QUIT
+10 ;
BDCPRSPREREQSTMP(REQUEST,REQUESTIEN,NUM) ;
+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 ;
BLDMRTCSTMP(REQUEST,REQUESTIEN,NUM) ;
+1 NEW SUBIEN,COUNT,MIENS,CHILDIEN
+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 CHILDIEN=$$GET1^DIQ(409.852,MIENS,.01,"I")
+7 SET @REQUEST@("Request",NUM,"MRTC",COUNT,"ChildRequestIEN")=CHILDIEN
+8 SET @REQUEST@("Request",NUM,"MRTC",COUNT,"LinkedAppointmentIEN")=$$GET1^DIQ(409.852,MIENS,.02,"I")
+9 SET @REQUEST@("Request",NUM,"MRTC",COUNT,"ChildRequestSequenceNumber")=$$GET1^DIQ(409.85,CHILDIEN,43.1,"I")
+10 SET @REQUEST@("Request",NUM,"MRTC",COUNT,"PatientIndicatedDate")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.85,CHILDIEN,22,"I"))
End DoDot:1
+11 SET @REQUEST@("Request",NUM,"MRTCTotal")=COUNT
+12 QUIT