Scheduling Issues

This will contain notes as the data structures for clinic scheduling is explored.

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] -0;1             .01   -AVAILABILITY                              [MDX] -2;0               2   -SCHEDULE TIME                  <-Mult [44.004A] --0;1           .01    --SCHEDULE TIME                           [MFX] --0;2             1    --NUMBER OF PATIENTS                    [NJ2,0] -Computed          3   -DAY OF WEEK                              [CJ15] -Computed          4   -NUMBEROFDAY                               [CJ1]

Date/Time set up for clinic availability -    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] -0;1             .01   -PATTERN DATE                              [MDX] -1;E1,90           1   -CURRENT AVAILABILITY                        [F] -Computed          2   -MAINTENANCE                              [CJ8X] -9;1               3   -SPECIAL AVAILABILITY FLAG                  [DX]

OST;0          1921.5  SPECIAL PATTERN            W:^ <-Mult [44.0002DA] -0;1             .01   -PATTERN DATE                               [DX] -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] -0;1             .01   -LIMIT DATE                             [NJ7,0X] -1;E1,80           1   -MASTER PATTERN                              [F] T1;0             1923  MONDAY TEMPLATE               W:^ <-Mult [44.07A] -0;1             .01   -LIMIT DATE                             [NJ7,0X] -1;E1,80           1   -MASTER PATTERN                              [F] T2;0             1924  TUESDAY TEMPLATE              W:^ <-Mult [44.08A] -0;1             .01   -LIMIT DATE                             [NJ7,0X] -1;E1,80           1   -MASTER PATTERN                              [F] T3;0             1925  WEDNESDAY TEMPLATE            W:^ <-Mult [44.09A] -0;1             .01   -LIMIT DATE                             [NJ7,0X] -1;1               1   -MASTER PATTERN                              [F] T4;0             1926  THURSDAY TEMPLATE            W:^ <-Mult [44.008A] -0;1             .01   -LIMIT DATE                             [NJ7,0X] -1;E1,80           1   -MASTER PATTERN                              [F] T5;0             1927  FRIDAY TEMPLATE              W:^ <-Mult [44.009A] -0;1             .01   -LIMIT DATE                             [NJ7,0X] -1;E1,80           1   -MASTER PATTERN                              [F] T6;0             1928  SATURDAY TEMPLATE           W:^ <-Mult [44.0001A] -0;1             .01   -LIMIT DATE                             [NJ7,0X] -1;E1,80           1   -MASTER PATTERN                              [F]

APPOINTMENTS subfile entries. For a given LIMIT DATE, it stores actual appts. -

S;0              1900  APPOINTMENT                 W:^ <-Mult [44.001DA] -0;1             .01   -APPOINTMENT DATE/TIME                     [MDX] -1;0               2   -PATIENT                       <-Mult [44.003PA] --0;1           .01    --PATIENT                        <-Pntr  [MP2'] --0;2             1    --LENGTH OF APP'T                       [NJ3,0] --0;3             2    --XRAY                                      [F] --0;4             3    --OTHER                                     [F] --0;5             4    --WARD LOC                                  [F] --0;6             7    --DATA ENTRY CLERK              <-Pntr  [P200'] --0;7             8    --DATE APPOINTMENT MADE                     [D] --0;8            10    --PRIOR X-RAY RESULTS TO CLINIC? [S] --0;9           310    --APPOINTMENT CANCELLED? [S] --0;10           30    --ELIGIBILITY OF VISIT          <-Pntr  [*P8'X]       --OB;1             9    --OVERBOOK                                  [S] --RTR;1         200    --PARENT Record REQUEST #    <-Pntr  [*P190.1'] --C;1           309    --CHECKED-I N                               [DX] --C;2           302    --CHECK IN USER                 <-Pntr  [P200'] --C;3           303    --CHECKED OUT                              [DX] --C;4           304    --CHECK OUT USER                <-Pntr  [P200'] --C;5           305    --CHECK IN ENTERED                          [D] --C;6           306    --CHECK OUT ENTERED                         [D]

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 MULTIPLE FIXED DAYS
Select CLINIC NAME: x_TEST_OFFICE      TOPPENBERG,KEVIN S  NAME: X_TEST_OFFICE// ABBREVIATION: ^

AVAILABILITY DATE: t+1 (JAN 05, 2009)  MONDAY TIME: 0830-1130  # APPTS/SLOT : 1// TIME: |  [1 1|1 1 1 1|1 1 1 1|1 1]  ...PATTERN OK FOR MONDAYS INDEFINITELY? y (Yes) ...EXCUSE ME, LET ME THINK ABOUT THAT A MOMENT... PATTERN FILED!

AVAILABILITY DATE: t+2 (JAN 06, 2009)  TUESDAY TIME: 0830-1130  # APPTS/SLOT : 1//  2 TIME: |  [2 2|2 2 2 2|2 2 2 2|2 2]  ...PATTERN OK FOR TUESDAYS INDEFINITELY? y (Yes) ...EXCUSE ME, HOLD ON... PATTERN FILED!

AVAILABILITY DATE: t+3 (JAN 07, 2009)  WEDNESDAY TIME: 0830-1130  # APPTS/SLOT : 1//  3 TIME: |  [3 3|3 3 3 3|3 3 3 3|3 3]  ...PATTERN OK FOR WEDNESDAYS INDEFINITELY? y (Yes) ...SORRY, HOLD ON... 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",3090105.09,0)=3090105.09 ^SC(10,"S",3090105.09,1,0)="^44.003PA^^" ^SC(10,"S",3090105.09,1,1,0)="1^15^^^^73^3090104" ... ^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",3090105,0)=3090105 ^SC(10,"ST",3090105,1)="MO 05 |   [1 1|0 1 1 1|1 1 1 1|1 1] " ^SC(10,"ST",3090106,0)=3090106 ^SC(10,"ST",3090106,1)="TU 06 |   [2 2|2 2 2 2|2 2 2 2|2 2] " ^SC(10,"ST",3090107,0)=3090107 ^SC(10,"ST",3090107,1)="WE 07 |   [3 3|3 3 3 3|3 3 3 3|3 3] " ^SC(10,"ST",3090112,0)=3090112 ^SC(10,"ST",3090112,1)="MO 12 |   [1 1|1 1 1 1|1 1 1 1|1 1] " ^SC(10,"ST",3090113,0)=3090113 ^SC(10,"ST",3090113,1)="TU 13 |   [2 2|2 2 2 2|2 2 2 2|2 2] " ^SC(10,"ST",3090114,0)=3090114 ^SC(10,"ST",3090114,1)="WE 14 |   [3 3|3 3 3 3|3 3 3 3|3 3] " ^SC(10,"ST",3090119,0)=3090119 ^SC(10,"ST",3090119,1)="MO 19 |   [1 1|1 1 1 1|1 1 1 1|1 1] " ^SC(10,"ST",3090120,0)=3090120 ^SC(10,"ST",3090120,1)="TU 20 |   [2 2|2 2 2 2|2 2 2 2|2 2] " ^SC(10,"ST",3090121,0)=3090121 ^SC(10,"ST",3090121,1)="WE 21 |   [3 3|3 3 3 3|3 3 3 3|3 3] " ^SC(10,"ST",3090126,0)=3090126 ^SC(10,"ST",3090126,1)="MO 26 |   [1 1|1 1 1 1|1 1 1 1|1 1] " ^SC(10,"ST",3090127,0)=3090127 ^SC(10,"ST",3090127,1)="TU 27 |   [2 2|2 2 2 2|2 2 2 2|2 2] " ^SC(10,"ST",3090128,0)=3090128 ^SC(10,"ST",3090128,1)="WE 28 |   [3 3|3 3 3 3|3 3 3 3|3 3] " ^SC(10,"ST",3090202,0)=3090202 ^SC(10,"ST",3090202,1)="MO 02 |   [1 1|1 1 1 1|1 1 1 1|1 1] " ^SC(10,"ST",3090203,0)=3090203 ^SC(10,"ST",3090203,1)="TU 03 |   [2 2|2 2 2 2|2 2 2 2|2 2] " ^SC(10,"ST",3090204,0)=3090204 ^SC(10,"ST",3090204,1)="WE 04 |   [3 3|3 3 3 3|3 3 3 3|3 3] " ^SC(10,"ST",3090210,0)=3090210 ^SC(10,"ST",3090210,1)="TU 10 |   [2 2|1 2 2 2|2 2 2 2|2 2] " ^SC(10,"ST",3090223,0)=3090223 ^SC(10,"ST",3090223,1)="MO 23 |   [0 1|1 1 1 1|1 1 1 1|1 1] " ^SC(10,"T",0)="^44.002D^3090107^6" ^SC(10,"T",3090105,0)=3090105 ^SC(10,"T",3090105,2,0)="^44.004A^12^12" ^SC(10,"T",3090105,2,1,0)="0830^1" ^SC(10,"T",3090105,2,2,0)="0845^1" ^SC(10,"T",3090105,2,3,0)="0900^1" ^SC(10,"T",3090105,2,4,0)="0915^1" ^SC(10,"T",3090105,2,5,0)="0930^1" ^SC(10,"T",3090105,2,6,0)="0945^1" ^SC(10,"T",3090105,2,7,0)="1000^1" ^SC(10,"T",3090105,2,8,0)="1015^1" ^SC(10,"T",3090105,2,9,0)="1030^1" ^SC(10,"T",3090105,2,10,0)="1045^1" ^SC(10,"T",3090105,2,11,0)="1100^1" ^SC(10,"T",3090105,2,12,0)="1115^1" ^SC(10,"T",3090106,0)=3090106 ^SC(10,"T",3090106,2,0)="^44.004A^12^12" ^SC(10,"T",3090106,2,1,0)="0830^2" ^SC(10,"T",3090106,2,2,0)="0845^2" ^SC(10,"T",3090106,2,3,0)="0900^2" ^SC(10,"T",3090106,2,4,0)="0915^2" ^SC(10,"T",3090106,2,5,0)="0930^2" ^SC(10,"T",3090106,2,6,0)="0945^2" ^SC(10,"T",3090106,2,7,0)="1000^2" ^SC(10,"T",3090106,2,8,0)="1015^2" ^SC(10,"T",3090106,2,9,0)="1030^2" ^SC(10,"T",3090106,2,10,0)="1045^2" ^SC(10,"T",3090106,2,11,0)="1100^2" ^SC(10,"T",3090106,2,12,0)="1115^2" ^SC(10,"T",3090107,0)=3090107 ^SC(10,"T",3090107,2,0)="^44.004A^12^12" ^SC(10,"T",3090107,2,1,0)="0830^3" ^SC(10,"T",3090107,2,2,0)="0845^3" ^SC(10,"T",3090107,2,3,0)="0900^3" ^SC(10,"T",3090107,2,4,0)="0915^3" ^SC(10,"T",3090107,2,5,0)="0930^3" ^SC(10,"T",3090107,2,6,0)="0945^3" ^SC(10,"T",3090107,2,7,0)="1000^3" ^SC(10,"T",3090107,2,8,0)="1015^3" ^SC(10,"T",3090107,2,9,0)="1030^3" ^SC(10,"T",3090107,2,10,0)="1045^3" ^SC(10,"T",3090107,2,11,0)="1100^3" ^SC(10,"T",3090107,2,12,0)="1115^3" ^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 1 1|1 1] " ^SC(10,"T2",0)="^44.08A^^" ^SC(10,"T2",9999999,0)=9999999 ^SC(10,"T2",9999999,1)="|  [2 2|2 2 2 2|2 2 2 2|2 2] " ^SC(10,"T3",0)="^44.09A^^" ^SC(10,"T3",9999999,0)=9999999 ^SC(10,"T3",9999999,1)="|  [3 3|3 3 3 3|3 3 3 3|3 3] " ^SC(10,"T6",0)="^44.0001A^^"

Notes: * The T node contains 3 different patterns, one for each of the days entered. To determine which of these patterns applies, one would have to determine which day of the week each pattern exists on, and then find the appropriate pattern. * The ST nodes have been filled in due to browsing for making an appt (not shown here).

TEMP
A dump of trying to do the same setup as above, using custome API (still in dev).

API CALL

Here is Clinic array now: ^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",3090105.09,0)=3090105.09 ^SC(10,"S",3090105.09,1,0)="^44.003PA^^" ^SC(10,"S",3090105.09,1,1,0)="1^15^^^^73^3090104" ^SC(10,"S",3090110.083,0)=3090110.083 ^SC(10,"S",3090110.083,1,0)="^44.003PA^^" ^SC(10,"S",3090110.083,1,1,0)="2^15^^^^73^3090104" ^SC(10,"S",3090110.09,0)=3090110.09 ^SC(10,"S",3090110.09,1,0)="^44.003PA^^" ^SC(10,"S",3090110.09,1,1,0)="1^15^^^^73^3090104" ^SC(10,"S",3090110.0915,0)=3090110.0915 ^SC(10,"S",3090110.0915,1,0)="^44.003PA^^" ^SC(10,"S",3090110.0915,1,1,0)="70695^15^^^^73^3090104" ^SC(10,"S",3090110.093,0)=3090110.093 ^SC(10,"S",3090110.093,1,0)="^44.003PA^^" ^SC(10,"S",3090110.093,1,1,0)="70773^15^^^^73^3090104" ^SC(10,"S",3090110.0945,0)=3090110.0945 ^SC(10,"S",3090110.0945,1,0)="^44.003PA^^" ^SC(10,"S",3090110.0945,1,1,0)="70774^15^^^^73^3090104" ^SC(10,"S",3090110.1,0)=3090110.1 ^SC(10,"S",3090110.1,1,0)="^44.003PA^^" ^SC(10,"S",3090110.1,1,1,0)="70774^15^^^^73^3090104" ^SC(10,"S",3090110.1015,0)=3090110.1015 ^SC(10,"S",3090110.1015,1,0)="^44.003PA^^" ^SC(10,"S",3090110.1015,1,1,0)="70787^15^^^^73^3090104" ^SC(10,"S",3090110.103,0)=3090110.103 ^SC(10,"S",3090110.103,1,0)="^44.003PA^^" ^SC(10,"S",3090110.103,1,1,0)="70787^15^^^^73^3090104" ^SC(10,"S",3090110.1045,0)=3090110.1045 ^SC(10,"S",3090110.1045,1,0)="^44.003PA^^" ^SC(10,"S",3090110.1045,1,1,0)="74274^15^^^^73^3090104" ^SC(10,"S",3090210.09,0)=3090210.09 ^SC(10,"S",3090210.09,1,0)="^44.003PA^^" ^SC(10,"S",3090210.09,1,1,0)="70774^15^^^^73^3081213" ^SC(10,"S",3090214.09,0)=3090214.09 ^SC(10,"S",3090214.09,1,0)="^44.003PA^^" ^SC(10,"S",3090214.09,1,1,0)="70774^15^^^^73^3090104" ^SC(10,"S",3090214.09,1,1,"OB")="O" ^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",3090105,0)=3090105 ^SC(10,"ST",3090105,1)="MO 05 |   [1 1|0 1 1 1|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|1 1 1 1|1 1]                                   " ^SC(10,"T",0)="^44.002D^3090107^3" ^SC(10,"T",3090105,0)=3090105 ^SC(10,"T",3090105,2,0)="^44.004A^12^12" ^SC(10,"T",3090105,2,1,0)="0830^1" ^SC(10,"T",3090105,2,2,0)="0845^1" ^SC(10,"T",3090105,2,3,0)="0900^1" ^SC(10,"T",3090105,2,4,0)="0915^1" ^SC(10,"T",3090105,2,5,0)="0930^1" ^SC(10,"T",3090105,2,6,0)="0945^1" ^SC(10,"T",3090105,2,7,0)="1000^1" ^SC(10,"T",3090105,2,8,0)="1015^1" ^SC(10,"T",3090105,2,9,0)="1030^1" ^SC(10,"T",3090105,2,10,0)="1045^1" ^SC(10,"T",3090105,2,11,0)="1100^1" ^SC(10,"T",3090105,2,12,0)="1115^1" ^SC(10,"T",3090106,0)=3090106 ^SC(10,"T",3090106,2,0)="^44.004A^12^12" ^SC(10,"T",3090106,2,1,0)="0830^2" ^SC(10,"T",3090106,2,2,0)="0845^2" ^SC(10,"T",3090106,2,3,0)="0900^2" ^SC(10,"T",3090106,2,4,0)="0915^2" ^SC(10,"T",3090106,2,5,0)="0930^2" ^SC(10,"T",3090106,2,6,0)="0945^2" ^SC(10,"T",3090106,2,7,0)="1000^2" ^SC(10,"T",3090106,2,8,0)="1015^2" ^SC(10,"T",3090106,2,9,0)="1030^2" ^SC(10,"T",3090106,2,10,0)="1045^2" ^SC(10,"T",3090106,2,11,0)="1100^2" ^SC(10,"T",3090106,2,12,0)="1115^2" ^SC(10,"T",3090107,0)=3090107 ^SC(10,"T",3090107,2,0)="^44.004A^12^12" ^SC(10,"T",3090107,2,1,0)="0830^3" ^SC(10,"T",3090107,2,2,0)="0845^3" ^SC(10,"T",3090107,2,3,0)="0900^3" ^SC(10,"T",3090107,2,4,0)="0915^3" ^SC(10,"T",3090107,2,5,0)="0930^3" ^SC(10,"T",3090107,2,6,0)="0945^3" ^SC(10,"T",3090107,2,7,0)="1000^3" ^SC(10,"T",3090107,2,8,0)="1015^3" ^SC(10,"T",3090107,2,9,0)="1030^3" ^SC(10,"T",3090107,2,10,0)="1045^3" ^SC(10,"T",3090107,2,11,0)="1100^3" ^SC(10,"T",3090107,2,12,0)="1115^3" ^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 1 1|1 1] " ^SC(10,"T2",0)="^44.08A^^" ^SC(10,"T2",9999999,0)=9999999 ^SC(10,"T2",9999999,1)="|  [2 2|2 2 2 2|2 2 2 2|2 2] " ^SC(10,"T3",0)="^44.09A^^" ^SC(10,"T3",9999999,0)=9999999 ^SC(10,"T3",9999999,1)="|  [3 3|3 3 3 3|3 3 3 3|3 3] " ^SC(10,"T4",0)="^44.08A^^" ^SC(10,"T5",0)="^44.09A^^" ^SC(10,"T6",0)="^44.0001A^^"

Notes:

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 appt slots
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...

Cancelling Appts for Individual Patients
Here is an example appt for patient `70685 on 2/23/09 at 0900

Below is data from the HOSPITAL LOCATION file, in the "S" node

^SC(10,"S",3090223.09,0)=3090223.09 ^SC(10,"S",3090223.09,1,0)="^44.003PA^^" ^SC(10,"S",3090223.09,1,1,0)="70685^15^Bring xrays!^^^73^3090221.1335"

Information about the appt is also stored is the PATIENT file, in the "S" node. Below is is the same appt as above: ^DPT(70685,"S",3090223.09,0)="10^^^^^^3^^^^^^^^^9^^^3090223^^^^^0^C^0" ^DPT(70685,"S",3090223.09,1)="3090223^1"

The above appt was cancelled via the roll-and-scroll interface. Below is the same appt re-dumped. Notice that the Record structure remains, but the information pointing the the patient etc are simply removed.

^SC(10,"S",3090223.09,0)=3090223.09 ^SC(10,"S",3090223.09,1,0)="^44.003PA^^"

Below is the appt information stored in the PATIENT file. Notice that the appt Record remains, but it is now marked as cancelled. ^DPT(70685,"S",3090223.09,0)="10^C^^^^^3^^^^^73^^3090222.0922^13^9^^73^3090221.1335^^^^^0^C^0" ^DPT(70685,"S",3090223.09,1)="3090223^1" ^DPT(70685,"S",3090223.09,"R")="Testing cancellation"

Also, a new index entry is created: ^DPT("ASDCN",10,3090223.09,70685)="" ;<-- 1 if patient canceled, otherwise ""

Below is the above ^DPT entry with field names:

Record# 3090127.083,70685, .001-APPOINTMENT DATE/TIME : JAN 27, 2009@08:30 .01-CLINIC : X_TEST_OFFICE 4-REAL APPOINTMENT : 1 9-PURPOSE OF VISIT : SCHEDULED VISIT 9.5-APPOINTMENT TYPE : REGULAR 20-DATE APPT. MADE : JAN 27, 2009 25-SCHEDULING REQUEST TYPE : OTHER THAN 'NEXT AVA.' (CLINICIAN REQ.) 26-NEXT AVA. APPT. INDICATOR : NOT INDICATED TO BE A 'NEXT AVA.' APPT. 27-DESIRED DATE OF APPOINTMENT : JAN 27, 2009 28-FOLLOW-UP VISIT : YES 100-CURRENT STATUS : NO Action TAKEN

For some reason, field 3 is not shown. It is a set as below. So the C means 'Cancelled':

N: NO-SHOW C: CANCELLED BY CLINIC NA: NO-SHOW & AUTO RE-BOOK CA: CANCELLED BY CLINIC & AUTO RE-BOOK I: INPATIENT APPOINTMENT PC: CANCELLED BY PATIENT PCA:CANCELLED BY PATIENT & AUTO-REBOOK NT: NO Action TAKEN

1 2    7     12      14       15    18    19  ^DPT(70685,"S",3090223.09,0)="10^ ^^^^^3^^^^^  ^^            ^  ^9^^  ^3090223     ^^^^^0^C^0" ^DPT(70685,"S",3090223.09,0)="10^C^^^^^3^^^^^73^^3090222.0922^13^9^^73^3090221.1335^^^^^0^C^0"

Notice that the fields that are changed upon deletion of an appt are as follows: Piece# NAME (Field Num): Value change ---  2 STATUS (#3):                    null --> C  12 NO-SHOW/CANCELLED BY (#14):     null --> 73 (a pointer) 14 NO-SHOW/CANCEL DATE/TIME (#15): null --> date 15 CANCELLATION REASON (#16):     null --> 13 ( pointer) 18 DATA ENTRY CLERK (#19):        null --? 73 19 DATE APPT. MADE (#20):         date1 --> date2

Below is the data dictionary for the entry in the PATIENT file

S;0              1900  APPOINTMENT                    W:^ <-Mult [2.98P] -               .001   -APPOINTMENT DATE/TIME                       [D] -0;1             .01   -CLINIC                         <-Pntr  [MP44'X]      -Computed         .02   -TELEPHONE OF CLINIC                      [CJ14] -0;2               3   -STATUS                                      [S] -Computed          4   -REAL APPOINTMENT                           [BC] -0;3               5   -LAB DATE/TIME                               [D] -0;4               6   -X-RAY DATE/TIME                             [D] -0;5               7   -EKG DATE/TIME                               [D] -0;6               8   -Routing Slip PRINTED                        [S] -0;13            8.5   -{[ROUTING SLIP~|Routing Slip]] PRINT DATE                     [D] -0;7               9   -PURPOSE OF VISIT                           [RS] -0;16            9.5   -APPOINTMENT TYPE              <-Pntr  [P409.1'] -0;8              10   -Special Survey DISPOSITION              [NJ1,0] -0;9              11   -NUMBER OF COLLATERAL SEEN               [NJ1,0] -0;10             12   -AUTO-REBOOKED APPT. DATE/TIME              [D] -0;11             13   -Collateral Visit                            [S] -0;12             14   -NO-SHOW/CANCELLED BY            <-Pntr  [P200'] -0;14             15   -NO-SHOW/CANCEL DATE/TIME                    [D] -0;15             16   -CANCELLATION REASON         <-Pntr  [R*P409.2'] -R;1              17   -CANCELLATION REMARKS                        [F] -0;17             18   -APPT. CANCELLED                 <-Pntr  [P44'] -0;18             19   -DATA ENTRY CLERK                <-Pntr  [P200'] -0;19             20   -DATE APPT. MADE                            [D] -0;20             21   -OUTPATIENT ENCOUNTER         <-Pntr  [P409.68'] -0;21             22   -ENCOUNTER FORMS PRINTED                     [S] -0;22             23   -ENCOUNTER FORMS AS ADD-ONS                  [S] -0;23           23.1   -ENCOUNTER CONVERSION STATUS                 [S] -0;24             24   -APPOINTMENT TYPE SUB-CATEGORY  <-Pntr  [P35.2'] -0;25             25   -SCHEDULING REQUEST TYPE                    [RS] -0;26             26   -NEXT AVA. APPT. INDICATOR                 [RS] -1;1              27   -DESIRED DATE OF APPOINTMENT                 [D] -1;2              28   -FOLLOW-UP VISIT                             [S] -Computed        100   -CURRENT STATUS                           [CJ35]