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

SDESSEARCHRCLN.m

Go to the documentation of this file.
  1. SDESSEARCHRCLN ;ALB/LAB,BWF,JDJ - VISTA RPC SDES SEARCH RECALL CLINIC ;AUG 29,2024
  1. ;;5.3;Scheduling;**836,871,889**;Aug 13, 1993;Build 9
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. Q
  1. ;
  1. CLINICSEARCH(CLINICLIST,SEARCHSTRING) ;Given a search string return a clinic list that matches.
  1. NEW ERRORS,RETURN,STRINGLENGTH,CLINICCOUNT,CLINICINFO,NUMSTR,CLINICFLIST,CLINICIEN
  1. D VALIDATESTR(.ERRORS,.SEARCHSTRING)
  1. I $D(ERRORS) M RETURN=ERRORS D BUILDJSON(.CLINICLIST,.RETURN) Q
  1. ;
  1. S CLINICIEN="",CLINICCOUNT=0
  1. S STRINGLENGTH=$L(SEARCHSTRING)
  1. S NUMSTR=(+SEARCHSTRING=SEARCHSTRING)
  1. D:NUMSTR NUMSEARCH(.CLINICINFO,SEARCHSTRING,STRINGLENGTH,.CLINICCOUNT,.CLINICFLIST)
  1. D:NUMSTR NUMABREVSEARCH(.CLINICINFO,SEARCHSTRING,STRINGLENGTH,.CLINICCOUNT,.CLINICFLIST)
  1. D:'NUMSTR ALPHASEARCH(.CLINICINFO,SEARCHSTRING,STRINGLENGTH,.CLINICCOUNT,.CLINICFLIST)
  1. D:'NUMSTR ABBREVSEARCH(.CLINICINFO,SEARCHSTRING,STRINGLENGTH,.CLINICCOUNT,.CLINICFLIST)
  1. I 'CLINICCOUNT S CLINICINFO("Clinic")=""
  1. D BUILDJSON(.CLINICLIST,.CLINICINFO)
  1. Q
  1. ;
  1. ALPHASEARCH(CLINICINFO,SEARCHSTRING,STRINGLENGTH,CLINICCOUNT,CLINICFLIST) ;
  1. NEW CLINICIEN,CLINICNAME,INACTIVEDT,REACTIVEDT
  1. S CLINICNAME=$O(^SC("B",SEARCHSTRING),-1)
  1. I $E(CLINICNAME,1,STRINGLENGTH)=SEARCHSTRING D
  1. . S CLINICNAME=$O(^SC("B",CLINICNAME),-1)
  1. F S CLINICNAME=$O(^SC("B",CLINICNAME)) Q:CLINICNAME=""!($E(CLINICNAME,1,STRINGLENGTH)'=SEARCHSTRING) D
  1. . Q:(CLINICCOUNT>49)
  1. . S CLINICIEN=$O(^SC("B",CLINICNAME,""))
  1. . Q:('$O(^SD(403.52,"B",CLINICIEN,0)))
  1. . S INACTIVEDT=$$GET1^DIQ(44,CLINICIEN,2505,"I")
  1. . S REACTIVEDT=$$GET1^DIQ(44,CLINICIEN,2506,"I")
  1. . Q:((INACTIVEDT'="")&(INACTIVEDT<=DT))&(((REACTIVEDT'="")&(REACTIVEDT>DT))!(REACTIVEDT="")) ;do not include inactive clinics
  1. . D BUILDCLININFO(.CLINICINFO,.CLINICIEN,.CLINICCOUNT,CLINICNAME,.CLINICFLIST)
  1. Q
  1. ;
  1. ABBREVSEARCH(CLINICINFO,SEARCHSTRING,STRINGLENGTH,CLINICCOUNT,CLINICFLIST) ;
  1. NEW CLINICIEN,CLINICNAME,INACTIVEDT,REACTIVEDT,NEWSTRING
  1. I $L(SEARCHSTRING)=3,$E(SEARCHSTRING,3)=" " S NEWSTRING=$P(SEARCHSTRING," ",1),SEARCHSTRING=NEWSTRING
  1. S CLINICNAME=$O(^SC("C",SEARCHSTRING),-1)
  1. F S CLINICNAME=$O(^SC("C",CLINICNAME)) Q:CLINICNAME=""!($E(CLINICNAME,1,STRINGLENGTH)'=SEARCHSTRING) D
  1. . Q:(CLINICCOUNT>49)
  1. . S CLINICIEN=""
  1. . F S CLINICIEN=$O(^SC("C",CLINICNAME,CLINICIEN)) Q:CLINICIEN="" D
  1. . . Q:('$O(^SD(403.52,"B",CLINICIEN,0)))
  1. . . S INACTIVEDT=$$GET1^DIQ(44,CLINICIEN,2505,"I")
  1. . . S REACTIVEDT=$$GET1^DIQ(44,CLINICIEN,2506,"I")
  1. . . Q:((INACTIVEDT'="")&(INACTIVEDT<=DT))&(((REACTIVEDT'="")&(REACTIVEDT>DT))!(REACTIVEDT="")) ;do not include inactive clinics
  1. . . D BUILDCLININFO(.CLINICINFO,.CLINICIEN,.CLINICCOUNT,CLINICNAME,.CLINICFLIST)
  1. Q
  1. ;
  1. NUMSEARCH(CLINICINFO,SEARCHSTRING,STRINGLENGTH,CLINICCOUNT,CLINICFLIST) ;
  1. NEW CLINICIEN,CLINICNAME,INACTIVEDT,REACTIVEDT
  1. S CLINICNAME=SEARCHSTRING
  1. I $E(CLINICNAME,1,STRINGLENGTH)=SEARCHSTRING D
  1. . S CLINICNAME=$O(^SC("B",CLINICNAME),-1)
  1. F S CLINICNAME=$O(^SC("B",CLINICNAME)) Q:CLINICNAME=""!($E(CLINICNAME,1,STRINGLENGTH)>SEARCHSTRING) D
  1. . Q:$E(CLINICNAME,1,STRINGLENGTH)'=SEARCHSTRING
  1. . Q:(CLINICCOUNT>49)
  1. . S CLINICIEN=$O(^SC("B",CLINICNAME,""))
  1. . Q:('$O(^SD(403.52,"B",CLINICIEN,0)))
  1. . S INACTIVEDT=$$GET1^DIQ(44,CLINICIEN,2505,"I")
  1. . S REACTIVEDT=$$GET1^DIQ(44,CLINICIEN,2506,"I")
  1. . Q:((INACTIVEDT'="")&(INACTIVEDT<=DT))&(((REACTIVEDT'="")&(REACTIVEDT>DT))!(REACTIVEDT="")) ;do not include inactive clinics
  1. . D BUILDCLININFO(.CLINICINFO,.CLINICIEN,.CLINICCOUNT,CLINICNAME,.CLINICFLIST)
  1. Q
  1. ;
  1. NUMABREVSEARCH(CLINICINFO,SEARCHSTRING,STRINGLENGTH,CLINICCOUNT,CLINICFLIST) ;
  1. NEW CLINICIEN,CLINICNAME,INACTIVEDT,REACTIVEDT
  1. S CLINICNAME=SEARCHSTRING
  1. I $E(CLINICNAME,1,STRINGLENGTH)=SEARCHSTRING D
  1. . S CLINICNAME=$O(^SC("C",CLINICNAME),-1)
  1. F S CLINICNAME=$O(^SC("C",CLINICNAME)) Q:CLINICNAME=""!($E(CLINICNAME,1,STRINGLENGTH)>SEARCHSTRING) D
  1. . Q:$E(CLINICNAME,1,STRINGLENGTH)'=SEARCHSTRING
  1. . Q:(CLINICCOUNT>49)
  1. . S CLINICIEN=$O(^SC("C",CLINICNAME,""))
  1. . Q:('$O(^SD(403.52,"B",CLINICIEN,0)))
  1. . S INACTIVEDT=$$GET1^DIQ(44,CLINICIEN,2505,"I")
  1. . S REACTIVEDT=$$GET1^DIQ(44,CLINICIEN,2506,"I")
  1. . Q:((INACTIVEDT'="")&(INACTIVEDT<=DT))&(((REACTIVEDT'="")&(REACTIVEDT>DT))!(REACTIVEDT="")) ;do not include inactive clinics
  1. . D BUILDCLININFO(.CLINICINFO,.CLINICIEN,.CLINICCOUNT,CLINICNAME,.CLINICFLIST)
  1. Q
  1. ;
  1. BUILDCLININFO(CLINICINFO,CLINICIEN,CLINICCOUNT,CLINICNAME,CLINICFLIST) ;
  1. NEW STATUS,SDSTATUS,PRIMAMIS,SECONDAMIS,SDCLDATA
  1. Q:$D(CLINICFLIST(CLINICIEN)) ;only report on clinic once
  1. D GETS^DIQ(44,CLINICIEN,".01;1;8;200;2502;2503;60","IE","SDCLDATA")
  1. S STATUS=$$INACTIVE^SDESUTIL(CLINICIEN,DT) ; Get status of clinic
  1. S SDSTATUS=$S(STATUS=0:"ACTIVE",1:"INACTIVE")
  1. S PRIMAMIS=$$STOPCODETOAMIS^SDESUTIL($G(SDCLDATA(44,CLINICIEN_",",8,"I"))) ; Get Primary AMIS Stop Code
  1. S SECONDAMIS=$$STOPCODETOAMIS^SDESUTIL($G(SDCLDATA(44,CLINICIEN_",",2503,"I"))) ; Get Secondary AMIS Stop Code
  1. S CLINICCOUNT=CLINICCOUNT+1
  1. S CLINICINFO("Clinic",CLINICCOUNT,"IEN")=CLINICIEN
  1. S CLINICINFO("Clinic",CLINICCOUNT,"Name")=$G(SDCLDATA(44,CLINICIEN_",",.01,"E"))
  1. S CLINICINFO("Clinic",CLINICCOUNT,"Abbreviation")=$G(SDCLDATA(44,CLINICIEN_",",1,"E"))
  1. S CLINICINFO("Clinic",CLINICCOUNT,"Status")=$G(SDSTATUS)
  1. S CLINICINFO("Clinic",CLINICCOUNT,"Non-CountClinic")=$G(SDCLDATA(44,CLINICIEN_",",2502,"E"))
  1. S CLINICINFO("Clinic",CLINICCOUNT,"PrimaryAMISStopCode")=PRIMAMIS
  1. S CLINICINFO("Clinic",CLINICCOUNT,"SecondaryAMISStopCode")=SECONDAMIS
  1. S CLINICINFO("Clinic",CLINICCOUNT,"PatientFriendlyName")=$G(SDCLDATA(44,CLINICIEN_",",60,"E"))
  1. S CLINICINFO("Clinic",CLINICCOUNT,"PbspID")=$G(SDCLDATA(44,CLINICIEN_",",200,"E"))
  1. S CLINICFLIST(CLINICIEN)=1
  1. Q
  1. ;
  1. VALIDATESTR(ERRORS,SEARCHSTRING) ;
  1. I $G(SEARCHSTRING)="" D ERRLOG^SDESJSON(.ERRORS,231) Q
  1. I $L(SEARCHSTRING)<3!($L(SEARCHSTRING)>30) D ERRLOG^SDESJSON(.ERRORS,230) Q
  1. Q
  1. ;
  1. BUILDJSON(JSONRETURN,RETURN) ;.
  1. N JSONERROR
  1. D ENCODE^XLFJSON("RETURN","JSONRETURN","JSONERR")
  1. Q
  1. ;