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

SDES2CREATEAPPT.m

Go to the documentation of this file.
  1. SDES2CREATEAPPT ;ALB/BLB,LAB/BLB,ANU,TJB,LAB,TJB,ANU,BLB,TJB,BLB,JAS,MCB - SDES2 CREATE APPOINTMENT ; NOV 23,2024
  1. ;;5.3;Scheduling;**866,869,873,875,877,880,881,886,893,895,898**;Aug 13, 1993;Build 5
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. ; Reference to DUZ^XUP is supported by IA #7487
  1. ;
  1. ;---------------------------------------------------------------
  1. ;
  1. ;APPOINTMENT("START DATE TIME")="2024-09-20T10:00-04:00" APPOINTMENT START TIME - (REQUIRED) - ISO FORMAT
  1. ;APPOINTMENT("END DATE TIME")="2024-09-20T10:30-04:00" APPOINTMENT END TIME - (REQUIRED) - ISO FORMAT
  1. ;APPOINTMENT("DFN")=7242620 DFN - (REQUIRED) - PATIENT IEN
  1. ;APPOINTMENT("RESOURCE IEN")=2063 SDEC RESOURCE IEN (REQUIRED)
  1. ;APPOINTMENT("WALKIN")="n" WALKIN - (y/n)
  1. ;APPOINTMENT("PATIENT INDICATED DATE")="2022-08-09" DESIRED DATE/TIME - ISO FORMAT
  1. ;APPOINTMENT("EXTERNAL ID")="THIIA FREE TEXT EXTERNAL ID FIELD" EXTERNAL ID - (FREE TEXT 1-50)
  1. ;APPOINTMENT("REQUEST TYPE")="A|34534" SD REQUEST TYPE (REQUIRED) - REQTYPE|REQUESTIEN
  1. ;APPOINTMENT("PROVIDER IEN")=520881805 PROVIDER IEN
  1. ;APPOINTMENT("CLINIC IEN")=3754 CLINIC IEN (REQUIRED)
  1. ;APPOINTMENT("NOTE")="THIIA NOTE" NOTE - FREE TEXT 1-150
  1. ;APPOINTMENT("APPOINTMENT TYPE")=1 APPOINTMENT TYPE IEN - POINTER TO ^SD(409.1)
  1. ; -------Either APPOINTMENT TYPE IEN or APPOINTMENT TYPE TYPENAME is Required--------
  1. ;APPOINTMENT("APPOINTMENT TYPE TYPENAME")="" APPOINTMENT TYPE TYPENAME - TYPENAME from ^SD(409.1)
  1. ;APPOINTMENT("PATIENT STATUS")="N" PATIENT STATUS - (N/E) N:NEW E:ESTABLISHED
  1. ;APPOINTMENT("APPOINTMENT LENGTH")=30 APPOINTMENT LENGTH (REQUIRED) - IN MINUTES (5-240)
  1. ;APPOINTMENT("SERVICE CONNECTED")="Y" SERVICE CONNECTED - YES/NO
  1. ;APPOINTMENT("SERVICE CONNECTED PERCENTAGE")=50 SERVICE CONNECTED PERCENTAGE - 0-100
  1. ;APPOINTMENT("MRTC")=1 MRTC (1 for YES 0 for NO)
  1. ;APPOINTMENT("MRTC PARENT")=252559 PARENT REQUEST (APPOINTMENT REQUEST IEN)
  1. ;APPOINTMENT("APPOINTMENT REASON")="TEST" APPOINTMENT REASON
  1. ;APPOINTMENT("PATIENT ELIGIBILITY")=2 PATIENT ELIGIBILITY IEN - POINTER TO ^DIC(8
  1. ;APPOINTMENT("OVERBOOK")="O" OVERBOOK (0 for no, 1 for yes)
  1. ;APPOINTMENT("LAB DATE TIME")="2022-08-09T10:00-04:00" LAB DATE/TIME - ISO FORMAT
  1. ;APPOINTMENT("XRAY DATE TIME")="2022-08-09T10:00-04:00" XRAY DATE/TIME - ISO FORMAT
  1. ;APPOINTMENT("EKG DATE TIME")="2022-08-09T10:00-04:00" EKG DATE/TIME - ISO FORMAT
  1. ;APPOINTMENT("PURPOSE")=1 PURPOSE (REQUIRED)- '1' FOR C&P; '2' FOR 10-10; '3' FOR SCHEDULED VISIT; '4' FOR UNSCHED. VISIT
  1. ;APPOINTMENT("COLLATERAL")=1 COLLATERAL - 1 FOR YES
  1. ;APPOINTMENT("SCHEDULE REQUEST TYPE")="N" SCHEDULE REQUEST TYPE (REQUIRED)
  1. ;APPOINTMENT("NEXT AVAILABLE APPOINTMENT")=1 NEXT AVAILABLE APPOINTMENT (REQUIRED)
  1. ;APPOINTMENT("FOLLOWUP")=1 FOLLOWUP - 1 FOR YES 0 FOR NO
  1. ;
  1. ; associated functions live in SDES2APPTUTIL
  1. ;
  1. Q
  1. ;
  1. CREATE(JSON,SDCONTEXT,APPOINTMENT) ;
  1. N APPT,ERRORS,DELETE,APPTIEN,APPTIEN44,VAL,RECALLRETURN,RECALL,ENCOUNTER,APPTMSG
  1. ;
  1. D VALIDATE(.ERRORS,.SDCONTEXT,.APPOINTMENT,.VAL)
  1. I $D(ERRORS) S ERRORS("Appointment","IEN")="" S APPT("Appointment","Message")="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
  1. I $G(SDCONTEXT("USER DUZ"))'="" N DUZ D DUZ^XUP(SDCONTEXT("USER DUZ"))
  1. ;
  1. D CREATE40984(.ERRORS,.DELETE,.APPTIEN,.APPOINTMENT,$P($G(APPOINTMENT("REQUEST TYPE")),"|"),$P($G(APPOINTMENT("REQUEST TYPE")),"|",2),$G(SDCONTEXT("USER DUZ")),$TR($E($G(APPOINTMENT("NOTE")),1,150),"^"," "),$G(SDCONTEXT("ACHERON AUDIT ID")))
  1. D CREATE44(.ERRORS,.APPOINTMENT,.DELETE,.APPTIEN44,$G(SDCONTEXT("USER DUZ")),$G(APPOINTMENT("CLINIC IEN")),$G(APPOINTMENT("START DATE TIME")))
  1. D CREATE2(.ERRORS,.DELETE,.APPOINTMENT,$G(SDCONTEXT("USER DUZ")),$G(APPOINTMENT("CLINIC IEN")),$G(APPOINTMENT("START DATE TIME")),$G(APPOINTMENT("DFN")))
  1. I $D(ERRORS) S ERRORS("Appointment","IEN")="" S APPT("Appointment","Message")="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
  1. ;
  1. I $P($G(APPOINTMENT("REQUEST TYPE")),"|")="A" D APPTREQ^SDES2APPTUTIL(.SDCONTEXT,.APPOINTMENT,APPTIEN,.APPTMSG)
  1. I $P($G(APPOINTMENT("REQUEST TYPE")),"|")="R" D RECALL^SDES2APPTUTIL(.RECALLRETURN,.SDCONTEXT,.RECALL,$P($G(APPOINTMENT("REQUEST TYPE")),"|",2))
  1. I $P($G(APPOINTMENT("REQUEST TYPE")),"|")="C" D CONSULT^SDES2APPTUTIL(.APPOINTMENT,APPTIEN44,$G(SDCONTEXT("USER DUZ")))
  1. ;
  1. D SETMISSIONELIG^SDESMISSIONELG($G(APPTIEN))
  1. ;
  1. D ENCOUNTERS^SDES2APPTUTIL(.APPOINTMENT,.ENCOUNTER)
  1. ;
  1. D MAKE^SDES2APPTUTIL($G(APPOINTMENT("DFN")),$G(APPOINTMENT("START DATE TIME")),$G(APPOINTMENT("CLINIC IEN")))
  1. ;
  1. ;D DECREMENTAVAIL1^SDES2APPTUTIL($G(APPOINTMENT("CLINIC IEN")),$G(APPOINTMENT("START DATE TIME")),$G(APPOINTMENT("APPOINTMENT LENGTH")))
  1. D AVUPDT^SDEC07C(APPOINTMENT("CLINIC IEN"),APPOINTMENT("START DATE TIME"),APPOINTMENT("APPOINTMENT LENGTH")) ;Update Clinic availability;
  1. ;
  1. ;
  1. I $D(ERRORS) S ERRORS("Appointment","IEN")=APPTIEN D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
  1. ;
  1. S APPT("Appointment","IEN")=APPTIEN
  1. S APPT("Appointment","Message")=$G(APPTMSG)
  1. D BUILDJSON^SDES2JSON(.JSON,.APPT)
  1. Q
  1. ;
  1. CREATE40984(ERRORS,DELETE,APPTIEN,APPOINTMENT,REQUESTTYPE,REQUESTIEN,USERID,NOTE,EAS) ;
  1. N FDA,APPTERROR,NEWIEN,APPTERROR,APPTNOTES
  1. ;
  1. S FDA(409.84,"+1,",.01)=$G(APPOINTMENT("START DATE TIME"))
  1. S FDA(409.84,"+1,",.02)=$G(APPOINTMENT("END DATE TIME"))
  1. S FDA(409.84,"+1,",.05)=$G(APPOINTMENT("DFN"))
  1. S FDA(409.84,"+1,",.06)=$G(APPOINTMENT("APPOINTMENT TYPE"))
  1. S FDA(409.84,"+1,",.07)=$G(APPOINTMENT("RESOURCE IEN"))
  1. S FDA(409.84,"+1,",.08)=$S(USERID:USERID,1:DUZ)
  1. S FDA(409.84,"+1,",.09)=$$NOW^XLFDT
  1. S FDA(409.84,"+1,",.13)=$G(APPOINTMENT("WALKIN"))
  1. S FDA(409.84,"+1,",.16)=$G(APPOINTMENT("PROVIDER IEN"))
  1. S FDA(409.84,"+1,",.18)=$G(APPOINTMENT("APPOINTMENT LENGTH"))
  1. S FDA(409.84,"+1,",.2)=$G(APPOINTMENT("PATIENT INDICATED DATE"))
  1. S FDA(409.84,"+1,",.21)=$G(APPOINTMENT("EXTERNAL ID"))
  1. S FDA(409.84,"+1,",.22)=$S(REQUESTTYPE'="":REQUESTIEN_";"_$S(REQUESTTYPE="E":"SDWL(409.3,",REQUESTTYPE="C":"GMR(123,",REQUESTTYPE="R":"SD(403.5,",REQUESTTYPE="A":"SDEC(409.85,",1:""),1:"")
  1. S FDA(409.84,"+1,",.23)=$G(APPOINTMENT("PATIENT STATUS"))
  1. S FDA(409.84,"+1,",100)=EAS
  1. D UPDATE^DIE(,"FDA","NEWIEN","APPTERROR") K FDA,APPTERROR
  1. I $D(APPTERROR) D ERRLOG^SDESJSON(.ERRORS,173) Q
  1. ;
  1. S APPTIEN=$G(NEWIEN(1))
  1. S NOTE=$$CTRL^XMXUTIL1(NOTE)
  1. ;
  1. D STORENOTE^SDES2APPTUTIL(APPTIEN,NOTE,.APPTNOTES)
  1. ;
  1. ; 409.84 NOTE AUDIT multiple
  1. S FDA(409.847,"+1,"_APPTIEN_",",.01)=$$NOW^XLFDT
  1. S FDA(409.847,"+1,"_APPTIEN_",",1)=$S(USERID:USERID,1:DUZ)
  1. S FDA(409.847,"+1,"_APPTIEN_",",2)=NOTE
  1. D UPDATE^DIE("","FDA") K FDA
  1. ;
  1. D STOREREQUESTCOMM^SDES2APPTUTIL(REQUESTIEN)
  1. ;
  1. S DELETE(409.84)=$G(APPTIEN)_","
  1. Q
  1. ;
  1. CREATE44(ERRORS,APPOINTMENT,DELETE,APPTIEN44,USERID,CLINICIEN,STARTDATETIME) ;
  1. N FDA,NEWIEN44001,NEWIEN44003,APPTERROR,IENS
  1. ;
  1. I '$D(^SC($G(CLINICIEN),"S",STARTDATETIME)) D
  1. .S NEWIEN44001(1)=STARTDATETIME
  1. .S FDA(44.001,"+1,"_CLINICIEN_",",.01)=STARTDATETIME
  1. .D UPDATE^DIE(,"FDA","NEWIEN44001","APPTERROR") K FDA,APPTERROR N FDA,APPTERROR
  1. I $D(APPTERROR) D DELETERECORD^SDES2APPTUTIL(.DELETE),ERRLOG^SDESJSON(.ERRORS,173) Q
  1. ;
  1. S IENS=STARTDATETIME_","_CLINICIEN_","
  1. S FDA(44.003,"+1,"_IENS,.01)=$G(APPOINTMENT("DFN"))
  1. S FDA(44.003,"+1,"_IENS,1)=$G(APPOINTMENT("APPOINTMENT LENGTH"))
  1. S FDA(44.003,"+1,"_IENS,3)=$TR($E($G(APPOINTMENT("APPOINTMENT REASON")),1,150),"^"," ")
  1. S FDA(44.003,"+1,"_IENS,30)=$G(APPOINTMENT("PATIENT ELIGIBILITY"))
  1. S FDA(44.003,"+1,"_IENS,9)=$S($G(APPOINTMENT("OVERBOOK"))="O":"O",1:"")
  1. S FDA(44.003,"+1,"_IENS,7)=$S(USERID:USERID,1:DUZ)
  1. S FDA(44.003,"+1,"_IENS,8)=$$NOW^XLFDT
  1. D UPDATE^DIE(,"FDA","NEWIEN44003","APPTERROR") K FDA,APPTERROR
  1. I $D(APPTERROR) D DELETERECORD^SDES2APPTUTIL(.DELETE),ERRLOG^SDESJSON(.ERRORS,173) Q
  1. ;
  1. S DELETE(44.003)=$G(NEWIEN44003(1))_","_STARTDATETIME_","_CLINICIEN_","
  1. S APPTIEN44=$G(NEWIEN44003(1))
  1. Q
  1. ;
  1. CREATE2(ERRORS,DELETE,APPOINTMENT,USERID,CLINICIEN,STARTDATETIME,DFN) ;
  1. N FDA,NEWIEN,APPTERROR,IENS
  1. ;
  1. I $D(^DPT(DFN,"S",STARTDATETIME,0)) D
  1. .D DELETECANRECORD^SDES2APPTUTIL(DFN,STARTDATETIME,CLINICIEN)
  1. ;
  1. S NEWIEN(1)=STARTDATETIME
  1. S IENS="+1,"_DFN_","
  1. S FDA(2.98,IENS,".01")=CLINICIEN
  1. S FDA(2.98,IENS,"3")=$S($G(^DPT(+$G(DFN),.1))'="":"I",1:"")
  1. S FDA(2.98,IENS,"5")=$G(APPOINTMENT("LAB DATE TIME"))
  1. S FDA(2.98,IENS,"6")=$G(APPOINTMENT("XRAY DATE TIME"))
  1. S FDA(2.98,IENS,"7")=$G(APPOINTMENT("EKG DATE TIME"))
  1. S FDA(2.98,IENS,"9")=$G(APPOINTMENT("PURPOSE"))
  1. S FDA(2.98,IENS,"9.5")=$G(APPOINTMENT("APPOINTMENT TYPE"))
  1. S FDA(2.98,IENS,"13")=$G(APPOINTMENT("COLLATERAL"))
  1. S FDA(2.98,IENS,"19")=$S(USERID:USERID,1:DUZ)
  1. S FDA(2.98,IENS,"20")=$$NOW^XLFDT
  1. S FDA(2.98,IENS,"25")=$G(APPOINTMENT("SCHEDULE REQUEST TYPE"))
  1. S FDA(2.98,IENS,"26")=$G(APPOINTMENT("NEXT AVAILABLE APPOINTMENT"))
  1. S FDA(2.98,IENS,"27")=$G(APPOINTMENT("PATIENT INDICATED DATE"))
  1. S FDA(2.98,IENS,"28")=$G(APPOINTMENT("FOLLOWUP"))
  1. ;
  1. L +^DPT(DFN):3
  1. I '$T D ERRLOG^SDESJSON(.ERRORS,187),DELETERECORD^SDES2APPTUTIL(.DELETE) Q
  1. ;
  1. D UPDATE^DIE("","FDA","NEWIEN","APPTERROR") K FDA
  1. ;
  1. L -^DPT(DFN)
  1. I $D(APPTERROR) D DELETERECORD^SDES2APPTUTIL(.DELETE),ERRLOG^SDESJSON(.ERRORS,173) Q
  1. Q
  1. ;
  1. VALIDATE(ERRORS,SDCONTEXT,APPOINTMENT,VAL,BLOCKANDMOVE) ;
  1. ;
  1. D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
  1. I $D(ERRORS) Q
  1. ;
  1. ;
  1. ; =IEN/pointer validation=
  1. ;
  1. D VALFILEIEN^SDES2VALUTIL(.VAL,.ERRORS,44,$G(APPOINTMENT("CLINIC IEN")),1,,18,19)
  1. D VALFILEIEN^SDES2VALUTIL(.VAL,.ERRORS,2,$G(APPOINTMENT("DFN")),1,,1,2)
  1. D VALFILEIEN^SDES2VALUTIL(.VAL,.ERRORS,200,$G(APPOINTMENT("PROVIDER IEN")),,,,54)
  1. D VALFILEIEN^SDES2VALUTIL(.VAL,.ERRORS,409.85,$G(APPOINTMENT("MRTC PARENT")),,,,179)
  1. D VALFILEIEN^SDES2VALUTIL(.VAL,.ERRORS,409.831,$G(APPOINTMENT("RESOURCE IEN")),,,,70)
  1. D VALFILEIEN^SDES2VALUTIL(.VAL,.ERRORS,8,$G(APPOINTMENT("PATIENT ELIGIBILITY")),,,,143)
  1. ;
  1. ;
  1. ; =date validation=
  1. ;
  1. S APPOINTMENT("START DATE TIME")=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPOINTMENT("START DATE TIME")),$G(APPOINTMENT("CLINIC IEN")),1,165,166)
  1. S APPOINTMENT("END DATE TIME")=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPOINTMENT("END DATE TIME")),$G(APPOINTMENT("CLINIC IEN")),1,167,168)
  1. I $G(APPOINTMENT("START DATE TIME"))>$G(APPOINTMENT("END DATE TIME")) D ERRLOG^SDESJSON(.ERRORS,13)
  1. I $G(APPOINTMENT("START DATE TIME"))>$$FMADD^XLFDT($$NOW^XLFDT(),$S($$GET1^DIQ(44,$G(APPOINTMENT("CLINIC IEN")),2002):$$GET1^DIQ(44,$G(APPOINTMENT("CLINIC IEN")),2002),1:390)) D ERRLOG^SDESJSON(.ERRORS,177)
  1. ;
  1. S APPOINTMENT("PATIENT INDICATED DATE")=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPOINTMENT("PATIENT INDICATED DATE")),$G(APPOINTMENT("CLINIC IEN")),,,58)
  1. S APPOINTMENT("LAB DATE TIME")=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPOINTMENT("LAB DATE TIME")),$G(APPOINTMENT("CLINIC IEN")),,,147)
  1. S APPOINTMENT("XRAY DATE TIME")=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPOINTMENT("XRAY DATE TIME")),$G(APPOINTMENT("CLINIC IEN")),,,145)
  1. S APPOINTMENT("EKG DATE TIME")=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,$G(APPOINTMENT("EKG DATE TIME")),$G(APPOINTMENT("CLINIC IEN")),,,146)
  1. ;
  1. ;
  1. ; =general field validation=
  1. ;
  1. D VALFIELD^SDES2VALUTIL(.VAL,.ERRORS,409.85,41,$G(APPOINTMENT("MRTC")))
  1. S APPOINTMENT("MRTC")=$G(VAL(409.85,41,"I"))
  1. ;
  1. D VALFIELD^SDES2VALUTIL(.VAL,.ERRORS,2.98,9,$G(APPOINTMENT("PURPOSE")),1,,149,148)
  1. S APPOINTMENT("PURPOSE")=$G(VAL(2.98,9,"I"))
  1. ;
  1. D VALFIELD^SDES2VALUTIL(.VAL,.ERRORS,2.98,13,$G(APPOINTMENT("COLLATERAL")),,,,150)
  1. S APPOINTMENT("COLLATERAL")=$G(VAL(2.98,13,"I"))
  1. ;
  1. D VALFIELD^SDES2VALUTIL(.VAL,.ERRORS,2.98,25,$G(APPOINTMENT("SCHEDULE REQUEST TYPE")),1,,151,152)
  1. S APPOINTMENT("SCHEDULE REQUEST TYPE")=$G(VAL(2.98,25,"I"))
  1. ;
  1. D VALFIELD^SDES2VALUTIL(.VAL,.ERRORS,2.98,26,$G(APPOINTMENT("NEXT AVAILABLE APPOINTMENT")),1,,154,153)
  1. S APPOINTMENT("NEXT AVAILABLE APPOINTMENT")=$G(VAL(2.98,26,"I"))
  1. ;
  1. D VALFIELD^SDES2VALUTIL(.VAL,.ERRORS,2.98,28,$G(APPOINTMENT("FOLLOWUP")),,,,155)
  1. S APPOINTMENT("FOLLOWUP")=$G(VAL(2.98,28,"I"))
  1. ;
  1. D VALFIELD^SDES2VALUTIL(.VAL,.ERRORS,409.84,.18,$G(APPOINTMENT("APPOINTMENT LENGTH")),1,,115,116)
  1. ;
  1. D VALFIELD^SDES2VALUTIL(.VAL,.ERRORS,44.003,9,$G(APPOINTMENT("OVERBOOK")))
  1. S APPOINTMENT("OVERBOOK")=$G(VAL(44.003,9,"I"))
  1. ;
  1. D VALFIELD^SDES2VALUTIL(.VAL,.ERRORS,409.85,15,$G(APPOINTMENT("SERVICE CONNECTED")))
  1. S APPOINTMENT("SERVICE CONNECTED")=$G(VAL(409.85,15,"I"))
  1. ;
  1. D VALFIELD^SDES2VALUTIL(.VAL,.ERRORS,409.85,14,$G(APPOINTMENT("SERVICE CONNECTED PERCENTAGE")))
  1. ;
  1. D VALFIELD^SDES2VALUTIL(.VAL,.ERRORS,409.84,.23,$G(APPOINTMENT("PATIENT STATUS")))
  1. S APPOINTMENT("PATIENT STATUS")=$G(VAL(409.84,.23,"I"))
  1. ;
  1. D VALFIELD^SDES2VALUTIL(.VAL,.ERRORS,409.84,.13,$G(APPOINTMENT("WALKIN")),,,,178)
  1. S APPOINTMENT("WALKIN")=$G(VAL(409.84,.13,"I"))
  1. ;
  1. ;
  1. I '$G(BLOCKANDMOVE) D
  1. .D REQUESTTYPE^SDES2APPTUTIL(.ERRORS,.APPOINTMENT,$P($G(APPOINTMENT("REQUEST TYPE")),"|"),$P($G(APPOINTMENT("REQUEST TYPE")),"|",2),$G(APPOINTMENT("DFN")))
  1. D GETAPPTTYPE^SDES2APPTUTIL(.ERRORS,.APPOINTMENT,$G(APPOINTMENT("APPOINTMENT TYPE")),$G(APPOINTMENT("APPOINTMENT TYPE NAME")))
  1. D GETPID^SDES2APPTUTIL(.APPOINTMENT,$G(APPOINTMENT("PATIENT INDICATED DATE")),$P($G(APPOINTMENT("REQUEST TYPE")),"|"),$P($G(APPOINTMENT("REQUEST TYPE")),"|",2))
  1. I $D(ERRORS) Q
  1. ;
  1. ;
  1. D GETPROVIDER^SDES2APPTUTIL(.APPOINTMENT,$G(APPOINTMENT("CLINIC IEN")),$G(APPOINTMENT("PROVIDER IEN")),$P($G(APPOINTMENT("REQUEST TYPE")),"|"),$P($G(APPOINTMENT("REQUEST TYPE")),"|",2))
  1. D GETRESOURCE^SDES2APPTUTIL(.ERRORS,.APPOINTMENT,$G(APPOINTMENT("CLINIC IEN")))
  1. I $$ORDERCHECKLOCK^SDES2APPTUTIL(.ERRORS,$G(APPOINTMENT("REQUEST TYPE")),$G(APPOINTMENT("DFN")))
  1. I $$INACTIVE^SDESUTIL($G(APPOINTMENT("CLINIC IEN"))) D ERRLOG^SDESJSON(.ERRORS,19)
  1. I $$APPTIN44EXISTS^SDES2APPTUTIL($G(APPOINTMENT("DFN")),$G(APPOINTMENT("CLINIC IEN")),$G(APPOINTMENT("START DATE TIME"))) D ERRLOG^SDESJSON(.ERRORS,175)
  1. I '$G(BLOCKANDMOVE) D
  1. .I $$APPTINDIFFTZ^SDES2APPTUTIL($G(APPOINTMENT("DFN")),$G(APPOINTMENT("START DATE TIME"))) D ERRLOG^SDES2JSON(.ERRORS,570)
  1. ;
  1. ;
  1. I $G(APPOINTMENT("WALKIN"))="y",$P($G(APPOINTMENT("START DATE TIME")),".")<$P($$NOW^XLFDT(),".")!($P($G(APPOINTMENT("START DATE TIME")),".")>$P($$NOW^XLFDT(),".")) D ERRLOG^SDESJSON(.ERRORS,166)
  1. I $$FMDIFF^XLFDT($G(APPOINTMENT("END DATE TIME")),$G(APPOINTMENT("START DATE TIME")),2)/60'=$G(APPOINTMENT("APPOINTMENT LENGTH")) D ERRLOG^SDESJSON(.ERRORS,116)
  1. I $P($$FMTISO^SDAMUTDT($G(APPOINTMENT("START DATE TIME"))),"T",2)="" D ERRLOG^SDESJSON(.ERRORS,166)
  1. I $P($$FMTISO^SDAMUTDT($G(APPOINTMENT("END DATE TIME"))),"T",2)="" D ERRLOG^SDESJSON(.ERRORS,168)
  1. ;
  1. I APPOINTMENT("MRTC"),'$L($G(APPOINTMENT("MRTC PARENT"))) D ERRLOG^SDESJSON(.ERRORS,536)
  1. I $L($G(APPOINTMENT("MRTC PARENT"))),$$GET1^DIQ(409.85,$G(APPOINTMENT("MRTC PARENT"))_",",.01,"I")'=$G(APPOINTMENT("DFN")) D ERRLOG^SDESJSON(.ERRORS,536)
  1. Q
  1. ;