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

SDES2GETCLINST.m

Go to the documentation of this file.
SDES2GETCLINST ;ALB/TJB,MCB/TJB - SDES2 GET CLINIC BY STOP CODE; July 07,2025
 ;;5.3;Scheduling;**914,915**;Aug 13, 1993;Build 2
 ;;Per VHA Directive 6402, this routine should not be modified
 ;
 Q
 ; INPUT
 ;
 ; SDCONTEXT - STANDARD SDCONTEXT ARRAY
 ;
 ; SDCLINIC("PRIMARY STOP CODE",#) (One is Req)
 ; SDCLINIC("CREDIT STOP CODE",#) (Opt)
 ; SDCLINIC("RETURN INACTIVE")= 0|1 (Opt - Boolean) 0=Only Active Clinics 1=Active & Inactive
 ;
GETCLIN(RESULT,SDCONTEXT,SDCLINIC) ;
 N CLIST,CLINIEN,I,OUT,OUT1,SDECI,ERRORS
 D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
 I $D(ERRORS) S ERRORS("Clinic",1)="" D BUILDJSON^SDES2JSON(.RESULT,.ERRORS) Q
 D VALIDATE(.ERRORS,.SDCLINIC)
 I $D(ERRORS) D  Q
 . S ERRORS("Clinic",1)=""
 . D BUILDJSON^SDES2JSON(.RESULT,.ERRORS)
 D MATCHCLIN("CLIST",.SDCLINIC)
 ; Walk matching clinics and get the Clinic Info object
 S I=1,CLINIEN="" F  S CLINIEN=$O(CLIST(CLINIEN)) Q:CLINIEN=""  D
 . K OUT
 . D BLDCLNREC^SDES2CLININFO(.OUT,CLINIEN)
 . M OUT1("Clinic",I)=OUT("Clinic") S I=I+1
 I '$D(OUT1) S OUT1("Clinic",1)=""
 D BUILDJSON^SDES2JSON(.RESULT,.OUT1)
 Q
VALIDATE(ERRORS,INPUT) ;
 N I,STIEN,CRIEN,STCODE,CREDSTOP
 I $G(INPUT("RETURN INACTIVE"))="" S INPUT("RETURN INACTIVE")=0 ; Default to active only
 I ",0,1,"'[(","_INPUT("RETURN INACTIVE")_",") D ERRLOG^SDES2JSON(.ERRORS,518)
 I $G(INPUT("PRIMARY STOP CODE",1))="" D ERRLOG^SDES2JSON(.ERRORS,479) Q
 S I=0 F  S I=I+1 S STCODE=$G(INPUT("PRIMARY STOP CODE",I)),CREDSTOP=$G(INPUT("CREDIT STOP CODE",I)) Q:$G(STCODE)=""  D
 . S STIEN=$$AMISTOSTOPCODE^SDES2UTIL($G(STCODE))
 . S CRIEN=$$AMISTOSTOPCODE^SDES2UTIL($G(CREDSTOP))
 . I STIEN=0 D ERRLOG^SDES2JSON(.ERRORS,270,"Code "_STCODE)
 . I CREDSTOP'="",CRIEN=0 D ERRLOG^SDES2JSON(.ERRORS,271,"Code "_CREDSTOP)
 . I $$GET1^DIQ(40.7,STIEN,2,"I")'="" D ERRLOG^SDES2JSON(.ERRORS,512) ; INACTIVE PRIMARY STOP CODE
 . I $$GET1^DIQ(40.7,CRIEN,2,"I")'="" D ERRLOG^SDES2JSON(.ERRORS,513) ; INACTIVE CREDIT STOP CODE
 Q
MATCHCLIN(CLINLIST,SDINPUT) ;
 N STOPIEN,STCODE,CREDSTOP,CREDSTOPIEN,CRSTOPIEN,CLINIEN,I,RESULTS,INCLUDE,LST,INACT
 S I=0 F  S I=I+1 S STCODE=$G(SDINPUT("PRIMARY STOP CODE",I)),CREDSTOP=$G(SDINPUT("CREDIT STOP CODE",I)) Q:$G(STCODE)=""  D
 . K RESULTS D FIND^DIC(44,,"@;.01I;8I;2503I","P",STCODE,,"AST",,,"RESULTS")
 . S LST=0 F  S LST=$O(RESULTS("DILIST",LST)) Q:'+LST  D
 .. S INACT=$$INACTIVE^SDES2UTIL($P(RESULTS("DILIST",LST,0),U),DT)
 .. S INCLUDE=$S(INACT=SDINPUT("RETURN INACTIVE"):1,INACT<SDINPUT("RETURN INACTIVE"):1,1:0)
 .. Q:'INCLUDE
 .. ; Filter non-matching credit stop codes
 .. I CREDSTOP'="" S CREDSTOPIEN=$$AMISTOSTOPCODE^SDES2UTIL(CREDSTOP) Q:$P(RESULTS("DILIST",LST,0),U,4)'=CREDSTOPIEN
 .. S @CLINLIST@($P(RESULTS("DILIST",LST,0),U))=""
 Q
 ;