Scheduling Issues
From VistApedia
This will contain notes as the data structures for clinic scheduling is explored.
Outpatient clinics are stored in the HOSPITAL LOCATION FILE.
Appointment slots are held in the AVAILABILITY field, node "T"
Here is the relevant DD definitions:
T;0 1920 AVAILABILITY <-Mult [44.002DA] 80 -0;1 .01 -AVAILABILITY [MDX] -2;0 2 -SCHEDULE TIME <-Mult [44.004A] 81 --0;1 .01 --SCHEDULE TIME [MFX] 82 --0;2 1 --NUMBER OF PATIENTS [NJ2,0] 83 -Computed 3 -DAY OF WEEK [CJ15] 84 -Computed 4 -NUMBEROFDAY [CJ1] 85 STT;1 1920.9 AVAILABILITY FLAG [D] ST;0 1921 PATTERN W:^ <-Mult [44.005DA] 86 -0;1 .01 -PATTERN DATE [MDX] 87 -1;E1,90 1 -CURRENT AVAILABILITY [F] 88 -Computed 2 -MAINTENANCE [CJ8X] 89 -9;1 3 -SPECIAL AVAILABILITY FLAG [DX] OST;0 1921.5 SPECIAL PATTERN W:^ <-Mult [44.0002DA] 90 -0;1 .01 -PATTERN DATE [DX] 91 -1;E1,90 1 -ORIGINAL AVAILABILITY [F] T;0 1920 AVAILABILITY <-Mult [44.002DA] 80 -0;1 .01 -AVAILABILITY [MDX] -2;0 2 -SCHEDULE TIME <-Mult [44.004A] 81 --0;1 .01 --SCHEDULE TIME [MFX] 82 --0;2 1 --NUMBER OF PATIENTS [NJ2,0] 83 -Computed 3 -DAY OF WEEK [CJ15] 84 -Computed 4 -NUMBEROFDAY [CJ1] 85 STT;1 1920.9 AVAILABILITY FLAG [D] ST;0 1921 PATTERN W:^ <-Mult [44.005DA] 86 -0;1 .01 -PATTERN DATE [MDX] 87 -1;E1,90 1 -CURRENT AVAILABILITY [F] 88 -Computed 2 -MAINTENANCE [CJ8X] 89 -9;1 3 -SPECIAL AVAILABILITY FLAG [DX] OST;0 1921.5 SPECIAL PATTERN W:^ <-Mult [44.0002DA] 90 -0;1 .01 -PATTERN DATE [DX] 91 -1;E1,90 1 -ORIGINAL AVAILABILITY [F] T0;0 1922 SUNDAY TEMPLATE W:^ <-Mult [44.06A] 92 -0;1 .01 -LIMIT DATE [NJ7,0X] 93 -1;E1,80 1 -MASTER PATTERN [F] T1;0 1923 MONDAY TEMPLATE W:^ <-Mult [44.07A] 94 -0;1 .01 -LIMIT DATE [NJ7,0X] 95 -1;E1,80 1 -MASTER PATTERN [F] T2;0 1924 TUESDAY TEMPLATE W:^ <-Mult [44.08A] 96 -0;1 .01 -LIMIT DATE [NJ7,0X] 97 -1;E1,80 1 -MASTER PATTERN [F] T3;0 1925 WEDNESDAY TEMPLATE W:^ <-Mult [44.09A] 98 -0;1 .01 -LIMIT DATE [NJ7,0X] 99 -1;1 1 -MASTER PATTERN [F] T4;0 1926 THURSDAY TEMPLATE W:^ <-Mult [44.008A] 100 -0;1 .01 -LIMIT DATE [NJ7,0X] 101 -1;E1,80 1 -MASTER PATTERN [F] T5;0 1927 FRIDAY TEMPLATE W:^ <-Mult [44.009A] 102 -0;1 .01 -LIMIT DATE [NJ7,0X] 103 -1;E1,80 1 -MASTER PATTERN [F] T6;0 1928 SATURDAY TEMPLATE W:^ <-Mult [44.0001A] 104 -0;1 .01 -LIMIT DATE [NJ7,0X] 105 -1;E1,80 1 -MASTER PATTERN [F]
Below is a dump of a sample record
GTM>zwr ^SC(6,*) ^SC(6,0)="Laughlin_Office^lo^C^69^^^295^M^^^Laughlin MOB-1^^^^1^^Y^295^Y^^0^1^^1^^^^^^0" ^SC(6,99)="423-787-7000" ^SC(6,"AT")=9 ^SC(6,"HUIAUTOPRINTER")=65 ^SC(6,"HUIAUTOSITE")=2 ^SC(6,"LTR")=1 ^SC(6,"OST",0)="^44.0002DA^^" ^SC(6,"OST",3081123,0)=3081123 ^SC(6,"OST",3081123,1)="SU 23 [ | | | | | | | | | | | | | | ] " ^SC(6,"OST",3081207,0)=3081207 ^SC(6,"OST",3081207,1)="SU 07 [ | | | | | | | | | | | | | | ] " ^SC(6,"PC")=1 ^SC(6,"PR",0)="^44.1P^2^2" ^SC(6,"PR",1,0)="73^1" ^SC(6,"PR",2,0)="83^0" ^SC(6,"PR","B",73,1)="" ^SC(6,"PR","B",83,2)="" ^SC(6,"PS")=1
Below are the "S" node entries, which are actual appts.
^SC(6,"S",0)="^44.001DA^^" ^SC(6,"S",3081123.103,0)=3081123.103 ^SC(6,"S",3081123.103,1,0)="^44.003PA^^" ^SC(6,"S",3081123.103,1,1,0)="1^15^^^^73^3081123^^^" ^SC(6,"S",3081123.103,1,1,"C")="3081203.15^73^3081203.15^73^3081203^3081203" ^SC(6,"S",3081123.103,1,1,"OB")="O" ... ^SC(6,"S",3081205.133,0)=3081205.133 ^SC(6,"S",3081205.133,1,0)="^44.003PA^^" ^SC(6,"S",3081205.133,1,1,0)="70774^10^^^^73^3081204" ^SC(6,"S",3081215.083,0)=3081215.083 ^SC(6,"S",3081215.083,1,0)="^44.003PA^^" ^SC(6,"SDP")="3^365^^30" ^SC(6,"SL")="10^^^^^6^5^Y"
Below is the PATTERN subfile. For a given date, it shows avail slots
^SC(6,"ST",0)="^44.005" ^SC(6,"ST",3081205,0)=3081205 ^SC(6,"ST",3081205,1)="FR 05 | [1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] | [1 11 0 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3081208,0)=3081208 ^SC(6,"ST",3081208,1)="MO 08 | [1] [1 1 1 1 1] [1 1 1 1 1] | | [1] [1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3081209,0)=3081209 ^SC(6,"ST",3081209,1)="TU 09 | [1] [1 1 1 1 1] [1 1 1 1 1] | | [1] [1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3081212,0)=3081212 ^SC(6,"ST",3081212,1)="FR 12 | [1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] | [1 11 1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3081215,0)=3081215 ^SC(6,"ST",3081215,1)="MO 15 | [1] [1 1 1 1 1] [1 1 1 1 1] | | [1] [1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3081216,0)=3081216 ^SC(6,"ST",3081216,1)="TU 16 | [1] [1 1 1 1 1] [1 1 1 1 1] | | [1] [1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3081219,0)=3081219 ^SC(6,"ST",3081219,1)="FR 19 | [1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] | [1 11 1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3081222,0)=3081222 ^SC(6,"ST",3081222,1)="MO 22 | [1] [1 1 1 1 1] [1 1 1 1 1] | | [1] [1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3081223,0)=3081223 ^SC(6,"ST",3081223,1)="TU 23 | [1] [1 1 1 1 1] [1 1 1 1 1] | | [1] [1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3081226,0)=3081226 ^SC(6,"ST",3081226,1)="FR 26 | [1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] | [1 11 1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3081229,0)=3081229 ^SC(6,"ST",3081229,1)="MO 29 | [1] [1 1 1 1 1] [1 1 1 1 1] | | [1] [1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3081230,0)=3081230 ^SC(6,"ST",3081230,1)="TU 30 | [1] [1 1 1 1 1] [1 1 1 1 1] | | [1] [1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3090102,0)=3090102 ^SC(6,"ST",3090102,1)="FR 02 | [1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] | [1 11 1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3090105,0)=3090105 ^SC(6,"ST",3090105,1)="MO 05 | [1] [1 1 1 1 1] [1 1 1 1 1] | | [1] [1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3090106,0)=3090106 ^SC(6,"ST",3090106,1)="TU 06 | [1] [1 1 1 1 1] [1 1 1 1 1] | | [1] [1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"ST",3090109,0)=3090109 ^SC(6,"ST",3090109,1)="FR 09 | [1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] | [1 11 1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] "
Below is the AVAILABILITY subfile, and the SCHEDULE TIME sub-subfile. For a given date, it specifies the number of patients allowed in each slot.
^SC(6,"T",0)="^44.002DA^3081211^32" ^SC(6,"T",3081204,0)=3081204 ^SC(6,"T",3081204,2,0)="^44.004A^20^20" ^SC(6,"T",3081204,2,1,0)="0830^1" ^SC(6,"T",3081204,2,2,0)="0900^1" ... ^SC(6,"T",3081204,2,19,0)="1530^1" ^SC(6,"T",3081204,2,20,0)="1545^1" ^SC(6,"T",3081205,0)=3081205 ^SC(6,"T",3081205,2,0)="^44.004A^32^32" ^SC(6,"T",3081205,2,1,0)="0830^1" ^SC(6,"T",3081205,2,2,0)="0900^1" ^SC(6,"T",3081205,2,3,0)="0910^1" ^SC(6,"T",3081205,2,4,0)="0920^1" ^SC(6,"T",3081205,2,5,0)="0930^1" ... ^SC(6,"T",3081205,2,31,0)="1610^1" ^SC(6,"T",3081205,2,32,0)="1620^1" ^SC(6,"T",3081207,0)=3081207 ^SC(6,"T",3081208,0)=3081208 ^SC(6,"T",3081208,2,0)="^44.004A^27^27" ^SC(6,"T",3081208,2,1,0)="0830^1" ... ^SC(6,"T",3081208,2,26,0)="1610^1" ^SC(6,"T",3081208,2,27,0)="1620^1" ^SC(6,"T",3081209,0)=3081209 ^SC(6,"T",3081209,2,0)="^44.004A^27^27" ^SC(6,"T",3081209,2,1,0)="0830^1" ^SC(6,"T",3081209,2,2,0)="0900^1" ^SC(6,"T",3081209,2,3,0)="0910^1" ^SC(6,"T",3081209,2,4,0)="0920^1" ^SC(6,"T",3081209,2,5,0)="0930^1" ^SC(6,"T",3081209,2,6,0)="0940^1" ^SC(6,"T",3081209,2,7,0)="1000^1" ^SC(6,"T",3081209,2,8,0)="1010^1" ^SC(6,"T",3081209,2,9,0)="1020^1" ^SC(6,"T",3081209,2,10,0)="1030^1" ^SC(6,"T",3081209,2,11,0)="1040^1" ^SC(6,"T",3081209,2,12,0)="1300^1" ^SC(6,"T",3081209,2,13,0)="1330^1" ^SC(6,"T",3081209,2,14,0)="1340^1" ^SC(6,"T",3081209,2,15,0)="1400^1" ^SC(6,"T",3081209,2,16,0)="1410^1" ^SC(6,"T",3081209,2,17,0)="1420^1" ^SC(6,"T",3081209,2,18,0)="1430^1" ^SC(6,"T",3081209,2,19,0)="1440^1" ^SC(6,"T",3081209,2,20,0)="1500^1" ^SC(6,"T",3081209,2,21,0)="1510^1" ^SC(6,"T",3081209,2,22,0)="1520^1" ^SC(6,"T",3081209,2,23,0)="1530^1" ^SC(6,"T",3081209,2,24,0)="1540^1" ^SC(6,"T",3081209,2,25,0)="1600^1" ^SC(6,"T",3081209,2,26,0)="1610^1" ^SC(6,"T",3081209,2,27,0)="1620^1" ^SC(6,"T",3081211,0)=3081211
Below are the ___DAY TEMPLATE subfile entries. For a given LIMIT DATE, it stores a master pattern.
Monday
^SC(6,"T1",0)="^44.07A^^" ^SC(6,"T1",9999999,0)=9999999 ^SC(6,"T1",9999999,1)="| [1] [1 1 1 1 1] [1 1 1 1 1] | | [1] [1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] "
Tuesday
^SC(6,"T2",0)="^44.08A^^" ^SC(6,"T2",9999999,0)=9999999 ^SC(6,"T2",9999999,1)="| [1] [1 1 1 1 1] [1 1 1 1 1] | | [1] [1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] "
Wednesday
^SC(6,"T3",0)="^44.09A^^"
Thursday
^SC(6,"T4",0)="^44.08A^^"
Friday
^SC(6,"T5",0)="^44.09A^^" ^SC(6,"T5",3081205,0)=3081205 ^SC(6,"T5",3081205,1)="| [1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] " ^SC(6,"T5",9999999,0)=9999999 ^SC(6,"T5",9999999,1)="| [1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] | [1 1 1 1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1] "
^SC(6,"TMG")="FPG"