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

SDES2VALCRTCLIN1.m

Go to the documentation of this file.
  1. SDES2VALCRTCLIN1 ;ALB/MGD/BLB,BWF,BLB,TJB,JAS - CLINIC VALIDATION UTILITIES DRIVER ;NOV 05,2024
  1. ;;5.3;Scheduling;**853,857,860,871,885,890,893,895**;Aug 13, 1993;Build 11
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. ; Reference to $$CODEC^ICDEX is supported by IA #5747
  1. ; Reference to $$CODEN^ICDEX is supported by IA #5747
  1. ;
  1. ; RPC: SDES CREATE CLINIC2
  1. ;
  1. Q
  1. ;
  1. VALCLINIC(SDERRORS,SDCLINIC,SDFILEDATA) ; Validate Clinic Input Array
  1. N VRES
  1. ; Validate required variables first
  1. D VALALLOWNOSHOW^SDES2VAL44(.SDERRORS,$G(SDCLINIC("ALLOWABLE CONSECUTIVE NO-SHOWS")),.SDFILEDATA)
  1. D VALDIRPATSCHED^SDES2VAL44(.SDERRORS,$G(SDCLINIC("DIRECT PATIENT SCHEDULING")),.SDFILEDATA)
  1. D VALPRIMAMIS^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. D VALNAME^SDES2VAL44(.SDERRORS,$G(SDCLINIC("NAME")),.SDFILEDATA)
  1. D VALDISPAPPT^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. D VALINCPERHOUR^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. D VALDIV^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. D VALCHECKIN^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. D VALAPPTLENGTH^SDES2VAL44(.SDERRORS,$G(SDCLINIC("LENGTH OF APPOINTMENT")),"",$G(SDCLINIC("DISPLAY INCREMENTS PER HOUR")),.SDFILEDATA)
  1. D VALMAXFUTBOOK^SDES2VAL44(.SDERRORS,$G(SDCLINIC("MAX DAYS FUTURE BOOKING")),.SDFILEDATA)
  1. D VALMEETATFACIL^SDES2VAL44(.SDERRORS,$G(SDCLINIC("MEETS AT FACILITY")),.SDFILEDATA)
  1. D VALNONCOUNT^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. D VALOVBDAYMAX^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. D VALPRECHECKIN^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. D VALPROFILE^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. D VALSERVICE^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. D VALVETSLFCAN^SDES2VAL44A(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. ;
  1. ; Quit if any errors in Required input parameters
  1. Q:$D(SDERRORS)
  1. ;
  1. ; Validate optional variables second - Values that will be altered by the validation will have SDCLINIC passed by reference
  1. ; =================================
  1. I $G(SDCLINIC("ABBREVIATION"))'="" D VALABBR^SDES2VAL44(.SDERRORS,SDCLINIC("ABBREVIATION"),.SDFILEDATA)
  1. I $G(SDCLINIC("ADMIN INPATIENT MEDS"))'="" D VALINPATMED^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. I $G(SDCLINIC("APPOINTMENT CANCELLATION LETTER"))'="" D VALAPTCANLET^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. I $G(SDCLINIC("ASK CHECK IN/OUT"))'="" D VALINOUTTIME^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. I $G(SDCLINIC("CLINIC CANCELLATION LETTER"))'="" D VALCANLET^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. I $G(SDCLINIC("CREDIT AMIS"))'="" D VALCREDITAMIS^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. I $G(SDCLINIC("PRIMARY AMIS"))'="",$G(SDCLINIC("CREDIT AMIS"))'="" D CONDAMISCHECK^SDES2VAL44(.SDERRORS,SDCLINIC("PRIMARY AMIS"),SDCLINIC("CREDIT AMIS"))
  1. I $G(SDCLINIC("DEFAULT APPOINTMENT TYPE"))'="" D VALAPPTTYPE^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. I $G(SDCLINIC("DEFAULT TO PC PRACTITIONER"))'="" D VALDEFAULTTOPRAC^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. I $D(SDCLINIC("DIAGNOSIS")) D VALDIAG(.SDERRORS,.SDCLINIC,.SDFILEDATA) ; Call Create only Validator
  1. D VALSTARTHOUR^SDES2VAL44(.SDERRORS,$G(SDCLINIC("HOUR CLINIC DISPLAY BEGINS")),.SDFILEDATA)
  1. I $G(SDCLINIC("NO-SHOW LETTER"))'="" D VALNOSHOWLET^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. I $G(SDCLINIC("PATIENT FRIENDLY NAME"))'="" D VALPATFNAME^SDES2VAL44(.SDERRORS,SDCLINIC("PATIENT FRIENDLY NAME"),.SDFILEDATA)
  1. I $G(SDCLINIC("PBSPID"))'="" D VALPBSPID^SDES2VAL44(.SDERRORS,SDCLINIC("PBSPID"),.SDFILEDATA)
  1. I $G(SDCLINIC("PHYSICAL LOCATION"))'="" D VALLOCATION^SDES2VAL44(.SDERRORS,SDCLINIC("PHYSICAL LOCATION"),.SDFILEDATA)
  1. I $G(SDCLINIC("PRE-APPOINTMENT LETTER"))'="" D VALPREAPTLET^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. I $G(SDCLINIC("PRINCIPAL CLINIC"))'="" D VALPRINCLINIC^SDES2VAL44(.SDERRORS,SDCLINIC("PRINCIPAL CLINIC"),.SDFILEDATA)
  1. I $G(SDCLINIC("PROHIBIT ACCESS TO CLINIC"))'="" D VALNOACCESS^SDES2VAL44(.SDERRORS,SDCLINIC("PROHIBIT ACCESS TO CLINIC"),.SDFILEDATA)
  1. I $D(SDCLINIC("PRIVILEGED USER")),$G(SDCLINIC("PROHIBIT ACCESS TO CLINIC"))="Y" D VALPRIVUSERS(.SDERRORS,.SDCLINIC,.SDFILEDATA) ; Call Create only Validator
  1. I $D(SDCLINIC("PROVIDER")) D VALPROVIDERS(.SDERRORS,.SDCLINIC,.SDFILEDATA) ; Call Create only Validator
  1. I $G(SDCLINIC("REQUIRE X-RAY"))'="" D VALXRAY^SDES2VAL44(.SDERRORS,SDCLINIC("REQUIRE X-RAY"),.SDFILEDATA)
  1. I $G(SDCLINIC("SCHEDULE ON HOLIDAYS"))'="" D VALSCHEDHOLIDAY^SDES2VAL44(.SDERRORS,SDCLINIC("SCHEDULE ON HOLIDAYS"),.SDFILEDATA)
  1. I $D(SDCLINIC("SPECIAL INSTRUCTIONS")) D VALSPECINSTRUCT(.SDERRORS,.SDCLINIC,.SDFILEDATA) ; Call Create only Validator
  1. I $D(SDCLINIC("SUBSPECIALTY")) D VALSUBSPEC^SDES2VAL44A(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. I $G(SDCLINIC("TELEPHONE"))'="" D VALPHONE^SDES2VAL44(.SDERRORS,SDCLINIC("TELEPHONE"),.SDFILEDATA)
  1. I $G(SDCLINIC("TELEPHONE EXTENSION"))'="" D VALPHONEEXT^SDES2VAL44(.SDERRORS,SDCLINIC("TELEPHONE EXTENSION"),.SDFILEDATA)
  1. I $G(SDCLINIC("VARIABLE APPOINTMENT LENGTH"))'="" D VALVARAPTLENGTH^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. I $G(SDCLINIC("WORKLOAD VALIDATION"))'="" D VALWORKLOAD^SDES2VAL44(.SDERRORS,.SDCLINIC,.SDFILEDATA)
  1. Q
  1. ;
  1. ; Validation for optional variables unique to Create Clinic
  1. ; =========================================================
  1. ;
  1. VALDIAG(SDERRORS,SDCLINIC,SDFDATA) ;
  1. N SDDIAGCODE,SDDIAGIEN,SDDEFDIAGCNT,SDNEWDIAGIEN
  1. S SDDEFDIAGCNT=0
  1. S SDDIAGCODE="" F S SDDIAGCODE=$O(SDCLINIC("DIAGNOSIS",SDDIAGCODE)) Q:SDDIAGCODE="" D
  1. .I $G(SDCLINIC("DIAGNOSIS",SDDIAGCODE))="@" D ERRLOG^SDES2JSON(.SDERRORS,459,"DIAGNOSIS: "_SDDIAGCODE)
  1. .S SDDIAGIEN=$$CODEN^ICDEX(SDDIAGCODE,80)
  1. .I +SDDIAGIEN=-1 D ERRLOG^SDES2JSON(.SDERRORS,85,SDDIAGCODE)
  1. .I $D(SDCLINIC("DIAGNOSIS",SDDIAGCODE,"DEFAULT")) S SDDEFDIAGCNT=SDDEFDIAGCNT+1
  1. I SDDEFDIAGCNT>1 D ERRLOG^SDES2JSON(.SDERRORS,490) Q
  1. M SDFDATA("DIAGNOSIS")=SDCLINIC("DIAGNOSIS")
  1. Q
  1. ;
  1. VALPRIVUSERS(ERRORS,PRIVUSERS,SDFDATA) ;
  1. N SDPUSER
  1. S SDPUSER=0 F S SDPUSER=$O(PRIVUSERS("PRIVILEGED USER",SDPUSER)) Q:'SDPUSER D
  1. .I PRIVUSERS("PRIVILEGED USER",SDPUSER)="@" D ERRLOG^SDES2JSON(.SDERRORS,459,"Privileged User: "_SDPUSER) Q
  1. .D VALUSERDUZ^SDES2VAL200(.ERRORS,SDPUSER)
  1. M SDFDATA("PRIVILEGED USER")=PRIVUSERS("PRIVILEGED USER")
  1. Q
  1. ;
  1. VALPROVIDERS(ERRORS,SDCLINIC,SDFDATA) ;
  1. N SDPROVIEN,SDPROVERRORS,SDDEFCNT
  1. S (SDPROVIEN,SDDEFCNT)=0 F S SDPROVIEN=$O(SDCLINIC("PROVIDER",SDPROVIEN)) Q:'SDPROVIEN D
  1. .I $G(SDCLINIC("PROVIDER",SDPROVIEN))="@" D ERRLOG^SDES2JSON(.SDERRORS,459,"Provider: "_SDPROVIEN) Q
  1. .D VALPROVIDER^SDES2VAL200(.ERRORS,SDPROVIEN)
  1. .I $D(SDCLINIC("PROVIDER",SDPROVIEN,"DEFAULT")) S SDDEFCNT=SDDEFCNT+1
  1. I SDDEFCNT>1 D ERRLOG^SDES2JSON(.ERRORS,488)
  1. M SDFDATA("PROVIDER")=SDCLINIC("PROVIDER")
  1. Q
  1. ;
  1. VALSPECINSTRUCT(SDERRORS,SDSPECINST,SDFDATA) ;
  1. ; SDSPECINST("SPECIAL INSTRUCTIONS",SDINSTRUCT)=IEN|@
  1. ; SDSPECINST("SPECIAL INSTRUCTIONS",SDINSTRUCT)=
  1. N SDINSTRUCT,SDINSDATA,SDINSIEN,SDINSTEXT
  1. S SDINSTRUCT=0 F S SDINSTRUCT=$O(SDSPECINST("SPECIAL INSTRUCTIONS",SDINSTRUCT)) Q:'SDINSTRUCT D
  1. .S SDINSDATA=$G(SDSPECINST("SPECIAL INSTRUCTIONS",SDINSTRUCT))
  1. .S SDINSIEN=$P(SDINSDATA,"|")
  1. .S SDINSTEXT=$P(SDINSDATA,"|",2)
  1. .I SDINSTEXT="" Q
  1. .I SDINSTEXT="@" D ERRLOG^SDES2JSON(.SDERRORS,459,"SPECIAL INSTRUCTIONS")
  1. .I $L(SDINSTEXT)<1!($L(SDINSTEXT)>80) D ERRLOG^SDES2JSON(.SDERRORS,52,"Special instructions must be 1-80 characters in length.")
  1. Q:$D(SDERRORS)
  1. M SDFDATA("SPECIAL INSTRUCTIONS")=SDSPECINST("SPECIAL INSTRUCTIONS")
  1. Q