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

SDES2EDITCLIN.m

Go to the documentation of this file.
  1. SDES2EDITCLIN ;ALB/BWF,MGD/BLB,BWF,TJB,JAS - SDES2 EDIT CLINIC ;NOV 05, 2024
  1. ;;5.3;Scheduling;**853,857,864,866,871,885,890,893,895**;Aug 13, 1993;Build 11
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. Q
  1. ; Reference to ^DG(40.8 is supported by IA #2295
  1. ; Reference to ^DG(40.8 is supported by IA #7024
  1. ;
  1. ; SDNAME - [TEXT, REQ] Clinic Name (REQUIRED)
  1. ; SDABR - [TEXT] ABBREVIATION
  1. ; SDPATNAME - [TEXT] PATIENT FRIENDLY NAME
  1. ; SDMEETATFAC - [Y/N] CLINIC MEETS AT THIS FACILITY? (Default = Y)
  1. ; SDPATSCHED - [Y/N, REQ] ALLOW DIRECT PATIENT SCHEDULING? (REQUIRED)
  1. ; SDDISPAPPT - [Y/N, REQ] DISPLAY CLIN APPT TO PATIENTS? (REQUIRED)
  1. ; SDSERVICE - [Set of codes, REQ] SERVICE (REQUIRED)
  1. ; SDNONCOUNT - [Y/N, REQ] NON-COUNT CLINIC? (Y OR N) (REQUIRED)
  1. ; SDDIVISION - [File 40.8] DIVISION (REQUIRED)
  1. ; SDAPPTTYP - [File 409.1] DEFAULT APPOINTMENT TYPE
  1. ; SDINPATMED - [Y/N] ADMINISTER INPATIENT MEDS?
  1. ; SDPHONE - [TEXT] TELEPHONE
  1. ; SDREQXRAY - [Y/N] REQUIRE X-RAY FILMS?
  1. ; SDREQPROFILE - [Y/N] REQUIRE ACTION PROFILES? (REQUIRED)
  1. ; SDNOSHOWLET - [File 407.5] NO SHOW LETTER
  1. ; SDPREAPTLET - [File 407.5] PRE-APPOINTMENT LETTER
  1. ; SDCANLET - [File 407.5] CLINIC CANCELLATION LETTER
  1. ; SDAPTCANLET - [File 407.5] APPT. CANCELLATION LETTER
  1. ; SDINOUTTIME - [Y/N] ASK FOR CHECK IN/OUT TIME
  1. ; SDPROVIDER - [File 200] PROVIDER
  1. ; SDPRACTIONER - [Y/N] DEFAULT TO PC PRACTITIONER?
  1. ; SDDIAG - [file 80] DIAGNOSIS
  1. ; SDWORKLOAD - [Y/N] WORKLOAD VALIDATION AT CHK OUT
  1. ; SDALLOWNOSHW - [NUM, REQ] ALLOWABLE CONSECUTIVE NO-SHOWS (REQUIRED)
  1. ; SDMAXFUTBOOK - [NUM, REQ] MAX # DAYS FOR FUTURE BOOKING (REQUIRED)
  1. ; SDNOACCESS - [Y/N] PROHIBIT ACCESS TO CLINIC?
  1. ; SDLOCATION - [TEXT] PHYSICAL LOCATION
  1. ; SDPRINCLINIC - [File 44] PRINCIPAL Clinic
  1. ; SDOVBDAYMAX - [NUM, REQ] OVERBOOKS/DAY MAXIMUM (REQUIRED)
  1. ; SDSPECINSTRU - [TEXT] SPECIAL INSTRUCTIONS
  1. ; SDECHECKIN - [Y/N] E-CHECKIN ALLOWED (REQUIRED)
  1. ; SDPRECHECKIN - [Y/N] PRE-CHECKIN ALLOWED (REQUIRED)
  1. ; SDVARAPTLNG - [TEXT] VARIABLE APP'NTMENT LENGTH
  1. ; PRIAMIS - [NUM, OPT] AMIS Primary Stop Code
  1. ; CREDITAMIS - [NUM, OPT] AMIS Credit Stop Code
  1. ; CLINIC HASH - [TEXT] SHA-1 Hash value that the calling app has stored
  1. ; LENGTH OF APPOINTMENT - APPOINTMENT LENGTH
  1. ; VETERAN SELF-CANCEL - "Y" for Yes, "N" for No
  1. ;
  1. ; SDCONTEXT("ACHERON AUDIT ID") = Up to 40 Character unique ID number. Ex: 11d9dcc6-c6a2-4785-8031-8261576fca37
  1. ; SDCONTEXT("USER DUZ") = The DUZ of the user taking action in the calling application.
  1. ; SDCONTEXT("USER SECID") = The SECID of the user taking action in the calling application.
  1. ; SDCONTEXT("PATIENT DFN") = The DFN/IEN of the target patient from the calling application.
  1. ; SDCONTEXT("PATIENT ICN") = The ICN of the target patient from the calling application.
  1. ;
  1. ;
  1. ; To delete a single field, set that array element to "@" or ""
  1. ; SDCLINIC("FIELD NAME")="@" or SDCLINIC("FIELD NAME")=""
  1. ; SDCLINIC("CLINIC IEN")=CLINIC IEN IEN of the clinic in file 44 - Hospital location
  1. ; SDCLINIC("NAME")=CLINIC NAME FREE TEXT 2-30 characters (Required)
  1. ; SDCLINIC("ABBREVIATION")=ABBREVIATION FREE TEXT 1-7 characters
  1. ; SDCLINIC("PATIENT FRIENDLY NAME") FREE TEXT 1-80 characters
  1. ; SDCLINIC("MEETS AT FACILITY") Y/N for (YES/NO) (Required)
  1. ; SDCLINIC("DIRECT PATIENT SCHEDULING") Y/N for (YES/NO)
  1. ; SDCLINIC("DISPLAY APPOINTMENTS") Y/N for (YES/NO)
  1. ; SDCLINIC("SERVICE") SET OF CODES (M/S/P/R/N/0)
  1. ; SDCLINIC("NON-COUNT") Y/N for (YES/NO)
  1. ; SDCLINIC("DIVISION") POINTER TO MEDICAL CENTER DIVISION FILE (#40.8)
  1. ; SDCLINIC("DEFAULT APPOINTMENT TYPE") POINTER TO APPOINTMENT TYPE FILE (#409.1)
  1. ; SDCLINIC("ADMIN INPATIENT MEDS") 'Y' for 'Yes', blank/NULL for 'No'
  1. ; SDCLINIC("TELEPHONE") FREE TEXT 3-13 characters
  1. ; SDCLINIC("TELEPHONE EXTENSION") FREE TEXT 1-26 characters
  1. ; SDCLINIC("REQUIRE X-RAY") 'Y' for 'Yes', null for No
  1. ; SDCLINIC("REQUIRE ACTION PROFILES") Y/N for (YES/NO)
  1. ; SDCLINIC("NO-SHOW LETTER") LETTER NAME OR IEN POINTER TO LETTER FILE (#407.5)
  1. ; SDCLINIC("PRE-APPOINTMENT LETTER") LETTER NAME OR IEN POINTER TO LETTER FILE (#407.5)
  1. ; SDCLINIC("CLINIC CANCELLATION LETTER") LETTER NAME OR IEN POINTER TO LETTER FILE (#407.5)
  1. ; SDCLINIC("APPOINTMENT CANCELLATION LETTER") LETTER NAME OR IEN POINTER TO LETTER FILE (#407.5)
  1. ; SDCLINIC("ASK CHECK IN/OUT") Y/N for (YES/NO)
  1. ; SDCLINIC("DEFAULT TO PC PRACTITIONER") Y/N for (YES/NO)
  1. ; SDCLINIC("WORKLOAD VALIDATION") Y/N for (YES/NO)
  1. ; SDCLINIC("ALLOWABLE CONSECUTIVE NO-SHOWS") NUMBER 0-999
  1. ; SDCLINIC("MAX DAYS FUTURE BOOKING") NUMBER 11-999
  1. ; SDCLINIC("PROHIBIT ACCESS TO CLINIC") 'Y' for 'Yes'
  1. ; SDCLINIC("PHYSICAL LOCATION") FREE TEXT (1-25)
  1. ; SDCLINIC("PRINCIPAL CLINIC") POINTER to the Hospital location file (#44)
  1. ; SDCLINIC("OVERBOOKS/DAY MAX") NUMBER 0-9999
  1. ; SDCLINIC("E-CHECKIN ALLOWED") Y/N for (YES/NO)
  1. ; SDCLINIC("PRE-CHECKIN ALLOWED") Y/N for (YES/NO)
  1. ; SDCLINIC("VARIABLE APPOINTMENT LENGTH") 'Y' - for Variable appointment length, Null for not variable
  1. ; SDCLINIC("PRIMARY AMIS") NUMERIC AMIS CODE (1-999)
  1. ; SDCLINIC("CREDIT AMIS") NUMERIC AMIS CODE (1-999)
  1. ; SDCLINIC("INCLUDE ON FILE ROOM LISTS") Y/N for (YES/NO)
  1. ; SDCLINIC("SCHEDULE ON HOLIDAYS") 'Y' for 'Yes'
  1. ; SDCLINIC("LENGTH OF APPOINTMENT") LENGTH OF APPOINTMENT
  1. ; SDCLINIC("DISPLAY INCREMENTS PER HOUR") DISPLAY INCREMENTS PER HOUR
  1. ; SDCLINIC("CLINIC HASH") [TEXT] SHA-1 Hash value that the calling app has stored
  1. ; SDCLINIC("VETERAN SELF-CANCEL") 'Y' for 'YES', 'N' for NO
  1. ;
  1. ; SDCLINIC("PROVIDER",PROVIDERIEN)="" - ADD
  1. ; SDCLINIC("PROVIDER",PROVIDERIEN)="@" - DELETE
  1. ; SDCLINIC("PROVIDER",PROVIDERIEN,"DEFAULT")="" - DEFAULT PROVIDER
  1. ;
  1. ; SDCLINIC("DIAGNOSIS",DIAGNOSIS CODE)="" - ADD
  1. ; SDCLINIC("DIAGNOSIS",DIAGNOSIS CODE)="@" - DELETE
  1. ; SDCLINIC("DIAGNOSIS",DIAGNOSIS CODE,"DEFAULT")="" - DEFAULT DIAGNOSIS
  1. ;
  1. ; SDCLINIC("SPECIAL INSTRUCTIONS",NUMBER)="INSTRUCTION ID|@ - FOR DELETION
  1. ; SDCLINIC("SPECIAL INSTRUCTIONS",NUMBER)=" (null value) |SPECIAL INSTRUCTION TEXT UP TO 80 CHARACTERS" - FOR ADDITION
  1. ; SDCLINIC("SPECIAL INSTRUCTIONS",NUMBER)="INSTRUCTION ID|SPECIAL INSTRUCTION TEXT UP TO 80 CHARACTERS" - FOR EDIT
  1. ;
  1. ; SDCLINIC("SUBSPECIALTY",NUMBER,"ID") - .01 FIELD FROM FILE #409.94 (REQUIRED IF SUBSPECIALTY SENT)
  1. ; SDCLINIC("SUBSPECIALTY",NUMBER,"NAME") - 1 FIELD FROM FILE #409.94 (REQUIRED IF SUBSPECIALTY SENT)
  1. ; SDCLINIC("SUBSPECIALTY",NUMBER,"TIER") - 2 FIELD FROM FILE #409.94 ('S' for SECONDARY or 'T' for TERTIARY)
  1. ; SDCLINIC("SUBSPECIALTY",NUMBER,"PARENT") - 3 FIELD FROM FILE #409.94 (POINTS BACK TO #409.94)
  1. ;
  1. ; SDCLINIC("PRIVILEGED USER",USERIEN)="@" - DELETE
  1. ; SDCLINIC("PRIVILEGED USER",USERIEN)="" - ADD
  1. ;
  1. EDITCLINIC(RESULTS,SDCONTEXT,SDCLINIC) ;
  1. N ERRORS,SDIEN,CLINRETURN,FILEDATA,VRES,VETSELFCAN
  1. ; validate context array
  1. D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
  1. I $D(ERRORS) S ERRORS("ClinicUpdate",1)="" D BUILDJSON^SDES2JSON(.RESULTS,.ERRORS) Q
  1. D VALCLINIEN^SDES2VAL44(.ERRORS,$G(SDCLINIC("CLINIC IEN")),1)
  1. I $D(ERRORS) S ERRORS("ClinicEdit",1)="" D BUILDJSON^SDES2JSON(.RESULTS,.ERRORS) Q
  1. ; validate clinic hash
  1. I $D(SDCLINIC("CLINIC HASH")) D VALCLINICHASH^SDES2VAL44A(.ERRORS,$G(SDCLINIC("CLINIC IEN")),$G(SDCLINIC("CLINIC HASH")))
  1. I $D(ERRORS) S ERRORS("ClinicEdit",1)="" D BUILDJSON^SDES2JSON(.RESULTS,.ERRORS) Q
  1. ; validate required fields
  1. I $D(SDCLINIC("ALLOWABLE CONSECUTIVE NO-SHOWS")) D VALALLOWNOSHOW^SDES2VAL44(.ERRORS,$G(SDCLINIC("ALLOWABLE CONSECUTIVE NO-SHOWS")),.FILEDATA)
  1. I $D(SDCLINIC("DIRECT PATIENT SCHEDULING")) D VALDIRPATSCHED^SDES2VAL44(.ERRORS,$G(SDCLINIC("DIRECT PATIENT SCHEDULING")),.FILEDATA)
  1. I $D(SDCLINIC("DISPLAY APPOINTMENTS")) D VALDISPAPPT^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("DIVISION")) D VALDIV^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("E-CHECKIN ALLOWED")) D VALCHECKIN^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("MAX DAYS FUTURE BOOKING")) D VALMAXFUTBOOK^SDES2VAL44(.ERRORS,$G(SDCLINIC("MAX DAYS FUTURE BOOKING")),.FILEDATA)
  1. I $D(SDCLINIC("NAME")) D VALNAME^SDES2VAL44(.ERRORS,$G(SDCLINIC("NAME")),.FILEDATA)
  1. I $D(SDCLINIC("NON-COUNT")) D VALNONCOUNT^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("OVERBOOKS/DAY MAX")) D VALOVBDAYMAX^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("PRIMARY AMIS")) D VALPRIMAMIS^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("PRE-CHECKIN ALLOWED")) D VALPRECHECKIN^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("REQUIRE ACTION PROFILES")) D VALPROFILE^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("SERVICE")) D VALSERVICE^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("MEETS AT FACILITY")) D VALMEETATFACIL^SDES2VAL44(.ERRORS,$G(SDCLINIC("MEETS AT FACILITY")),.FILEDATA)
  1. D VALVETSLFCAN^SDES2VAL44A(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(ERRORS) S ERRORS("ClinicUpdate",1)="" D BUILDJSON^SDES2JSON(.RESULTS,.ERRORS) Q
  1. ;
  1. ; validate non-required fields
  1. I $D(SDCLINIC("PBSPID")) D VALPBSPID^SDES2VAL44(.ERRORS,$G(SDCLINIC("PBSPID")),.FILEDATA)
  1. I $G(SDCLINIC("LENGTH OF APPOINTMENT"))'="" D VALAPPTLENGTH^SDES2VAL44(.ERRORS,$G(SDCLINIC("LENGTH OF APPOINTMENT")),$G(SDCLINIC("CLINIC IEN")),$G(SDCLINIC("DISPLAY INCREMENTS PER HOUR")),.FILEDATA)
  1. I $D(SDCLINIC("ABBREVIATION")) D VALABBR^SDES2VAL44(.ERRORS,$G(SDCLINIC("ABBREVIATION")),.FILEDATA)
  1. I $D(SDCLINIC("ADMIN INPATIENT MEDS")) D VALINPATMED^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("ASK CHECK IN/OUT")) D VALINOUTTIME^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("DEFAULT APPOINTMENT TYPE")) D VALAPPTTYPE^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("PATIENT FRIENDLY NAME")) D VALPATFNAME^SDES2VAL44(.ERRORS,$G(SDCLINIC("PATIENT FRIENDLY NAME")),.FILEDATA)
  1. I $D(SDCLINIC("TELEPHONE")) D VALPHONE^SDES2VAL44(.ERRORS,$G(SDCLINIC("TELEPHONE")),.FILEDATA)
  1. I $D(SDCLINIC("TELEPHONE EXTENSION")) D VALPHONEEXT^SDES2VAL44(.ERRORS,$G(SDCLINIC("TELEPHONE EXTENSION")),.FILEDATA)
  1. I $D(SDCLINIC("REQUIRE X-RAY")) D VALXRAY^SDES2VAL44(.ERRORS,$G(SDCLINIC("REQUIRE X-RAY")),.FILEDATA)
  1. I $D(SDCLINIC("NO-SHOW LETTER")) D VALNOSHOWLET^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("PRE-APPOINTMENT LETTER")) D VALPREAPTLET^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("CLINIC CANCELLATION LETTER")) D VALCANLET^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("APPOINTMENT CANCELLATION LETTER")) D VALAPTCANLET^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("DEFAULT TO PC PRACTITIONER")) D VALDEFAULTTOPRAC^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("WORKLOAD VALIDATION")) D VALWORKLOAD^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("PROHIBIT ACCESS TO CLINIC")) D VALNOACCESS^SDES2VAL44(.ERRORS,$G(SDCLINIC("PROHIBIT ACCESS TO CLINIC")),.FILEDATA)
  1. I $D(SDCLINIC("PHYSICAL LOCATION")) D VALLOCATION^SDES2VAL44(.ERRORS,$G(SDCLINIC("PHYSICAL LOCATION")),.FILEDATA)
  1. I $D(SDCLINIC("PRINCIPAL CLINIC")) D VALPRINCLINIC^SDES2VAL44(.ERRORS,$G(SDCLINIC("PRINCIPAL CLINIC")),.FILEDATA)
  1. I $D(SDCLINIC("VARIABLE APPOINTMENT LENGTH")) D VALVARAPTLENGTH^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(SDCLINIC("INCLUDE ON FILE ROOM LISTS")) D VALINCLUDEFROOM^SDES2VAL44(.ERRORS,$G(SDCLINIC("INCLUDE ON FILE ROOM LISTS")),.FILEDATA)
  1. I $D(SDCLINIC("SCHEDULE ON HOLIDAYS")) D VALSCHEDHOLIDAY^SDES2VAL44(.ERRORS,$G(SDCLINIC("SCHEDULE ON HOLIDAYS")),.FILEDATA)
  1. ; Credit AMIS
  1. I $D(SDCLINIC("CREDIT AMIS")) D VALCREDITAMIS^SDES2VAL44(.ERRORS,.SDCLINIC,.FILEDATA)
  1. ; Conditional amis check
  1. I $D(SDCLINIC("PRIMARY AMIS")),$D(SDCLINIC("CREDIT AMIS")) D CONDAMISCHECK^SDES2VAL44(.ERRORS,$G(SDCLINIC("PRIMARY AMIS")),$G(SDCLINIC("CREDIT AMIS")))
  1. ;
  1. S SDIEN=$G(SDCLINIC("CLINIC IEN"))
  1. ; validate subfile fields
  1. I $D(SDCLINIC("DIAGNOSIS")) D VALDIAG^SDES2VAL44A(.ERRORS,.SDCLINIC,.FILEDATA,SDIEN)
  1. I $D(SDCLINIC("PROVIDER")) D VALPROVIDERS^SDES2VAL44A(.ERRORS,.SDCLINIC,.FILEDATA,SDIEN)
  1. I $D(SDCLINIC("PRIVILEGED USER")),($G(SDCLINIC("PROHIBIT ACCESS TO CLINIC"))="Y"!($$GET1^DIQ(44,SDIEN,2500,"I")="Y")) D
  1. .D VALPRIVUSERS^SDES2VAL44A(.ERRORS,.SDCLINIC,.FILEDATA,SDIEN)
  1. I $D(SDCLINIC("SPECIAL INSTRUCTIONS")) D VALSPECINSTRUCT^SDES2VAL44A(.ERRORS,.SDCLINIC,.FILEDATA,SDIEN)
  1. I $D(SDCLINIC("SUBSPECIALTY")) D VALSUBSPEC^SDES2VAL44A(.ERRORS,.SDCLINIC,.FILEDATA)
  1. I $D(ERRORS) D Q
  1. .S ERRORS("ClinicEdit",1)="" D BUILDJSON^SDES2JSON(.RESULTS,.ERRORS) Q
  1. ;
  1. D FILECLINDATA(.ERRORS,.FILEDATA,SDIEN)
  1. ; always re-hash clinic, in case some fields were filed correctly, even if there were errors.
  1. D ADDHASH2CLIN^SDES2CLINUT(SDIEN)
  1. I $D(ERRORS) D Q
  1. .S ERRORS("ClinicEdit",1)=""
  1. .D BUILDJSON^SDES2JSON(.RESULTS,.ERRORS) Q
  1. ;
  1. S CLINRETURN("ClinicEdit","ID")=SDIEN D BUILDJSON^SDES2JSON(.RESULTS,.CLINRETURN)
  1. Q
  1. FILECLINDATA(ERRORS,FILEDATA,SDIEN) ;
  1. N SDIENS,CLINMSG,MESSINC,FDA
  1. Q:'SDIEN
  1. S SDIENS=SDIEN_","
  1. ; required fields
  1. I '$D(FILEDATA) D ERRLOG^SDES2JSON(.ERRORS,506) Q
  1. I $D(FILEDATA("NAME")) S FDA(44,SDIENS,.01)=FILEDATA("NAME")
  1. I $D(FILEDATA("DIRECT PATIENT SCHEDULING")) S FDA(44,SDIENS,61)=FILEDATA("DIRECT PATIENT SCHEDULING")
  1. I $D(FILEDATA("DISPLAY APPOINTMENTS")) S FDA(44,SDIENS,62)=FILEDATA("DISPLAY APPOINTMENTS")
  1. I $D(FILEDATA("SERVICE")) S FDA(44,SDIENS,9)=FILEDATA("SERVICE")
  1. I $D(FILEDATA("NON-COUNT")) S FDA(44,SDIENS,2502)=FILEDATA("NON-COUNT")
  1. I $D(FILEDATA("DIVISION")) S FDA(44,SDIENS,3.5)=FILEDATA("DIVISION")
  1. I $D(FILEDATA("PRIMARY AMIS")) S FDA(44,SDIENS,8)=FILEDATA("PRIMARY AMIS")
  1. I $D(FILEDATA("REQUIRE ACTION PROFILES")) S FDA(44,SDIENS,2000.5)=FILEDATA("REQUIRE ACTION PROFILES")
  1. I $D(FILEDATA("ALLOWABLE CONSECUTIVE NO-SHOWS")) S FDA(44,SDIENS,2001)=FILEDATA("ALLOWABLE CONSECUTIVE NO-SHOWS")
  1. I $D(FILEDATA("MAX DAYS FUTURE BOOKING")) S FDA(44,SDIENS,2002)=FILEDATA("MAX DAYS FUTURE BOOKING")
  1. I $D(FILEDATA("OVERBOOKS/DAY MAX")) S FDA(44,SDIENS,1918)=FILEDATA("OVERBOOKS/DAY MAX")
  1. I $D(FILEDATA("E-CHECKIN ALLOWED")) S FDA(44,SDIENS,20)=FILEDATA("E-CHECKIN ALLOWED")
  1. I $D(FILEDATA("PRE-CHECKIN ALLOWED")) S FDA(44,SDIENS,21)=FILEDATA("PRE-CHECKIN ALLOWED")
  1. ; non-required fields
  1. I $G(FILEDATA("PBSPID"))'="" S FDA(44,SDIENS,200)=$G(FILEDATA("PBSPID"))
  1. I $G(FILEDATA("LENGTH OF APPOINTMENT"))'="" S FDA(44,SDIENS,1912)=$G(FILEDATA("LENGTH OF APPOINTMENT"))
  1. I $G(FILEDATA("DISPLAY INCREMENTS PER HOUR"))'="" S FDA(44,SDIENS,1917)=$G(FILEDATA("DISPLAY INCREMENTS PER HOUR"))
  1. I $D(FILEDATA("ABBREVIATION")) S FDA(44,SDIENS,1)=FILEDATA("ABBREVIATION")
  1. I $D(FILEDATA("PATIENT FRIENDLY NAME")) S FDA(44,SDIENS,60)=FILEDATA("PATIENT FRIENDLY NAME")
  1. I $D(FILEDATA("DEFAULT APPOINTMENT TYPE")) S FDA(44,SDIENS,2507)=FILEDATA("DEFAULT APPOINTMENT TYPE")
  1. I $D(FILEDATA("ADMIN INPATIENT MEDS")) S FDA(44,SDIENS,2802)=FILEDATA("ADMIN INPATIENT MEDS")
  1. I $D(FILEDATA("MEETS AT FACILITY")) S FDA(44,SDIENS,2504)=FILEDATA("MEETS AT FACILITY")
  1. I $D(FILEDATA("TELEPHONE")) S FDA(44,SDIENS,99)=FILEDATA("TELEPHONE")
  1. I $D(FILEDATA("TELEPHONE EXTENSION")) S FDA(44,SDIENS,99.1)=FILEDATA("TELEPHONE EXTENSION")
  1. I $D(FILEDATA("REQUIRE X-RAY")) S FDA(44,SDIENS,2000)=FILEDATA("REQUIRE X-RAY")
  1. I $D(FILEDATA("NO-SHOW LETTER")) S FDA(44,SDIENS,2508)=FILEDATA("NO-SHOW LETTER")
  1. I $D(FILEDATA("PRE-APPOINTMENT LETTER")) S FDA(44,SDIENS,2509)=FILEDATA("PRE-APPOINTMENT LETTER")
  1. I $D(FILEDATA("CLINIC CANCELLATION LETTER")) S FDA(44,SDIENS,2510)=FILEDATA("CLINIC CANCELLATION LETTER")
  1. I $D(FILEDATA("APPOINTMENT CANCELLATION LETTER")) S FDA(44,SDIENS,2511)=FILEDATA("APPOINTMENT CANCELLATION LETTER")
  1. I $D(FILEDATA("ASK CHECK IN/OUT")) S FDA(44,SDIENS,24)=FILEDATA("ASK CHECK IN/OUT")
  1. I $D(FILEDATA("DEFAULT TO PC PRACTITIONER")) S FDA(44,SDIENS,2801)=FILEDATA("DEFAULT TO PC PRACTITIONER")
  1. I $D(FILEDATA("WORKLOAD VALIDATION")) S FDA(44,SDIENS,30)=FILEDATA("WORKLOAD VALIDATION")
  1. I $D(FILEDATA("PROHIBIT ACCESS TO CLINIC")) S FDA(44,SDIENS,2500)=FILEDATA("PROHIBIT ACCESS TO CLINIC")
  1. I $D(FILEDATA("PHYSICAL LOCATION")) S FDA(44,SDIENS,10)=FILEDATA("PHYSICAL LOCATION")
  1. I $D(FILEDATA("PRINCIPAL CLINIC")) S FDA(44,SDIENS,1916)=FILEDATA("PRINCIPAL CLINIC")
  1. I $D(FILEDATA("VARIABLE APPOINTMENT LENGTH")) S FDA(44,SDIENS,1913)=FILEDATA("VARIABLE APPOINTMENT LENGTH")
  1. I $D(FILEDATA("CREDIT AMIS")) S FDA(44,SDIENS,2503)=FILEDATA("CREDIT AMIS")
  1. I $D(FILEDATA("INCLUDE ON FILE ROOM LISTS")) S FDA(44,SDIENS,2502.5)=$G(FILEDATA("INCLUDE ON FILE ROOM LISTS"))
  1. I $D(FILEDATA("SCHEDULE ON HOLIDAYS")) S FDA(44,SDIENS,1918.5)=$G(FILEDATA("SCHEDULE ON HOLIDAYS"))
  1. I $D(FILEDATA("VETERAN SELF-CANCEL")) S FDA(44,SDIENS,63)=$G(FILEDATA("VETERAN SELF-CANCEL"))
  1. I $D(FDA) D
  1. .D FILE^DIE(,"FDA","CLINMSG") K FDA
  1. .I $D(CLINMSG) D
  1. ..F MESSINC=1:1:$G(CLINMSG("DIERR")) D ERRLOG^SDES2JSON(.ERRORS,52,$G(CLINMSG("DIERR",MESSINC,"TEXT",1)))
  1. ; Save subfile entries
  1. I $D(FILEDATA("PROVIDER")) D SAVEPROVIDERS^SDES2CLINUT(.ERRORS,.FILEDATA,SDIEN)
  1. I $D(FILEDATA("DIAGNOSIS")) D SAVEDIAG^SDES2CLINUT(.ERRORS,.FILEDATA,SDIEN)
  1. I $D(FILEDATA("SPECIAL INSTRUCTIONS")) D SAVEINSTRUCT^SDES2CLINUT(.ERRORS,.FILEDATA,SDIEN)
  1. I $D(FILEDATA("PRIVILEGED USER")) D SAVEPRIVUSERS^SDES2CLINUT(.ERRORS,.FILEDATA,SDIEN)
  1. I $D(FILEDATA("SUBSPECIALTY")) D DELSUBSPEC^SDES2CLINUT(SDIEN),SAVESUBSPEC^SDES2CLINUT(.ERRORS,.FILEDATA,SDIEN)
  1. Q