Scheduling Issues
This will contain notes as the data structures for clinic scheduling is explored.
Contents
- 1 DATA DICTIONARY NOTES
- 2 SAMPLE RECORD
- 3 EXAMPLE OF INDEFINITE SLOT PATTERN
- 4 EXAMPLE OF SLOT PATTERN FOR SET DAYS
- 5 EXAMPLE OF MIXED FIXED AND THEN INDEFINITE DAYS
- 6 EXAMPLE OF INDEFINITE PATTERN, AND THEN FIXED DAYS ADDED
- 7 EXAMPLE OF APPOINTMENT ADDED
- 8 Example of DELETING appts
- 9 Example of Browsing into the Future
- 10 = Patterns to consider
DATA DICTIONARY NOTES
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:
AVAILABILITY subfile, and the SCHEDULE TIME sub-subfile. For a given date, it specifies the number of patients allowed in each slot ------------------------------------------------------------- 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]
Date/Time set up for clinic availability ------------------------------------------------------------- 85 STT;1 1920.9 AVAILABILITY FLAG [D]
PATTERN subfile. For a given date, it shows avail slots ------------------------------------------------------------- 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]
XDAY TEMPLATE subfile entries. For a given LIMIT DATE, it stores a master pattern. ------------------------------------------------------------- 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]
SAMPLE RECORD
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
Below are the "OST" node entries, which hold "SPECIAL PATTERN" subfile
^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"
EXAMPLE OF INDEFINITE SLOT PATTERN
Below is a location that had just 1 day added, specified to be used indefinitely. (Note: I cleared out all slots prior to running ^SDB)
Select CLINIC NAME: x_TEST_OFFICE TOPPENBERG,KEVIN S NAME: X_TEST_OFFICE// ABBREVIATION: CLINIC MEETS AT THIS FACILITY?: YES// SERVICE: MEDICINE// ^
AVAILABILITY DATE: t+2 (DEC 15, 2008) MONDAY TIME: 0830-1000 # APPTS/SLOT : 1// 2 TIME: | [2 2|2 2 2 2] ...PATTERN OK FOR MONDAYS INDEFINITELY? y (Yes) ...EXCUSE ME, THIS MAY TAKE A FEW MOMENTS... PATTERN FILED!
GTM>zwr ^SC(10,*) ^SC(10,0)="X_TEST_OFFICE^^C^^^^342^M^^^lo^^^^^^N^^Y^^^1" ^SC(10,"AT")=9 ^SC(10,"PC")=1 ^SC(10,"PR",0)="^44.1P^1^1" ^SC(10,"PR",1,0)="73^1" ^SC(10,"PR","B",73,1)="" ^SC(10,"PS")=0 ^SC(10,"SDP")="5^365^^365" ^SC(10,"SL")="15^^8^^^4^5" ^SC(10,"ST",0)="^44.005" ^SC(10,"ST",3081215,0)=3081215 ^SC(10,"ST",3081215,1)="MO 15 | [2 2|2 2 2 2] " ^SC(10,"ST",3081222,0)=3081222 ^SC(10,"ST",3081222,1)="MO 22 | [2 2|2 2 2 2] " ^SC(10,"ST",3081229,0)=3081229 ^SC(10,"ST",3081229,1)="MO 29 | [2 2|2 2 2 2] " ^SC(10,"ST",3090105,0)=3090105 ^SC(10,"ST",3090105,1)="MO 05 | [2 2|2 2 2 2] " ^SC(10,"ST",3090112,0)=3090112 ^SC(10,"ST",3090112,1)="MO 12 | [2 2|2 2 2 2] " ^SC(10,"T",0)="^44.002D^3081215^11" ^SC(10,"T",3081215,0)=3081215 ^SC(10,"T",3081215,2,0)="^44.004A^6^6" ^SC(10,"T",3081215,2,1,0)="0830^2" ^SC(10,"T",3081215,2,2,0)="0845^2" ^SC(10,"T",3081215,2,3,0)="0900^2" ^SC(10,"T",3081215,2,4,0)="0915^2" ^SC(10,"T",3081215,2,5,0)="0930^2" ^SC(10,"T",3081215,2,6,0)="0945^2" ^SC(10,"T1",0)="^44.07A^^" ^SC(10,"T1",9999999,0)=9999999 ^SC(10,"T1",9999999,1)="| [2 2|2 2 2 2] "
Comments:
- When adding a pattern indefinitely, it adds PATTERN slots for 5 weeks.
- The "ST" node holds PATTERN entries for 5 weeks, starting at given date.
- The "T" node holds the 10 min interval slots, starting at the given date.
- The TEMPLATE itself is stored in the T1 node. Because there was no prior entry, and no end date, then 9999999 ending date is used
EXAMPLE OF SLOT PATTERN FOR SET DAYS
Below is another pattern. Again, I cleared the location first.
GTM>do ^SDB Select CLINIC NAME: x_TEST_OFFICE TOPPENBERG,KEVIN S NAME: X_TEST_OFFICE// ABBREVIATION: CLINIC MEETS AT THIS FACILITY?: YES// SERVICE: MEDICINE// NON-COUNT CLINIC? (Y OR N): NO// ^ AVAILABILITY DATE: t+2 (DEC 15, 2008) MONDAY
TIME: 0830-1000 # APPTS/SLOT : 1// 2 TIME: | [2 2|2 2 2 2] ...PATTERN OK FOR MONDAYS INDEFINITELY? n (No) ...FOR DEC 15,2008? No// y (Yes) ...OK ...FOR DEC 22,2008? No// y (Yes) ...OK ...FOR DEC 29,2008? No// (No) ...FOR JAN 5,2009? No// (No) ...FOR JAN 12,2009? No// (No) ...FOR JAN 19,2009? No// (No) ...FOR JAN 26,2009? No// ^ AVAILABILITY DATE: GTM>zwr ^SC(10,*) ^SC(10,0)="X_TEST_OFFICE^^C^^^^342^M^^^lo^^^^^^N^^Y^^^1" ^SC(10,"AT")=9 ^SC(10,"OST",0)="^44.0002DA^^" ^SC(10,"OST",3081215,0)=3081215 ^SC(10,"OST",3081215,1)="MO 15 | [2 2|2 2 2 2] " ^SC(10,"OST",3081222,0)=3081222 ^SC(10,"OST",3081222,1)="MO 22 | [2 2|2 2 2 2] " ^SC(10,"PC")=1 ^SC(10,"PR",0)="^44.1P^1^1" ^SC(10,"PR",1,0)="73^1" ^SC(10,"PR","B",73,1)="" ^SC(10,"PS")=0 ^SC(10,"SDP")="5^365^^365" ^SC(10,"SL")="15^^8^^^4^5" ^SC(10,"ST",0)="^44.005" ^SC(10,"ST",3081215,0)=3081215 ^SC(10,"ST",3081215,1)="MO 15 | [2 2|2 2 2 2] " ^SC(10,"ST",3081215,9)=10 ^SC(10,"ST",3081222,0)=3081222 ^SC(10,"ST",3081222,1)="MO 22 | [2 2|2 2 2 2] " ^SC(10,"ST",3081222,9)=10 ^SC(10,"T",0)="^44.002D^3081215^13" ^SC(10,"T",3081215,0)=3081215 ^SC(10,"T",3081215,2,0)="^44.004A^6^6" ^SC(10,"T",3081215,2,1,0)="0830^2" ^SC(10,"T",3081215,2,2,0)="0845^2" ^SC(10,"T",3081215,2,3,0)="0900^2" ^SC(10,"T",3081215,2,4,0)="0915^2" ^SC(10,"T",3081215,2,5,0)="0930^2" ^SC(10,"T",3081215,2,6,0)="0945^2" ^SC(10,"T1",0)="^44.07A^^"
Comments:
- When NOT adding a pattern indefinitely, it adds slots only for the days indicated by the user.
- The "T" node holds the 10 min interval slots, starting at the given date, no change vs. indefinite addition
- The "ST" node holds the PATTERN entry for each of the 2 days specified by the user
- There is no Tx entries.
- There is are OST node (SPECIAL PATTERN) entries for the specified days. Thus is seems that the OST node entries replace the Tx nodes.
EXAMPLE OF MIXED FIXED AND THEN INDEFINITE DAYS
Below is a pattern were I created a set pattern in the future, then attempted to create an indefinite pattern starting BEFORE this fixed period. The result is that the pattern end date is set to the future date.
Select CLINIC NAME: x_TEST_OFFICE TOPPENBERG,KEVIN S NAME: X_TEST_OFFICE// ABBREVIATION: CLINIC MEETS AT THIS FACILITY?: YES// SERVICE: MEDICINE// ^ AVAILABILITY DATE: t+8 (DEC 21, 2008) SUNDAY TIME: 0800-1000 # APPTS/SLOT : 1// TIME: [1 1 1 1|1 1 1 1] ...PATTERN OK FOR SUNDAYS INDEFINITELY? n (No) ...FOR DEC 21,2008? No// y (Yes) ...OK ...FOR DEC 28,2008? No// y (Yes) ...OK ...FOR JAN 4,2009? No// y (Yes) ...OK ...FOR JAN 11,2009? No// (No) ...FOR JAN 18,2009? No// ^ AVAILABILITY DATE: GTM>do ^SDB Select CLINIC NAME: x_TEST_OFFICE TOPPENBERG,KEVIN S NAME: X_TEST_OFFICE// ABBREVIATION: CLINIC MEETS AT THIS FACILITY?: YES// ^ AVAILABILITY DATE: t+1 (DEC 14, 2008) SUNDAY TIME: 0900-1100 # APPTS/SLOT : 1// 2 TIME: | [2 2 2 2|2 2 2 2] ...PATTERN OK FOR SUNDAYS UNTIL DEC 21,2008? y (Yes) ...EXCUSE ME, I'M WORKING AS FAST AS I CAN... PATTERN FILED! AVAILABILITY DATE: Select CLINIC NAME:
GTM>zwr ^SC(10,*) ^SC(10,0)="X_TEST_OFFICE^^C^^^^342^M^^^lo^^^^^^N^^Y^^^1" ^SC(10,"AT")=9 ^SC(10,"OST",0)="^44.0002DA^^" ^SC(10,"OST",3081221,0)=3081221 ^SC(10,"OST",3081221,1)="SU 21 [1 1 1 1|1 1 1 1] ^SC(10,"OST",3081228,0)=3081228 ^SC(10,"OST",3081228,1)="SU 28 [1 1 1 1|1 1 1 1] ^SC(10,"OST",3090104,0)=3090104 ^SC(10,"OST",3090104,1)="SU 04 [1 1 1 1|1 1 1 1] ^SC(10,"PC")=1 ^SC(10,"PR",0)="^44.1P^1^1" ^SC(10,"PR",1,0)="73^1" ^SC(10,"PR","B",73,1)="" ^SC(10,"PS")=0 ^SC(10,"SDP")="5^365^^365" ^SC(10,"SL")="15^^8^^^4^5" ^SC(10,"ST",0)="^44.005" ^SC(10,"ST",3081214,0)=3081214 ^SC(10,"ST",3081214,1)="SU 14 | [2 2 2 2|2 2 2 2] ^SC(10,"ST",3081221,0)=3081221 ^SC(10,"ST",3081221,1)="SU 21 [1 1 1 1|1 1 1 1] ^SC(10,"ST",3081221,9)=10 ^SC(10,"ST",3081228,0)=3081228 ^SC(10,"ST",3081228,1)="SU 28 [1 1 1 1|1 1 1 1] ^SC(10,"ST",3081228,9)=10 ^SC(10,"ST",3090104,0)=3090104 ^SC(10,"ST",3090104,1)="SU 04 [1 1 1 1|1 1 1 1] ^SC(10,"ST",3090104,9)=10 ^SC(10,"T",0)="^44.002D^3081214^19" ^SC(10,"T",3081214,0)=3081214 ^SC(10,"T",3081214,2,0)="^44.004A^8^8" ^SC(10,"T",3081214,2,1,0)="0900^2" ^SC(10,"T",3081214,2,2,0)="0915^2" ^SC(10,"T",3081214,2,3,0)="0930^2" ^SC(10,"T",3081214,2,4,0)="0945^2" ^SC(10,"T",3081214,2,5,0)="1000^2" ^SC(10,"T",3081214,2,6,0)="1015^2" ^SC(10,"T",3081214,2,7,0)="1030^2" ^SC(10,"T",3081214,2,8,0)="1045^2" ^SC(10,"T",3081221,0)=3081221 ^SC(10,"T",3081221,2,0)="^44.004A^8^8" ^SC(10,"T",3081221,2,1,0)="0800^1" ^SC(10,"T",3081221,2,2,0)="0815^1" ^SC(10,"T",3081221,2,3,0)="0830^1" ^SC(10,"T",3081221,2,4,0)="0845^1" ^SC(10,"T",3081221,2,5,0)="0900^1" ^SC(10,"T",3081221,2,6,0)="0915^1" ^SC(10,"T",3081221,2,7,0)="0930^1" ^SC(10,"T",3081221,2,8,0)="0945^1" ^SC(10,"T0",0)="^44.06A^^" ^SC(10,"T0",3081221,0)=3081221 ^SC(10,"T0",3081221,1)="| [2 2 2 2|2 2 2 2] ^SC(10,"T1",0)="^44.07A^^"
Comments:
- Because I first added a set pattern (not indefinite) at t+8, I was then not given the option to add an indefinite pattern. Instead, I was given the option for a pattern from now until t+8.
- OST nodes were made for the first fixed pattern, and then T0 node was set for PATTERN entry.
- T node entries were made for each of the two sets. There is one pattern starting at 3081214, which changes at 3081221.
- ST node entries again show availability PATTERN combined from both the SPECIAL and TEMPLATE entries.
- Notice presences of ^SC(IEN,"ST",FMDate,9)=IEN nodes. This means that the pattern should be taken from the OST node of the same date, not the T0 nodes
EXAMPLE OF INDEFINITE PATTERN, AND THEN FIXED DAYS ADDED
Select CLINIC NAME: x_TEST_OFFICE TOPPENBERG,KEVIN S NAME: X_TEST_OFFICE// ABBREVIATION: CLINIC MEETS AT THIS FACILITY?: YES// ^ AVAILABILITY DATE: t (DEC 15, 2008) MONDAY TIME: 0800-1000 # APPTS/SLOT : 1// TIME: [1 1 1 1|1 1 1 1] ...PATTERN OK FOR MONDAYS INDEFINITELY? y (Yes) ...HMMM, I'M WORKING AS FAST AS I CAN... PATTERN FILED! AVAILABILITY DATE: t+14 (DEC 29, 2008) MONDAY TIME: 0900-1100 # APPTS/SLOT : 1// 2 TIME: | [2 2 2 2|2 2 2 2] ...PATTERN OK FOR MONDAYS INDEFINITELY? n (No) ...FOR DEC 29,2008? No// y (Yes) ...OK ...FOR JAN 5,2009? No// y (Yes) ...OK ...FOR JAN 12,2009? No// ^ AVAILABILITY DATE: GTM>zwr ^SC(10,*) ^SC(10,0)="X_TEST_OFFICE^^C^^^^342^M^^^lo^^^^^^N^^Y^^^1" ^SC(10,"AT")=9 ^SC(10,"OST",0)="^44.0002DA^^" ^SC(10,"OST",3081229,0)=3081229 ^SC(10,"OST",3081229,1)="MO 29 | [2 2 2 2|2 2 2 2] ^SC(10,"OST",3090105,0)=3090105 ^SC(10,"OST",3090105,1)="MO 05 | [2 2 2 2|2 2 2 2] ^SC(10,"PC")=1 ^SC(10,"PR",0)="^44.1P^1^1" ^SC(10,"PR",1,0)="73^1" ^SC(10,"PR","B",73,1)="" ^SC(10,"PS")=0 ^SC(10,"S",0)="^44.001DA^^" ^SC(10,"S",3081215.09,0)=3081215.09 ^SC(10,"S",3081215.09,1,0)="^44.003PA^^" ^SC(10,"S",3081215.09,1,1,0)="70774^15^^^^73^3081213" ^SC(10,"S",3090223.083,0)=3090223.083 ^SC(10,"S",3090223.083,1,0)="^44.003PA^^" ^SC(10,"S",3090223.083,1,1,0)="1^15^^^^73^3081213" ^SC(10,"SDP")="5^365^^365" ^SC(10,"SL")="15^^8^^^4^5" ^SC(10,"ST",0)="^44.005" ^SC(10,"ST",3081215,0)=3081215 ^SC(10,"ST",3081215,1)="MO 15 [1 1 1 1|0 1 1 1] ^SC(10,"ST",3081222,0)=3081222 ^SC(10,"ST",3081222,1)="MO 22 [1 1 1 1|1 1 1 1] " ^SC(10,"ST",3081229,0)=3081229 ^SC(10,"ST",3081229,1)="MO 29 | [2 2 2 2|2 2 2 2] ^SC(10,"ST",3081229,9)=10 ^SC(10,"ST",3090105,0)=3090105 ^SC(10,"ST",3090105,1)="MO 05 | [2 2 2 2|2 2 2 2] ^SC(10,"ST",3090105,9)=10 ^SC(10,"ST",3090112,0)=3090112 ^SC(10,"ST",3090112,1)="MO 12 [1 1 1 1|1 1 1 1] " ^SC(10,"ST",3090223,0)=3090223 ^SC(10,"ST",3090223,1)="MO 23 [1 1 0 1|1 1 1 1] ^SC(10,"T",0)="^44.002D^3081229^25" ^SC(10,"T",3081215,0)=3081215 ^SC(10,"T",3081215,2,0)="^44.004A^8^8" ^SC(10,"T",3081215,2,1,0)="0800^1" ^SC(10,"T",3081215,2,2,0)="0815^1" ^SC(10,"T",3081215,2,3,0)="0830^1" ^SC(10,"T",3081215,2,4,0)="0845^1" ^SC(10,"T",3081215,2,5,0)="0900^1" ^SC(10,"T",3081215,2,6,0)="0915^1" ^SC(10,"T",3081215,2,7,0)="0930^1" ^SC(10,"T",3081215,2,8,0)="0945^1" ^SC(10,"T",3081229,0)=3081229 ^SC(10,"T",3081229,2,0)="^44.004A^8^8" ^SC(10,"T",3081229,2,1,0)="0900^2" ^SC(10,"T",3081229,2,2,0)="0915^2" ^SC(10,"T",3081229,2,3,0)="0930^2" ^SC(10,"T",3081229,2,4,0)="0945^2" ^SC(10,"T",3081229,2,5,0)="1000^2" ^SC(10,"T",3081229,2,6,0)="1015^2" ^SC(10,"T",3081229,2,7,0)="1030^2" ^SC(10,"T",3081229,2,8,0)="1045^2" ^SC(10,"T0",0)="^44.06A^^" ^SC(10,"T1",0)="^44.07A^^" ^SC(10,"T1",9999999,0)=9999999 ^SC(10,"T1",9999999,1)="[1 1 1 1|1 1 1 1] "
Comments
- The TEMPLATE node (T1) is not changed by the subsequent addition of fixed days.
- The PATTERN node (ST) shows the mixture of the repeating template with superimposed fixed days.
- The AVAILABILITY node (T) has the availability times change starting at 3081229. This means that one can't simply look at the latest date in the T nodes and use that to determine slots.
EXAMPLE OF APPOINTMENT ADDED
Below is a record with just 1 appt was made for 12/15/08@0900
GTM>zwr ^SC(10,*) ^SC(10,0)="X_TEST_OFFICE^^C^^^^342^M^^^lo^^^^^^N^^Y^^^1" ^SC(10,"AT")=9 ^SC(10,"OST",0)="^44.0002DA^^" ^SC(10,"OST",3081215,0)=3081215 ^SC(10,"OST",3081215,1)="MO 15 | [2 2|2 2 2 2] " ^SC(10,"OST",3081222,0)=3081222 ^SC(10,"OST",3081222,1)="MO 22 | [2 2|2 2 2 2] " ^SC(10,"PC")=1 ^SC(10,"PR",0)="^44.1P^1^1" ^SC(10,"PR",1,0)="73^1" ^SC(10,"PR","B",73,1)="" ^SC(10,"PS")=0 ^SC(10,"S",0)="^44.001DA^^" ^SC(10,"S",3081215.09,0)=3081215.09 ^SC(10,"S",3081215.09,1,0)="^44.003PA^^" ^SC(10,"S",3081215.09,1,1,0)="70774^15^^^^73^3081213" ^SC(10,"SDP")="5^365^^365" ^SC(10,"SL")="15^^8^^^4^5" ^SC(10,"ST",0)="^44.005" ^SC(10,"ST",3081215,0)=3081215 ^SC(10,"ST",3081215,1)="MO 15 | [2 2|1 2 2 2] " ^SC(10,"ST",3081215,9)=10 ^SC(10,"ST",3081222,0)=3081222 ^SC(10,"ST",3081222,1)="MO 22 | [2 2|2 2 2 2] " ^SC(10,"ST",3081222,9)=10 ^SC(10,"T",0)="^44.002D^3081215^20" ^SC(10,"T",3081215,0)=3081215 ^SC(10,"T",3081215,2,0)="^44.004A^6^6" ^SC(10,"T",3081215,2,1,0)="0830^2" ^SC(10,"T",3081215,2,2,0)="0845^2" ^SC(10,"T",3081215,2,3,0)="0900^2" ^SC(10,"T",3081215,2,4,0)="0915^2" ^SC(10,"T",3081215,2,5,0)="0930^2" ^SC(10,"T",3081215,2,6,0)="0945^2" ^SC(10,"T0",0)="^44.06A^^" ^SC(10,"T1",0)="^44.07A^^"
Comments:
- Notice that the PATTERN node ("ST"), shows only 1 (not 2) spaces available at the appt time. Thus this is where the record of CURRENT AVAILABILITY is stored.
- The AVAILABILITY "T" node value of "2" patients allowd at 0900 is NOT changed.
Example of DELETING appts
Below shows an example of deleting appts, done by redefining the available appts for the same date.
Select CLINIC NAME: x_TEST_OFFICE TOPPENBERG,KEVIN S NAME: X_TEST_OFFICE// ABBREVIATION: CLINIC MEETS AT THIS FACILITY?: YES// ^ AVAILABILITY DATE: t+2 (DEC 15, 2008) MONDAY TIME: 0830-0840 [ TIME SPAN ENTERED NOT CONSISTENT WITH 15 MIN APPT LENGTH ] TIME: 0830-0845 # APPTS/SLOT : 1// 2 TIME: 0900-1130 # APPTS/SLOT : 1// TIME: 1300-1315 # APPTS/SLOT : 1// TIME: 1330-1630 # APPTS/SLOT : 1// TIME: | [2] [1 1 1 1|1 1 1 1|1 1] | [1] [1 1|1 1 1 1|1 1 1 1|1 1] ...PATTERN OK FOR MONDAYS INDEFINITELY? y (Yes) ...HMMM, LET ME THINK ABOUT THAT A MOMENT... PATTERN FILED!
AVAILABILITY DATE:
Select CLINIC NAME: GTM>zwr ^SC(10,*) ^SC(10,0)="X_TEST_OFFICE^^C^^^^342^M^^^lo^^^^^^N^^Y^^^1" ^SC(10,"AT")=9 ^SC(10,"OST",0)="^44.0002DA^^" ^SC(10,"PC")=1 ^SC(10,"PR",0)="^44.1P^1^1" ^SC(10,"PR",1,0)="73^1" ^SC(10,"PR","B",73,1)="" ^SC(10,"PS")=0 ^SC(10,"S",0)="^44.001DA^^" ^SC(10,"S",3081215.09,0)=3081215.09 ^SC(10,"S",3081215.09,1,0)="^44.003PA^^" ^SC(10,"S",3081215.09,1,1,0)="70774^15^^^^73^3081213" ^SC(10,"SDP")="5^365^^365" ^SC(10,"SL")="15^^8^^^4^5" ^SC(10,"ST",0)="^44.005" ^SC(10,"ST",3081215,0)=3081215 ^SC(10,"ST",3081215,1)="MO 15 | [2] [0 1 1 1|1 1 1 1|1 1] | [1] [1 1|1 1 1 1|1 1 1 1|1 1]" ^SC(10,"ST",3081222,0)=3081222 ^SC(10,"ST",3081222,1)="MO 22 | [2] [1 1 1 1|1 1 1 1|1 1] | [1] [1 1|1 1 1 1|1 1 1 1|1 1] " ^SC(10,"ST",3081229,0)=3081229 ^SC(10,"ST",3081229,1)="MO 29 | [2] [1 1 1 1|1 1 1 1|1 1] | [1] [1 1|1 1 1 1|1 1 1 1|1 1] " ^SC(10,"ST",3090105,0)=3090105 ^SC(10,"ST",3090105,1)="MO 05 | [2] [1 1 1 1|1 1 1 1|1 1] | [1] [1 1|1 1 1 1|1 1 1 1|1 1] " ^SC(10,"ST",3090112,0)=3090112 ^SC(10,"ST",3090112,1)="MO 12 | [2] [1 1 1 1|1 1 1 1|1 1] | [1] [1 1|1 1 1 1|1 1 1 1|1 1] " ^SC(10,"T",0)="^44.002D^3081215^21" ^SC(10,"T",3081215,0)=3081215 ^SC(10,"T",3081215,2,0)="^44.004A^24^24" ^SC(10,"T",3081215,2,1,0)="0830^2" ^SC(10,"T",3081215,2,2,0)="0900^1" ^SC(10,"T",3081215,2,3,0)="0915^1" ^SC(10,"T",3081215,2,4,0)="0930^1" ^SC(10,"T",3081215,2,5,0)="0945^1" ^SC(10,"T",3081215,2,6,0)="1000^1" ^SC(10,"T",3081215,2,7,0)="1015^1" ^SC(10,"T",3081215,2,8,0)="1030^1" ^SC(10,"T",3081215,2,9,0)="1045^1" ^SC(10,"T",3081215,2,10,0)="1100^1" ^SC(10,"T",3081215,2,11,0)="1115^1" ^SC(10,"T",3081215,2,12,0)="1300^1" ^SC(10,"T",3081215,2,13,0)="1330^1" ^SC(10,"T",3081215,2,14,0)="1345^1" ^SC(10,"T",3081215,2,15,0)="1400^1" ^SC(10,"T",3081215,2,16,0)="1415^1" ^SC(10,"T",3081215,2,17,0)="1430^1" ^SC(10,"T",3081215,2,18,0)="1445^1" ^SC(10,"T",3081215,2,19,0)="1500^1" ^SC(10,"T",3081215,2,20,0)="1515^1" ^SC(10,"T",3081215,2,21,0)="1530^1" ^SC(10,"T",3081215,2,22,0)="1545^1" ^SC(10,"T",3081215,2,23,0)="1600^1" ^SC(10,"T",3081215,2,24,0)="1615^1" ^SC(10,"T0",0)="^44.06A^^" ^SC(10,"T1",0)="^44.07A^^" ^SC(10,"T1",9999999,0)=9999999 ^SC(10,"T1",9999999,1)="| [2] [1 1 1 1|1 1 1 1|1 1] | [1] [1 1|1 1 1 1|1 1 1 1|1 1] " GTM>do ^SDB Select CLINIC NAME: x_TEST_OFFICE TOPPENBERG,KEVIN S NAME: X_TEST_OFFICE// ABBREVIATION: CLINIC MEETS AT THIS FACILITY?: YES// ^ AVAILABILITY DATE: t+2 (DEC 15, 2008) MONDAY TIME: 0830-0845 # APPTS/SLOT : 1// TIME: | [1] ...PATTERN OK FOR MONDAYS INDEFINITELY? y (Yes) ...HMMM, LET ME PUT YOU ON 'HOLD' FOR A SECOND... PATTERN FILED! AVAILABILITY DATE: Select CLINIC NAME:
GTM>zwr ^SC(10,*) ^SC(10,0)="X_TEST_OFFICE^^C^^^^342^M^^^lo^^^^^^N^^Y^^^1" ^SC(10,"AT")=9 ^SC(10,"OST",0)="^44.0002DA^^" ^SC(10,"PC")=1 ^SC(10,"PR",0)="^44.1P^1^1" ^SC(10,"PR",1,0)="73^1" ^SC(10,"PR","B",73,1)="" ^SC(10,"PS")=0 ^SC(10,"S",0)="^44.001DA^^" ^SC(10,"S",3081215.09,0)=3081215.09 ^SC(10,"S",3081215.09,1,0)="^44.003PA^^" ^SC(10,"S",3081215.09,1,1,0)="70774^15^^^^73^3081213" ^SC(10,"S",3081215.09,1,1,"OB")="O" ^SC(10,"SDP")="5^365^^365" ^SC(10,"SL")="15^^8^^^4^5" ^SC(10,"ST",0)="^44.005" ^SC(10,"ST",3081215,0)=3081215 ^SC(10,"ST",3081215,1)="MO 15 | [1] * " ^SC(10,"ST",3081222,0)=3081222 ^SC(10,"ST",3081222,1)="MO 22 | [1] " ^SC(10,"ST",3081229,0)=3081229 ^SC(10,"ST",3081229,1)="MO 29 | [1] " ^SC(10,"ST",3090105,0)=3090105 ^SC(10,"ST",3090105,1)="MO 05 | [1] " ^SC(10,"ST",3090112,0)=3090112 ^SC(10,"ST",3090112,1)="MO 12 | [1] " ^SC(10,"T",0)="^44.002D^3081215^22" ^SC(10,"T",3081215,0)=3081215 ^SC(10,"T",3081215,2,0)="^44.004A^1^1" ^SC(10,"T",3081215,2,1,0)="0830^1" ^SC(10,"T0",0)="^44.06A^^" ^SC(10,"T1",0)="^44.07A^^" ^SC(10,"T1",3081215,0)=3081215 ^SC(10,"T1",3081215,1)="| [2] [1 1 1 1|1 1 1 1|1 1] | [1] [1 1|1 1 1 1|1 1 1 1|1 1] " ^SC(10,"T1",9999999,0)=9999999 ^SC(10,"T1",9999999,1)="| [1] "
Comments:
- The "T" nodes are simply erased and replaced by the new pattern
- The "T1" node has 2 date ranges. 1st is up to (but not including) 3081215, and the 2nd is from 3081215 onward
- The "ST" node shows a * that I think indicates an appt with no slot
Example of Browsing into the Future
GTM>zwr ^SC(10,*) ^SC(10,0)="X_TEST_OFFICE^^C^^^^342^M^^^lo^^^^^^N^^Y^^^1" ^SC(10,"AT")=9 ^SC(10,"OST",0)="^44.0002DA^^" ^SC(10,"PC")=1 ^SC(10,"PR",0)="^44.1P^1^1" ^SC(10,"PR",1,0)="73^1" ^SC(10,"PR","B",73,1)="" ^SC(10,"PS")=0 ^SC(10,"S",0)="^44.001DA^^" ^SC(10,"S",3081215.09,0)=3081215.09 ^SC(10,"S",3081215.09,1,0)="^44.003PA^^" ^SC(10,"S",3081215.09,1,1,0)="70774^15^^^^73^3081213" ^SC(10,"S",3090223.083,0)=3090223.083 ^SC(10,"S",3090223.083,1,0)="^44.003PA^^" ^SC(10,"S",3090223.083,1,1,0)="1^15^^^^73^3081213" ^SC(10,"SDP")="5^365^^365" ^SC(10,"SL")="15^^8^^^4^5" ^SC(10,"ST",0)="^44.005" ^SC(10,"ST",3081215,0)=3081215 ^SC(10,"ST",3081215,1)="MO 15 | [1 1|0 1 1 1] ^SC(10,"ST",3081222,0)=3081222 ^SC(10,"ST",3081222,1)="MO 22 | [1 1|1 1 1 1] " ^SC(10,"ST",3081229,0)=3081229 ^SC(10,"ST",3081229,1)="MO 29 | [1 1|1 1 1 1] " ^SC(10,"ST",3090105,0)=3090105 ^SC(10,"ST",3090105,1)="MO 05 | [1 1|1 1 1 1] " ^SC(10,"ST",3090112,0)=3090112 ^SC(10,"ST",3090112,1)="MO 12 | [1 1|1 1 1 1] " ^SC(10,"ST",3090119,0)=3090119 ^SC(10,"ST",3090119,1)="MO 19 | [1 1|1 1 1 1] " ^SC(10,"ST",3090126,0)=3090126 ^SC(10,"ST",3090126,1)="MO 26 | [1 1|1 1 1 1] " ^SC(10,"ST",3090202,0)=3090202 ^SC(10,"ST",3090202,1)="MO 02 | [1 1|1 1 1 1] " ^SC(10,"ST",3090209,0)=3090209 ^SC(10,"ST",3090209,1)="MO 09 | [1 1|1 1 1 1] " ^SC(10,"ST",3090216,0)=3090216 ^SC(10,"ST",3090216,1)="MO 16 | [1 1|1 1 1 1] " ^SC(10,"ST",3090223,0)=3090223 ^SC(10,"ST",3090223,1)="MO 23 | [0 1|1 1 1 1] " ^SC(10,"T",0)="^44.002D^3081215^23" ^SC(10,"T",3081215,0)=3081215 ^SC(10,"T",3081215,2,0)="^44.004A^6^6" ^SC(10,"T",3081215,2,1,0)="0830^1" ^SC(10,"T",3081215,2,2,0)="0845^1" ^SC(10,"T",3081215,2,3,0)="0900^1" ^SC(10,"T",3081215,2,4,0)="0915^1" ^SC(10,"T",3081215,2,5,0)="0930^1" ^SC(10,"T",3081215,2,6,0)="0945^1" ^SC(10,"T0",0)="^44.06A^^" ^SC(10,"T1",0)="^44.07A^^" ^SC(10,"T1",9999999,0)=9999999 ^SC(10,"T1",9999999,1)="| [1 1|1 1 1 1] "
Comments:
- An inital ^SDB was used, and 5 week's worth of MONDAY's were created
- Then, as I used the MAKE AN APPOINTMENT menu option, and browsed into the future, more days were automatically added to the "ST" nodes
- Finally, an appt was set at 2/23/09@0800
- Notee: As I have cleared this test clinic each time between tests, I have not cleared out the S nodes, which are actual existing appts. Notice that when the current availability string is constructed for the given date, pre-existing appts are taken into account, and automatically notes (e.g. 12/15/08@0900 appt is shown.)
= Patterns to consider
Below are possible scheduling patterns to consider. I will use *** to indicated days using a TEMPLATE, and !!! indicate days that were specified as specialized patterns (i.e. fixed days). 1**** means that *** days were added first. 2***** means that these were added second, 3!!!! would be added third etc.
- 1***** 2!!! **** 3!!!
- 2***** 1!!! 3********
- others...