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

SDES2MRTCUTIL.m

Go to the documentation of this file.
SDES2MRTCUTIL ;ALB/LAB - SDES2 UTILITIES Continued ;JAN 23,2026
 ;;5.3;Scheduling;**929**;Aug 13, 1993;Build 9
 ;;Per VHA Directive 6402, this routine should not be modified
 ;
 Q
 ;
REMOVEMRTCINFO(PARENTIEN,ARIEN,SDERRORS) ;Remove the child info of an MRTC
 N MULTAPPTNUMB,MRTCFDA,FDAERR,DFN,ERRMSG
 D REMOVEMRTCCHILD(PARENTIEN,ARIEN,.SDERRORS) Q:$D(SDERRORS)
 D REMRTCHILDCID(PARENTIEN,ARIEN,.SDERRORS) Q:$D(SDERRORS)
 S MULTAPPTNUMB=$$GET1^DIQ(409.85,ARIEN,43,"I")
 S MULTAPPTNUMB=$S(MULTAPPTNUMB>0:MULTAPPTNUMB-1,1:0)
 S MRTCFDA(409.85,PARENTIEN_",",43)=MULTAPPTNUMB
 D FILE^DIE(,"MRTCFDA","FDAERR") K MRTCFDA
 I $D(FDAERR("DIERR")) D
 . S ERRMSG="Error while updating Mult appt number on parent. "
 . F ERRIDX=1:1:$G(FDAERR("DIERR")) D ERRLOG^SDESJSON(.SDERRORS,52,ERRMSG_$G(FDAERR("DIERR",ERRIDX,"PARAM","IENS"))_" "_$G(FDAERR("DIERR",ERRIDX,"TEXT",1)))
 S DFN=$$GET1^DIQ(409.85,PARENTIEN,.01,"I")
 D UPDATEMRTCSEQNUM(PARENTIEN,DFN,.SDERRORS) ;Resequence Children
 Q
 ;
REMOVEMRTCCHILD(PARENTIEN,ARIEN,SDERRORS) ;Remove CHILD REQUEST
 N SUBIEN,MRTCFDA,FDAERR,ERRIDX,ERRMSG
 S SUBIEN=0
 S SUBIEN=$O(^SDEC(409.85,PARENTIEN,2,"B",ARIEN,SUBIEN))
 I 'SUBIEN D ERRLOG^SDES2JSON(.SDERRORS,52,"Child reference not found in parent record")
 S MRTCFDA(409.852,SUBIEN_","_PARENTIEN_",",.01)="@"
 D FILE^DIE(,"MRTCFDA","FDAERR") K MRTCFDA
 I $D(FDAERR("DIERR")) D
 . S ERRMSG="Error while removing request from parent. "
 . F ERRIDX=1:1:$G(FDAERR("DIERR")) D ERRLOG^SDESJSON(.SDERRORS,52,ERRMSG_$G(FDAERR("DIERR",ERRIDX,"PARAM","IENS"))_" "_$G(FDAERR("DIERR",ERRIDX,"TEXT",1)))
 Q
 ;
REMRTCHILDCID(PARENTIEN,ARIEN,SDERRORS) ;Remove MRTC CALC PREF DATES
 N SUBIEN,MRTCFDA,CIDDATE,FDAERR,ERRMSG
 S CIDDATE=$$GET1^DIQ(409.85,ARIEN,22,"I")
 I $G(CIDDATE)="" D ERRLOG^SDES2JSON(.SDERRORS,408)
 S SUBIEN=0
 S SUBIEN=$O(^SDEC(409.85,PARENTIEN,5,"B",CIDDATE,SUBIEN)) Q:'SUBIEN
 S MRTCFDA(409.851,SUBIEN_","_PARENTIEN_",",.01)="@"
 D FILE^DIE(,"MRTCFDA","FDAERR") K MRTCFDA
 I $D(FDAERR("DIERR")) D
 . S ERRMSG="Error while removing child request's MRTC CALC PREF DATES from parent. "
 . F ERRIDX=1:1:$G(FDAERR("DIERR")) D ERRLOG^SDESJSON(.SDERRORS,52,ERRMSG_$G(FDAERR("DIERR",ERRIDX,"PARAM","IENS"))_" "_$G(FDAERR("DIERR",ERRIDX,"TEXT",1)))
 Q
 ;
UPDATEMRTCSEQNUM(PARENTREQUEST,DFN,SDERRORS) ;Resequence the MRTC child sequence #
 N COUNT,REQUESTIEN,CHILD,MRTCFDA,FDAERR,ERRMSG
 S REQUESTIEN=0,COUNT=0
 F  S REQUESTIEN=$O(^SDEC(409.85,"B",DFN,REQUESTIEN)) Q:'REQUESTIEN  D
 . I $$GET1^DIQ(409.85,REQUESTIEN,43.8,"I")=PARENTREQUEST D
 . . I $$GET1^DIQ(409.85,REQUESTIEN,23,"I")="C",'$$GET1^DIQ(409.85,REQUESTIEN,13,"I") Q
 . . S COUNT=COUNT+1
 . . S CHILD(REQUESTIEN)=COUNT
 S REQUESTIEN=0
 F  S REQUESTIEN=$O(CHILD(REQUESTIEN)) Q:'REQUESTIEN  D
 . S MRTCFDA(409.85,REQUESTIEN_",",43.1)=$G(CHILD(REQUESTIEN))
 . S MRTCFDA(409.85,REQUESTIEN_",",43)=$$GET1^DIQ(409.85,PARENTREQUEST,43,"I")
 . D FILE^DIE(,"MRTCFDA","FDAERR") K MRTCFDA
 . I $D(FDAERR("DIERR")) D
 . . S ERRMSG="Error while resequencing the MRTC children request. "
 . . F ERRIDX=1:1:$G(FDAERR("DIERR")) D ERRLOG^SDESJSON(.SDERRORS,52,ERRMSG_$G(FDAERR("DIERR",ERRIDX,"PARAM","IENS"))_" "_$G(FDAERR("DIERR",ERRIDX,"TEXT",1)))
 Q
 ;
UPDATEPARENT(PARENTREQUEST,DISP,DISPDT,AUDITID,SDERRORS) ;update status of parent if open and all children removed
 N MRTCFDA,FDAERR,ERRMSG
 Q:$$GET1^DIQ(409.85,PARENTREQUEST,23,"I")="C"
 ;if all children are removed from parent disposition parent with same disposition
 I $O(^SDEC(409.85,PARENTREQUEST,2,"B",""))="" D
 . S MRTCFDA(409.85,PARENTREQUEST_",",20)=DUZ
 . S MRTCFDA(409.85,PARENTREQUEST_",",23)="C"
 . S MRTCFDA(409.85,PARENTREQUEST_",",21)=DISP
 . S MRTCFDA(409.85,PARENTREQUEST_",",19)=DISPDT
 . S MRTCFDA(409.85,PARENTREQUEST_",",100)=AUDITID
 . D FILE^DIE(,"MRTCFDA","FDAERR") K MRTCFDA
 . I $D(FDAERR("DIERR")) D
 . . S ERRMSG="Error while updating status of parent. "
 . . F ERRIDX=1:1:$G(FDAERR("DIERR")) D ERRLOG^SDESJSON(.SDERRORS,52,ERRMSG_$G(FDAERR("DIERR",ERRIDX,"PARAM","IENS"))_" "_$G(FDAERR("DIERR",ERRIDX,"TEXT",1)))
 ;if all children are closed, but there are still children close parent with MRTC PARENT CLOSED
 I $O(^SDEC(409.85,PARENTREQUEST,2,"B",""))'="" D
 . N CHILDIEN,FOUND
 . S CHILDIEN="",FOUND=0
 . F  S CHILDIEN=$O(^SDEC(409.85,PARENTREQUEST,2,"B",CHILDIEN)) Q:(CHILDIEN="")!(FOUND)  D
 . . S FOUND=($$GET1^DIQ(409.85,CHILDIEN_",",23,"E")="OPEN")
 . I 'FOUND D
 . . S MRTCFDA(409.85,PARENTREQUEST_",",19)=DISPDT
 . . S MRTCFDA(409.85,PARENTREQUEST_",",20)=DUZ
 . . S MRTCFDA(409.85,PARENTREQUEST_",",21)=$O(^SDEC(409.853,"B","MRTC PARENT CLOSED",""))
 . . S MRTCFDA(409.85,PARENTREQUEST_",",23)="C"
 . . S MRTCFDA(409.85,PARENTREQUEST_",",100)=AUDITID
 . . D FILE^DIE(,"MRTCFDA","FDAERR") K MRTCFDA
 . . I $D(FDAERR("DIERR")) D
 . . . S ERRMSG="Error while updating status of parent. "
 . . . F ERRIDX=1:1:$G(FDAERR("DIERR")) D ERRLOG^SDESJSON(.SDERRORS,52,ERRMSG_$G(FDAERR("DIERR",ERRIDX,"PARAM","IENS"))_" "_$G(FDAERR("DIERR",ERRIDX,"TEXT",1)))
 Q
 ;
REMOVEMRTCAPTIEN(REQUESTIEN,APPTIEN,PARENTIEN,SDERRORS) ;
 N SUBIEN,MRTCFDA,FDAERR,ERRMSG
 S SUBIEN=0
 S SUBIEN=$O(^SDEC(409.85,PARENTIEN,2,"B",REQUESTIEN,SUBIEN)) Q:'SUBIEN
 S MRTCFDA(409.852,SUBIEN_","_PARENTIEN_",",.02)="@"
 D FILE^DIE(,"MRTCFDA","FDAERR") K MRTCFDA
 I $D(FDAERR("DIERR")) D
 . S ERRMSG="Error while removing appointment IEN from the parent request. "
 . F ERRIDX=1:1:$G(FDAERR("DIERR")) D ERRLOG^SDESJSON(.SDERRORS,52,ERRMSG_$G(FDAERR("DIERR",ERRIDX,"PARAM","IENS"))_" "_$G(FDAERR("DIERR",ERRIDX,"TEXT",1)))
 Q
 ;
REOPENREQUEST(REQUESTIEN,SDERRORS) ;reopen parent request 
 N REQFDA,REQUESTERR
 S REQFDA(409.85,REQUESTIEN_",",19)=""
 S REQFDA(409.85,REQUESTIEN_",",20)=""
 S REQFDA(409.85,REQUESTIEN_",",21)=""
 S REQFDA(409.85,REQUESTIEN_",",23)="O"
 D FILE^DIE("","REQFDA","REQUESTERR") K REQFDA
 I $D(REQUESTERR("DIERR")) D
 . S ERRMSG="Error while reopening the parent request. "
 . F ERRIDX=1:1:$G(REQUESTERR("DIERR")) D ERRLOG^SDESJSON(.SDERRORS,52,ERRMSG_$G(REQUESTERR("DIERR",ERRIDX,"PARAM","IENS"))_" "_$G(REQUESTERR("DIERR",ERRIDX,"TEXT",1)))
 Q
 ;
 N REQFDA,REQUESTERR
 Q:$O(^SDEC(409.85,PARENT,2,"B",CHILD,0))
 S REQFDA(409.852,"+1,"_PARENT_",",.01)=CHILD
 D UPDATE^DIE(,"REQFDA",,"REQUESTERR") K REQFDA
 I $D(REQUESTERR("DIERR")) D
 . S ERRMSG="Error while reopening the parent request. "
 . F ERRIDX=1:1:$G(REQUESTERR("DIERR")) D ERRLOG^SDESJSON(.SDERRORS,52,ERRMSG_$G(REQUESTERR("DIERR",ERRIDX,"PARAM","IENS"))_" "_$G(REQUESTERR("DIERR",ERRIDX,"TEXT",1)))
 Q
 ;
 N REQFDA,REQUESTERR
 Q:$O(^SDEC(409.85,PARENT,5,"B",PATIENTINDDATE,0))
 S REQFDA(409.851,"+1,"_PARENT_",",.01)=PATIENTINDDATE
 D UPDATE^DIE(,"REQFDA",,"REQUESTERR") K REQFDA
 I $D(REQUESTERR("DIERR")) D
 . S ERRMSG="Error while reopening the parent request. "
 . F ERRIDX=1:1:$G(REQUESTERR("DIERR")) D ERRLOG^SDESJSON(.SDERRORS,52,ERRMSG_$G(REQUESTERR("DIERR",ERRIDX,"PARAM","IENS"))_" "_$G(REQUESTERR("DIERR",ERRIDX,"TEXT",1)))
 Q
 ;
UPDATEAPPTNUM(PARENTREQUEST,SDERRORS) ;
 N CHILDIEN,CHILDCNT,CHILDARRAY
 S CHILDIEN=0,CHILDCNT=0
 F  S CHILDIEN=$O(^SDEC(409.85,PARENTREQUEST,2,"B",CHILDIEN)) Q:CHILDIEN=""  D
 . S CHILDARRAY(CHILDIEN)=1
 . S CHILDCNT=CHILDCNT+1
 S REQFDA(409.85,PARENTREQUEST_",",43)=CHILDCNT
 D FILE^DIE("","REQFDA","REQUESTERR")
 I $D(REQUESTERR("DIERR")) D
 . S ERRMSG="Error while renumbering the parent request. "
 . F ERRIDX=1:1:$G(REQUESTERR("DIERR")) D ERRLOG^SDESJSON(.SDERRORS,52,ERRMSG_$G(REQUESTERR("DIERR",ERRIDX,"PARAM","IENS"))_" "_$G(REQUESTERR("DIERR",ERRIDX,"TEXT",1)))
 S CHILDIEN=0
 F  S CHILDIEN=$O(CHILDARRAY(CHILDIEN)) Q:CHILDIEN=""  D
 .  S REQFDA(409.85,CHILDIEN_",",43)=CHILDCNT
 . D FILE^DIE("","REQFDA","REQUESTERR")
 . I $D(REQUESTERR("DIERR")) D
 . . S ERRMSG="Error while renumbering the parent request. "
 . . F ERRIDX=1:1:$G(REQUESTERR("DIERR")) D ERRLOG^SDESJSON(.SDERRORS,52,ERRMSG_$G(REQUESTERR("DIERR",ERRIDX,"PARAM","IENS"))_" "_$G(REQUESTERR("DIERR",ERRIDX,"TEXT",1)))
 Q
 ;