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

SDES2ARCLOSE.m

Go to the documentation of this file.
SDES2ARCLOSE  ;ALB/ANU,BLB,LAB,TJB,LAB - SDES2 DISPOSITION APPT REQ; MAR 19,2026
 ;;5.3;Scheduling;**866,873,875,909,929,940**;Aug 13, 1993;Build 5
 ;;Per VHA Directive 6402, this routine should not be modified
 ;
 ; Reference to DUZ^XUP is supported by IA #7487
 ;
 Q
 ; INPUT
 ;
 ; SDCONTEXT("ACHERON AUDIT ID") = Up to 40 Character unique ID number. Ex: 11d9dcc6-c6a2-4785-8031-8261576fca37
 ; SDCONTEXT("USER DUZ") = The DUZ of the user taking action in the calling application.
 ; SDCONTEXT("USER SECID") = The SECID of the user taking action in the calling application.
 ; SDCONTEXT("PATIENT DFN") = The DFN/IEN of the target patient from the calling application.
 ; SDCONTEXT("PATIENT ICN") = The ICN of the target patient from the calling application.
 ; SDINPUT("REQUEST ID") = IEN, Pointer to SDEC APPT REQUEST file.
 ; SDINPUT("DISP") = Disposition.
 ; SDINPUT("DISPDT") = Date Dispositioned in external form (e.g.,CCYY-MM-DD)
 ; SDINPUT("PCMT") = (optional) patient-entered comments from VAOS
 ;
DISPOSITION(JSON,SDCONTEXT,SDINPUT) ; Disposition an Appointment Request
 N SDERRORS,SDRETURN,ARIEN,DISP,DISPDT,PCMT,PARAMETERS
 ;
 ; Validate SDCONTEXT
 ;
 D VALCONTEXT^SDES2VALCONTEXT(.SDERRORS,.SDCONTEXT)
 I $D(SDERRORS) S SDERRORS("ApptReqDisposition",1)="" D BUILDJSON^SDES2JSON(.JSON,.SDERRORS) Q
 I $G(SDCONTEXT("USER DUZ"))'="" N DUZ D DUZ^XUP(SDCONTEXT("USER DUZ"))
 ; Validate PARAMS
 S PARAMETERS=$$VALPARAMS(.SDINPUT,.SDERRORS)
 I $D(SDERRORS) S SDERRORS("ApptReqDisposition",1)="" D BUILDJSON^SDES2JSON(.JSON,.SDERRORS) Q
 ;
 S ARIEN=$P(PARAMETERS,"^"),DISP=$P(PARAMETERS,"^",2),DISPDT=$P(PARAMETERS,"^",3),PCMT=$P(PARAMETERS,"^",4)
 D DISP(.SDRETURN,ARIEN,DISP,DISPDT,PCMT,SDCONTEXT("ACHERON AUDIT ID"),.SDERRORS)
 ;
 I $D(SDERRORS) S SDERRORS("ApptReqDisposition",1)="" D BUILDJSON^SDES2JSON(.JSON,.SDERRORS) Q
 ;
 I '$D(SDRETURN) S SDRETURN("ApptReqDisposition",1)=""
 D BUILDJSON^SDES2JSON(.JSON,.SDRETURN)
 Q
 ;
VALPARAMS(PARAMS,SDERRORS) ; Validate
 N ARIEN,DISP,DISPDT,PCMT
 ;
 ; Validate Request ID
 S ARIEN=$G(PARAMS("REQUEST ID"))
 I $G(ARIEN)="" D ERRLOG^SDESJSON(.SDERRORS,3)
 I $G(ARIEN)'="",'$D(^SDEC(409.85,ARIEN)) D ERRLOG^SDESJSON(.SDERRORS,4)
 ;
 ; Validate Disposition
 S DISP=$G(PARAMS("DISP"))
 I $G(DISP)="" D ERRLOG^SDESJSON(.SDERRORS,42)
 Q:$D(SDERRORS) ""
 ; Re-mapped the Dispositions to their corresponding pointer value
 S:(+DISP=0) DISP=$O(^SDEC(409.853,"B",DISP,""))
 D:$$GET1^DIQ(409.853,DISP,.01)="" ERRLOG^SDESJSON(.SDERRORS,43)
 ;
 ; Validate DATE DISPOSITIONED
 S DISPDT=$G(PARAMS("DISPDT"))
 I $G(DISPDT)'="" S DISPDT=$$ISOTFM^SDAMUTDT(DISPDT) D
 .I DISPDT=-1 D ERRLOG^SDESJSON(.SDERRORS,55)
 I $G(DISPDT)="" D ERRLOG^SDESJSON(.SDERRORS,56)
 ;
 ; validate Patient-Entered comments
 S PCMT=$G(PARAMS("PCMT"))
 S PCMT=$TR($G(PCMT),"^"," ")
 ;
 ; validate request is not already dispositioned
 ;lab removing until ISS is ready I $$GET1^DIQ(409.85,ARIEN,21,"I")'="" D ERRLOG^SDESJSON(.SDERRORS,52,"Request is already dispositioned :"_$$GET1^DIQ(409.85,ARIEN,21,"E")_".")
 Q:$D(SDERRORS) 0
 Q ARIEN_"^"_DISP_"^"_DISPDT_"^"_PCMT
 ;
DISP(SDRETURN,ARIEN,DISP,DISPDT,PCMT,AUDITID,SDERRORS) ;Disposition an appt req
 N ARFDA,ARRET,ARMSG,X,MI,%DT,SDERR,PARENTIEN,SDHL7IN,Y
 S SDERR=0
 S ARFDA=$NA(ARFDA(409.85,ARIEN_","))
 S @ARFDA@(19)=DISPDT
 S @ARFDA@(20)=DUZ
 S @ARFDA@(21)=DISP
 S @ARFDA@(23)="C"
 S @ARFDA@(100)=AUDITID
 D UPDATE^DIE("","ARFDA","ARRET","ARMSG")
 I '$D(ARMSG) D
 .S SDRETURN("ApptReqDisposition","FilingSuccess")=1
 I $D(ARMSG("DIERR")) D
 .S SDERR=1
 .F MI=1:1:$G(ARMSG("DIERR")) D ERRLOG^SDESJSON(.SDERRORS,47,$G(ARMSG("DIERR",MI,"TEXT",1)))
 I '$G(SDERR)&($$GET1^DIQ(409.85,ARIEN,41,"I")=1) D
 . S PARENTIEN=$$GET1^DIQ(409.85,ARIEN,43.8,"I")
 . I PARENTIEN D
 . . D REMOVEMRTCINFO^SDES2MRTCUTIL(PARENTIEN,ARIEN,.SDERRORS)
 . . D UPDATEPARENT^SDES2MRTCUTIL(PARENTIEN,DISP,DISPDT,AUDITID,.SDERRORS)
 I '$G(SDERR) D EDITPCMT(ARIEN,PCMT)
 ;
 ;SEND HL7 TO CPRS IF RTC REQUEST
 ;
 I '$G(SDERR),$P(^SDEC(409.85,ARIEN,0),U,5)="RTC" D
 .I DISP=3!(DISP=9) D ARDISP^SDECHL7(ARIEN,"")
 .I DISP'=3&(DISP'=9) D ARDISP^SDECHL7(ARIEN,1)
 .I $D(^TMP($J,"REJECT",ARIEN)) D
 ..S SDERR=1,X=$G(^TMP(SDHL7IN("ORDER IEN")))
 ..D ERRLOG^SDESJSON(.SDRETURN,47,X)
 Q
 ;
EDITPCMT(ARIEN,COMMENTSFLD60) ; update word processing PATIENT COMMENTS (409.855,60)
 ; ARIEN - (required) IEN to entry in 409.85
 ; COMMENTSFLD60 - (optional) VAOS related patient-entered comments
 N SDFDA,PCMTSARRAY
 S COMMENTSFLD60=$G(COMMENTSFLD60)
 D WP^SDECUTL(.PCMTSARRAY,COMMENTSFLD60)
 D WP^DIE(409.85,ARIEN_",",60,"","PCMTSARRAY")
 Q
 ;