SDES2CRTAPREQ2 ;ALB/TAW - CREATE APPOINTMENT REQUEST ; JUNE 16, 2025
;;5.3;Scheduling;**915**;Aug 13, 1993;Build 2
;;Per VHA Directive 6402, this routine should not be modified
;
;External References
;-------------------
;
Q
; RPC: SDES2 CREATE APPT REQ
;
; SDCONTEXT INPUT
;
;S SDCONTEXT("ACHERON AUDIT ID") = Up to 40 Character unique ID number. Ex: 11d9dcc6-c6a2-4785-8031-8261576fca37
;S SDCONTEXT("USER DUZ") = The DUZ of the user taking action in the calling application.
;S SDCONTEXT("USER SECID") = The SECID of the user taking action in the calling application.
;S SDCONTEXT("PATIENT DFN") = The DFN/IEN of the target patient from the calling application.
;S SDCONTEXT("PATIENT ICN") = The ICN of the target patient from the calling application.
;
; REQUEST INPUT FORMAT
;
;S REQUEST("DFN")="" REQ (PATIENT IEN)
;S REQUEST("APPOINTMENT TYPE")="" REQ - APPOINTMENT TYPE - can be the Name or IEN
;S REQUEST("PATIENT INDICATED DATE")="" REQ (PID DATE IN ISO FORMAT)
;S REQUEST("PRIORITY")="" REQ
;S REQUEST("REQUEST SUB TYPE")="" REQ
;S REQUEST("REQUESTED BY")="" REQ
;S REQUEST("CLINIC IEN")="" OPT/REQ \
;S REQUEST("PRIMARY AMIS")="" OPT/REQ---> Either CLINIC IEN or PRIMARY AMIS/CREDIT PRIMARY AMIS must be defined
;S REQUEST("CREDIT AMIS")="" OPT/REQ /
;S REQUEST("STATION NUMBER")="" OPT/REQ -- > Either STATION NUMBER or INSTITUTION NAME is REQUIRED
;S REQUEST("INSTITUTION NAME")="" OPT/REQ --/
;S REQUEST("CREATE DATE")="" OPT - Defaults to today if not sent
;S REQUEST("PROVIDER IEN")="" OPT (Required if 'REQUESTED BY' is 'PROVIDER')
;S REQUEST("PRIORITY GROUP")="" OPT
;S REQUEST("SERVICE CONNECTED")="" OPT (This is for PRIORITY; 1 OR 0, if passed)
;S REQUEST("SERVICE CONNECTED PERCENTAGE")="" OPT
;S REQUEST("MODALITY")="" OPT
;S REQUEST("PATIENT STATUS")="" OPT
;S REQUEST("VAOS GUID")="" OPT
;S REQUEST("TIME SENSITIVE")="" OPT
;S REQUEST("REQUEST COMMENT")="" OPT
;S REQUEST("PATIENT COMMENT")="" OPT
;S REQUEST("PATIENT PREFERRED START DATE",1)="" OPT
;S REQUEST("PATIENT PREFERRED END DATE",1)="" OPT
;S REQUEST("PATIENT PREFERRED START DATE",2)="" OPT
;S REQUEST("PATIENT PREFERRED END DATE",2)="" OPT
;S REQUEST("PATIENT PREFERRED START DATE",3)="" OPT
;S REQUEST("PATIENT PREFERRED END DATE",3)="" OPT
;S REQUEST("MRTC","NEEDED")="" OPT (YES/NO)
;S REQUEST("MRTC","PARENT REQUEST")="" OPT
;S REQUEST("MRTC","DAYS BETWEEN APPTS")="" OPT
;S REQUEST("MRTC","HOW MANY NEEDED")="" OPT
;S REQUEST("DUPLICATE REASON")="" OPT - The reason a duplicate appointment request is being made
;
CREATEREQUEST(JSONRETURN,SDCONTEXT,REQUEST) ;
N REQUESTIEN,ERRORS,RETURN,INSTITUTIONIEN,FILEDATA,ORIGUSER
;
D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
I $D(ERRORS) S ERRORS("Request",1)="" D BUILDJSON^SDES2JSON(.JSONRETURN,.ERRORS) Q
S ORIGUSER=$S($G(SDCONTEXT("USER DUZ"))'="":SDCONTEXT("USER DUZ"),1:DUZ)
;
M FILEDATA=REQUEST
D VALIDATE^SDES2CRTAPREQ(.REQUEST,.FILEDATA,.INSTITUTIONIEN,.ERRORS)
;
I $D(ERRORS) S ERRORS("Request",1)="" D BUILDJSON^SDES2JSON(.JSONRETURN,.ERRORS) Q
;
S REQUESTIEN=$$BUILDER^SDES2CRTAPREQ(.FILEDATA,INSTITUTIONIEN,ORIGUSER,$G(SDCONTEXT("ACHERON AUDIT ID")))
;
; Call SDES2 GET APPT REQ BY IEN
S REQUEST("REQUEST IEN")=REQUESTIEN
D GETREQBYREQIEN^SDES2GETAPPTREQ(.JSONRETURN,.SDCONTEXT,.REQUEST)
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDES2CRTAPREQ2 4173 printed Aug 26, 2025@23:09:49 Page 2
SDES2CRTAPREQ2 ;ALB/TAW - CREATE APPOINTMENT REQUEST ; JUNE 16, 2025
+1 ;;5.3;Scheduling;**915**;Aug 13, 1993;Build 2
+2 ;;Per VHA Directive 6402, this routine should not be modified
+3 ;
+4 ;External References
+5 ;-------------------
+6 ;
+7 QUIT
+8 ; RPC: SDES2 CREATE APPT REQ
+9 ;
+10 ; SDCONTEXT INPUT
+11 ;
+12 ;S SDCONTEXT("ACHERON AUDIT ID") = Up to 40 Character unique ID number. Ex: 11d9dcc6-c6a2-4785-8031-8261576fca37
+13 ;S SDCONTEXT("USER DUZ") = The DUZ of the user taking action in the calling application.
+14 ;S SDCONTEXT("USER SECID") = The SECID of the user taking action in the calling application.
+15 ;S SDCONTEXT("PATIENT DFN") = The DFN/IEN of the target patient from the calling application.
+16 ;S SDCONTEXT("PATIENT ICN") = The ICN of the target patient from the calling application.
+17 ;
+18 ; REQUEST INPUT FORMAT
+19 ;
+20 ;S REQUEST("DFN")="" REQ (PATIENT IEN)
+21 ;S REQUEST("APPOINTMENT TYPE")="" REQ - APPOINTMENT TYPE - can be the Name or IEN
+22 ;S REQUEST("PATIENT INDICATED DATE")="" REQ (PID DATE IN ISO FORMAT)
+23 ;S REQUEST("PRIORITY")="" REQ
+24 ;S REQUEST("REQUEST SUB TYPE")="" REQ
+25 ;S REQUEST("REQUESTED BY")="" REQ
+26 ;S REQUEST("CLINIC IEN")="" OPT/REQ \
+27 ;S REQUEST("PRIMARY AMIS")="" OPT/REQ---> Either CLINIC IEN or PRIMARY AMIS/CREDIT PRIMARY AMIS must be defined
+28 ;S REQUEST("CREDIT AMIS")="" OPT/REQ /
+29 ;S REQUEST("STATION NUMBER")="" OPT/REQ -- > Either STATION NUMBER or INSTITUTION NAME is REQUIRED
+30 ;S REQUEST("INSTITUTION NAME")="" OPT/REQ --/
+31 ;S REQUEST("CREATE DATE")="" OPT - Defaults to today if not sent
+32 ;S REQUEST("PROVIDER IEN")="" OPT (Required if 'REQUESTED BY' is 'PROVIDER')
+33 ;S REQUEST("PRIORITY GROUP")="" OPT
+34 ;S REQUEST("SERVICE CONNECTED")="" OPT (This is for PRIORITY; 1 OR 0, if passed)
+35 ;S REQUEST("SERVICE CONNECTED PERCENTAGE")="" OPT
+36 ;S REQUEST("MODALITY")="" OPT
+37 ;S REQUEST("PATIENT STATUS")="" OPT
+38 ;S REQUEST("VAOS GUID")="" OPT
+39 ;S REQUEST("TIME SENSITIVE")="" OPT
+40 ;S REQUEST("REQUEST COMMENT")="" OPT
+41 ;S REQUEST("PATIENT COMMENT")="" OPT
+42 ;S REQUEST("PATIENT PREFERRED START DATE",1)="" OPT
+43 ;S REQUEST("PATIENT PREFERRED END DATE",1)="" OPT
+44 ;S REQUEST("PATIENT PREFERRED START DATE",2)="" OPT
+45 ;S REQUEST("PATIENT PREFERRED END DATE",2)="" OPT
+46 ;S REQUEST("PATIENT PREFERRED START DATE",3)="" OPT
+47 ;S REQUEST("PATIENT PREFERRED END DATE",3)="" OPT
+48 ;S REQUEST("MRTC","NEEDED")="" OPT (YES/NO)
+49 ;S REQUEST("MRTC","PARENT REQUEST")="" OPT
+50 ;S REQUEST("MRTC","DAYS BETWEEN APPTS")="" OPT
+51 ;S REQUEST("MRTC","HOW MANY NEEDED")="" OPT
+52 ;S REQUEST("DUPLICATE REASON")="" OPT - The reason a duplicate appointment request is being made
+53 ;
CREATEREQUEST(JSONRETURN,SDCONTEXT,REQUEST) ;
+1 NEW REQUESTIEN,ERRORS,RETURN,INSTITUTIONIEN,FILEDATA,ORIGUSER
+2 ;
+3 DO VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
+4 IF $DATA(ERRORS)
SET ERRORS("Request",1)=""
DO BUILDJSON^SDES2JSON(.JSONRETURN,.ERRORS)
QUIT
+5 SET ORIGUSER=$SELECT($GET(SDCONTEXT("USER DUZ"))'="":SDCONTEXT("USER DUZ"),1:DUZ)
+6 ;
+7 MERGE FILEDATA=REQUEST
+8 DO VALIDATE^SDES2CRTAPREQ(.REQUEST,.FILEDATA,.INSTITUTIONIEN,.ERRORS)
+9 ;
+10 IF $DATA(ERRORS)
SET ERRORS("Request",1)=""
DO BUILDJSON^SDES2JSON(.JSONRETURN,.ERRORS)
QUIT
+11 ;
+12 SET REQUESTIEN=$$BUILDER^SDES2CRTAPREQ(.FILEDATA,INSTITUTIONIEN,ORIGUSER,$GET(SDCONTEXT("ACHERON AUDIT ID")))
+13 ;
+14 ; Call SDES2 GET APPT REQ BY IEN
+15 SET REQUEST("REQUEST IEN")=REQUESTIEN
+16 DO GETREQBYREQIEN^SDES2GETAPPTREQ(.JSONRETURN,.SDCONTEXT,.REQUEST)
+17 QUIT