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

SDES2BLOCKPBSP.m

Go to the documentation of this file.
  1. SDES2BLOCKPBSP ;ALB/BLB - SDES2 BLOCK PBSP CLINIC AVAIL; FEB 27 2024 11:30 AM
  1. ;;5.3;Scheduling;**875**;Aug 13, 1993;Build 25
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. Q
  1. ;
  1. BLOCK(JSON,SDCONTEXT,BLOCK) ;
  1. N ERRORS,PBSPID,STARTDATETIME,ENDDATETIME,CLINICIENTOSKIP,RETURN
  1. ;
  1. D POPULATE(.BLOCK,.PBSPID,.STARTDATETIME,.ENDDATETIME,.CLINICIENTOSKIP)
  1. D VALIDATE(.ERRORS,.SDCONTEXT,$G(PBSPID),$G(STARTDATETIME),$G(ENDDATETIME),$G(CLINICIENTOSKIP))
  1. I $D(ERRORS) S ERRORS("BlockPBSPID")="" D BUILDJSON^SDES2JSON(.JSON,.ERRORS) Q
  1. ;
  1. D BLOCKSLOTS(PBSPID,STARTDATETIME,ENDDATETIME,CLINICIENTOSKIP,.SDCONTEXT)
  1. S RETURN("BlockPBSPID")=1
  1. D BUILDJSON^SDES2JSON(.JSON,.RETURN)
  1. Q
  1. ;
  1. BLOCKSLOTS(PBSPID,STARTDATETIME,ENDDATETIME,CLINICIENTOSKIP,SDCONTEXT) ;
  1. N CLINICIEN,CANCEL,CANCELJSON
  1. ;
  1. S CLINICIEN=0
  1. F S CLINICIEN=$O(^SC("PBSP",PBSPID,CLINICIEN)) Q:'CLINICIEN D
  1. .I CLINICIEN=CLINICIENTOSKIP Q
  1. .S CANCEL("CLINIC IEN")=CLINICIEN
  1. .S CANCEL("FULL PARTIAL FLAG")="P"
  1. .S CANCEL("START DATE TIME")=STARTDATETIME
  1. .S CANCEL("END DATE TIME")=ENDDATETIME
  1. .D CANCEL^SDES2CANCLNAVAIL(.CANCELJSON,.SDCONTEXT,.CANCEL)
  1. Q
  1. ;
  1. APPTEXISTSINSLOT(PBSPID,STARTDATETIME,ENDDATETIME,CLINICIENTOSKIP) ;
  1. N DATETIME,FOUND,SUBIEN,CLINICIEN
  1. ;
  1. S CLINICIEN=0,FOUND=0
  1. F S CLINICIEN=$O(^SC("PBSP",PBSPID,CLINICIEN)) Q:'CLINICIEN D
  1. .I CLINICIEN=CLINICIENTOSKIP Q
  1. .S DATETIME=STARTDATETIME-.0001
  1. .F S DATETIME=$O(^SC(CLINICIEN,"S",DATETIME)) Q:'DATETIME!(FOUND)!(DATETIME>ENDDATETIME) D
  1. ..S SUBIEN=0
  1. ..F S SUBIEN=$O(^SC(CLINICIEN,"S",DATETIME,1,SUBIEN)) Q:'SUBIEN!(FOUND) D
  1. ...I $$GET1^DIQ(44.003,SUBIEN_","_STARTDATETIME_","_CLINICIEN_",",310,"E")'="CANCELLED" D
  1. ....S FOUND=1
  1. Q FOUND
  1. ;
  1. VALIDATE(ERRORS,SDCONTEXT,PBSPID,STARTDATETIME,ENDDATETIME,CLINICIENTOSKIP) ;
  1. D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
  1. I $D(ERRORS) Q
  1. ;
  1. D VALFILEIEN^SDES2VALUTIL(,.ERRORS,44,CLINICIENTOSKIP,1,,18,19)
  1. ;
  1. S STARTDATETIME=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,STARTDATETIME,CLINICIENTOSKIP,1,165,166)
  1. S ENDDATETIME=$$VALISODTTM^SDES2VALISODTTM(.ERRORS,ENDDATETIME,CLINICIENTOSKIP,1,167,168)
  1. ;
  1. I '$L($G(PBSPID)) D ERRLOG^SDESJSON(.ERRORS,557) Q
  1. I '$D(^SC("PBSP",PBSPID)) D ERRLOG^SDESJSON(.ERRORS,556) Q
  1. I $L(PBSPID)>100 D ERRLOG^SDESJSON(.ERRORS,556)
  1. I $D(ERRORS) Q
  1. ;
  1. I $$APPTEXISTSINSLOT(PBSPID,STARTDATETIME,ENDDATETIME,CLINICIENTOSKIP) D ERRLOG^SDESJSON(.ERRORS,558)
  1. Q
  1. ;
  1. POPULATE(BLOCK,PBSPID,STARTDATETIME,ENDDATETIME,CLINICIENTOSKIP) ;
  1. S PBSPID=$G(BLOCK("PBSPID"))
  1. S STARTDATETIME=$G(BLOCK("START DATE TIME"))
  1. S ENDDATETIME=$G(BLOCK("END DATE TIME"))
  1. S CLINICIENTOSKIP=$G(BLOCK("APPOINTMENT IN CLINIC"))
  1. Q
  1. ;