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

SDESCHECKINSTEP.m

Go to the documentation of this file.
  1. SDESCHECKINSTEP ;ALB/LAB - SDES RPC Clone of SDESCKNSTEP ;Jan 28, 2022
  1. ;;5.3;Scheduling;**816**;Aug 13, 1993;Build 3
  1. ;;Per VHA Directive 6402, this routine should not be modified;
  1. Q
  1. ;
  1. GETAPPTCKNSTEPS(SDECY,IEN,EAS) ; Get a list of checkin statuses associated with an appointment IEN
  1. N SDHASERR,SDCHECKIN
  1. ;
  1. D VALIDATEAPPTIEN(.SDHASERR,$G(IEN))
  1. D VALIDATEAS(.SDHASERR,.EAS)
  1. I '$D(SDHASERR) D GETCKNLIST(.SDCHECKIN,IEN,EAS)
  1. I '$D(SDHASERR),'$D(SDCHECKIN("ApptCheckInSteps")) D ERRLOG^SDESJSON(.SDHASERR,33)
  1. I $D(SDHASERR) D
  1. . S SDCHECKIN("ApptCheckInSteps",1)=""
  1. . M SDCHECKIN=SDHASERR
  1. D BUILDJSON(.SDECY,.SDCHECKIN)
  1. Q
  1. ;
  1. GETAPPTCKNSTEP(SDECY,IEN,STATUS,EAS) ; Get check-in status associated appointment IEN and passed in status
  1. N SDCHECKIN,SIEN,STATPOINTER,STAT,DATETIME,SDHASERR
  1. D VALIDATEAPPTIEN(.SDHASERR,$G(IEN))
  1. D VALIDATEAS(.SDHASERR,.EAS)
  1. D VALIDATESTATUS(.SDHASERR,$G(STATUS))
  1. I '$D(SDHASERR) D
  1. . D GETAPPTCHECKIN(.SDCHECKIN,.IEN,STATUS)
  1. . I '$D(SDCHECKIN("ApptCheckInSteps")) D ERRLOG^SDESJSON(.SDHASERR,30) ;no status match found, will not pass back status
  1. I $D(SDHASERR) D
  1. . S SDCHECKIN("ApptCheckInSteps",1)=""
  1. . M SDCHECKIN=SDHASERR
  1. D BUILDJSON(.SDECY,.SDCHECKIN)
  1. Q
  1. ;
  1. GETAPPTCHECKIN(SDCHECKIN,IEN,STATUS) ;get appointment check in
  1. N SIEN,STATPOINTER,STAT,DATETIME
  1. S SIEN=0
  1. F S SIEN=$O(^SDEC(409.84,IEN,3,SIEN)) Q:'SIEN D
  1. .S STATPOINTER=$$GET1^DIQ(409.843,SIEN_","_IEN_",",.01,"I")
  1. .I STATPOINTER'=STATUS Q ; no match
  1. .S STAT=$$GET1^DIQ(409.842,STATPOINTER,.01,"E")
  1. .S DATETIME=$$GET1^DIQ(409.843,SIEN_","_IEN_",",1,"I")
  1. .S DATETIME=$$FMTISO^SDAMUTDT(DATETIME)
  1. .S EAS=$$GET1^DIQ(409.84,IEN,100,"E")
  1. .D CKNBUILDER(.SDCHECKIN,STATPOINTER,STAT,DATETIME,"GETAPPTCKNSTEP")
  1. Q
  1. ;
  1. VALIDATESTATUS(SDERR,STATUS) ;validate the status sent in
  1. I STATUS="" D ERRLOG^SDESJSON(.SDERR,38)
  1. Q
  1. ;
  1. BUILDJSON(APPTLISTJSON,APPTLISTARRAY) ;Convert data to JSON
  1. N JSONERR
  1. S JSONERR=""
  1. D ENCODE^SDESJSON(.APPTLISTARRAY,.APPTLISTJSON,.JSONERR)
  1. Q
  1. ;
  1. GETCKNLIST(SDCHECKIN,IEN,EAS) ;get check in step
  1. N SIEN,STATPOINTER,STAT,DATETIME,NUM
  1. S SIEN=0,NUM=0
  1. F S SIEN=$O(^SDEC(409.84,IEN,3,SIEN)) Q:'SIEN D
  1. .S NUM=NUM+1
  1. .S STATPOINTER=$$GET1^DIQ(409.843,SIEN_","_IEN_",",.01,"I")
  1. .S STAT=$$GET1^DIQ(409.842,STATPOINTER,.01,"E")
  1. .S DATETIME=$$GET1^DIQ(409.843,SIEN_","_IEN_",",1,"I")
  1. .S:DATETIME'="" DATETIME=$$FMTISO^SDAMUTDT(DATETIME)
  1. .S EAS=$$GET1^DIQ(409.84,IEN,100,"E")
  1. .D CKNBUILDER(.SDCHECKIN,STATPOINTER,STAT,DATETIME,"GETAPPTCKNSTEPS")
  1. Q
  1. ;
  1. VALIDATEAPPTIEN(SDERR,IEN) ;validate appointment IEN
  1. ; Validate IEN
  1. I IEN="" D ERRLOG^SDESJSON(.SDERR,14)
  1. I IEN'="",'$D(^SDEC(409.84,IEN,0)) D ERRLOG^SDESJSON(.SDERR,15)
  1. Q
  1. VALIDATEAS(SDERR,EAS) ;validate EAS
  1. S EAS=$G(EAS)
  1. I $L($G(EAS)) S EAS=$$EASVALIDATE^SDESUTIL(EAS)
  1. I EAS=-1 D ERRLOG^SDESJSON(.SDERR,142)
  1. Q
  1. ;
  1. CKNBUILDER(SDCHECKIN,IEN,STATUS,DATETIME,TAG) ;build record
  1. ;single appt check-in step
  1. I $G(TAG)="GETAPPTCKNSTEP" D
  1. .S SDCHECKIN("ApptCheckInSteps","IEN")=$G(IEN)
  1. .S SDCHECKIN("ApptCheckInSteps","Status")=$G(STATUS)
  1. .S SDCHECKIN("ApptCheckInSteps","DateTime")=$G(DATETIME)
  1. .S SDCHECKIN("ApptCheckInSteps","EASTrackingNumber")=$G(EAS)
  1. I $G(TAG)="GETAPPTCKNSTEP",$D(SDCHECKIN("ApptCheckInSteps")) Q
  1. ;list of appt check-in steps
  1. I $G(TAG)="GETAPPTCKNSTEPS" D
  1. .S SDCHECKIN("ApptCheckInSteps",NUM,"IEN")=$G(IEN)
  1. .S SDCHECKIN("ApptCheckInSteps",NUM,"Status")=$G(STAT)
  1. .S SDCHECKIN("ApptCheckInSteps",NUM,"DateTime")=$G(DATETIME)
  1. .S SDCHECKIN("ApptCheckInSteps",NUM,"EASTrackingNumber")=$G(EAS)
  1. I $G(TAG)="GETAPPTCKNSTEPS",$D(SDCHECKIN("ApptCheckInSteps")) Q
  1. ;single check-in step
  1. I $G(TAG)="GETCKNSTEP" D
  1. .S SDCHECKIN("CheckInSteps","IEN")=$G(IEN)
  1. .S SDCHECKIN("CheckInSteps",0,"Status")=STATUS
  1. I $G(TAG)="GETCKNSTEP",$D(SDCHECKIN("CheckInSteps")) Q
  1. ;list of check-in steps
  1. I $G(TAG)="GETCKNSTEPS" D
  1. .S SDCHECKIN("CheckInSteps",NUM,"IEN")=$G(IEN)
  1. .S SDCHECKIN("CheckInSteps",NUM,"Status")=STATUS
  1. I $G(TAG)="GETCKNSTEPS",$D(SDCHECKIN("CheckInSteps")) Q
  1. Q
  1. ;