PXRMDATE ;SLC/PKR - Clinical Reminders date utilities. ;10/23/2013
Source file <PXRMDATE.m>
| Package | Total | Call Graph | 
|---|---|---|
| Clinical Reminders | 3 | $$CDUEDATE^PXRMCDUE ($$CTFMD,$$NOW,$$TODAY)^PXRMDATE $$ISHIST^PXRMVSIT | 
| Kernel | 2 | ($$DT,$$FMADD,$$FMDIFF,$$FMTE,$$NOW)^XLFDT $$UP^XLFSTR | 
| VA Fileman | 2 | EN^DDIOL DT^DILF | 
| Name | Comments | DBIA/ICR reference | 
|---|---|---|
| CTFMD(DATE) | ;Convert DATE which may be in any of the FileMan acceptable | |
| COMPARE(X) | ;Compare beginning and ending dates, give a warning if | |
| TODAY() | ;If the reminder global PXRMDATE is defined return it, otherwise | |
| NOON() | ;If the reminder global PXRMDATE is defined return noon on that day, | |
| FRQINDAY(FREQ) | ;Given a frequency in the form ND, NM, or NY where N is a | |
| DCHECK(DATE) | ;Trap for special characters before calling CTFMD^PXRMDATE. | |
| DDATE(DATE) | ;Check for an historical (event) date, format as appropriate, | 
 
 | 
| FMDATE(DFN,TEST,DATE,VALUE,TEXT) | ;FileMan date computed finding. | |
| SETDUE | ;If the due date is less than or equal to today's date the | |
| MID() | ;If the reminder global PXRMDATE is defined return midnight on that day, | |
| COTN(EFP) | ;Convert an Effective Period to the new date/time format. | |
| FULLDATE(DATE) | ;See if DATE is a full date, i.e., it has a month and | |
| VSYM(SYM) | ;Make sure the symbolic part of a date is valid. | |
| VOFFSET(OFFSET) | ;Make sure the offset part of a date is valid. It has to | |
| YCALC(FMDATE,OP,NUM) | ;Add or subtract NUM years to FMDATE. | |
| VDATE(VIEN) | ;Given a visit ien return the visit date. | |
| NEWDATE(FMDATE,OP,OFFSET) | ;Given an internal FileMan date, an operator of | |
| DURATION(START,STOP) | ;Return the number days between the Start Date and | |
| MCALC(FMDATE,OP,NUM) | ;Add or subtract NUM months to FMDATE. | |
| CTD(MULT,NUM) | ;Convert months or years to days. | |
| ISLEAP(YEAR) | ;Given a 3 digit FileMan year return 1 if it is a leap year, | |
| CEFD(FDA) | ;Called by the Exchange Utility only if the input packed | |
| DUE(DEFARR,RESDATE,FREQ,DUE,DUEDATE,FIEVAL) | ;Compute the due date. | |
| EDATE(DATE) | ;Check for an historical (event) date, format as appropriate, | |
| NOW() | ;If the reminder global PXRMDATE is defined return it, otherwise | 
| Name | Field # of Occurrence | 
|---|---|
| EN^DDIOL | COMPARE+20, CTFMD+19 | 
| DT^DILF | CTFMD+15, CTFMD+28 | 
| $$CDUEDATE^PXRMCDUE | DUE+12 | 
| $$CTFMD^PXRMDATE | COMPARE+8, COMPARE+12, DCHECK+6, FMDATE+2 | 
| $$NOW^PXRMDATE | DURATION+4 | 
| $$TODAY^PXRMDATE | SETDUE+2 | 
| $$ISHIST^PXRMVSIT | VDATE+5 | 
| $$DT^XLFDT | MID+2, NOON+2, TODAY+2 | 
| $$FMADD^XLFDT | NEWDATE+10, NEWDATE+11, NEWDATE+12 | 
| $$FMDIFF^XLFDT | DURATION+7 | 
| $$FMTE^XLFDT | DDATE+3, EDATE+4 | 
| $$NOW^XLFDT | NOW+2, NOW+5 | 
| $$UP^XLFSTR | COTN+2, CTFMD+6 | 
| Name | Line Occurrences | 
|---|---|
| Function Call: WRITE | 
 | 
| Name | Line Occurrences (* Changed, ! Killed) | 
|---|---|
| ^AUPNVSIT - [#9000010] | VDATE+2 | 
| ^TMP( | DUE+17*, SETDUE+8*, FULLDATE+13*, FULLDATE+17* | 
| Name | Line Occurrences | 
|---|---|
| $$CTD | FRQINDAY+10 | 
| $$FULLDATE | DUE+22 | 
| $$ISLEAP | MCALC+7, YCALC+8 | 
| $$MCALC | NEWDATE+13 | 
| $$MID | CTFMD+25 | 
| $$NEWDATE | CTFMD+32, DUE+22, SETDUE+11 | 
| $$NOON | CTFMD+25 | 
| $$NOW | CTFMD+25 | 
| $$TODAY | CTFMD+25 | 
| $$VOFFSET | CTFMD+17 | 
| $$VSYM | CTFMD+15 | 
| $$YCALC | NEWDATE+14 | 
| SETDUE | DUE+13 | 
| >> | Not killed explicitly | 
| * | Changed | 
| ! | Killed | 
| ~ | Newed | 
| Name | Field # of Occurrence | 
|---|---|
| BDT | COMPARE+5~, COMPARE+8*, COMPARE+9, COMPARE+16, COMPARE+17*, COMPARE+19 | 
| DATE | CTFMD~, CTFMD+4, CTFMD+5, CTFMD+6, CTFMD+15, DCHECK~, DCHECK+2, DCHECK+3, DCHECK+4, DCHECK+5 , DCHECK+6, DDATE~, DDATE+2, DDATE+3, DUE+5~, DUE+22*, EDATE~, EDATE+2, EDATE+3, EDATE+4 , FMDATE~, FMDATE+2*, FULLDATE~, FULLDATE+5, FULLDATE+7, FULLDATE+8, FULLDATE+9, FULLDATE+20, VDATE+1~, VDATE+2* , VDATE+3*, VDATE+5*, VDATE+6 | 
| DAY | FULLDATE+4~, FULLDATE+7*, FULLDATE+10, FULLDATE+11*, FULLDATE+19, MCALC+1~, MCALC+2*, MCALC+8*, MCALC+9, YCALC+1~ , YCALC+2*, YCALC+8*, YCALC+9 | 
| DAYS | CTD+1~, CTD+2*, CTD+4, CTD+5, CTD+6*, CTD+7, NEWDATE+4~, NEWDATE+11*, NEWDATE+12* | 
| DEFARR | DUE~, DUE+12 | 
| DEFARR("IEN" | DUE+6 | 
| DEFARR(0 | SETDUE+5 | 
| DEFARR(35 | DUE+16 | 
| DEFARR(45 | DUE+12 | 
| DFN | FMDATE~ | 
| DIAT | DUE+5~, SETDUE+5*, SETDUE+6, SETDUE+11 | 
| DIATOK | DUE+5~, SETDUE+7*, SETDUE+9*, SETDUE+11 | 
| DIM | MCALC+1~, MCALC+7*, MCALC+8 | 
| >> DTOUT | DCHECK+2 | 
| DUE | DUE~, DUE+8*, DUE+18*, DUE+21*, SETDUE+3*, SETDUE+12* | 
| DUEDATE | DUE~, DUE+8*, DUE+10*, DUE+12*, DUE+13, DUE+18*, DUE+21*, DUE+22*, SETDUE+3, SETDUE+11 | 
| EDT | COMPARE+5~, COMPARE+10*, COMPARE+11*, COMPARE+12*, COMPARE+13, COMPARE+15*, COMPARE+16, COMPARE+18*, COMPARE+19 | 
| EFP | COTN~, COTN+2*, COTN+3, COTN+4, COTN+5*, COTN+6 | 
| FDA | CEFD~ | 
| FDA( | CEFD+4, CEFD+5, CEFD+7, CEFD+8*, CEFD+9! | 
| FIEVAL | DUE~, DUE+12 | 
| FMDATE | CTFMD+2~, CTFMD+15, CTFMD+28, CTFMD+29, MCALC~, MCALC+2, MCALC+3, NEWDATE~, NEWDATE+5, NEWDATE+10 , NEWDATE+11, NEWDATE+12, NEWDATE+13, NEWDATE+14, YCALC~, YCALC+2, YCALC+3 | 
| FRAC | CTD+1~, CTD+5*, CTD+6 | 
| FREQ | DUE~, DUE+8, DUE+16, DUE+22, FRQINDAY~, FRQINDAY+3, FRQINDAY+5, FRQINDAY+6, FRQINDAY+7 | 
| HOURS | NEWDATE+4~, NEWDATE+10* | 
| IND | CEFD+2~, CEFD+3*, CEFD+4*, CEFD+5, CEFD+7, CEFD+8, CEFD+9 | 
| INTDAYS | CTD+1~, CTD+4*, CTD+5, CTD+6 | 
| LDATE | DUE+5~, DUE+20*, DUE+21, DUE+22 | 
| LEN | FRQINDAY+4~, FRQINDAY+6*, FRQINDAY+7 | 
| MISSING | FULLDATE+4~, FULLDATE+6*, FULLDATE+12*, FULLDATE+16*, FULLDATE+18 | 
| MONTH | FULLDATE+4~, FULLDATE+8*, FULLDATE+14, FULLDATE+15*, FULLDATE+19, MCALC+1~, MCALC+2*, MCALC+5*, MCALC+6*, MCALC+8 , MCALC+9, YCALC+1~, YCALC+2*, YCALC+8, YCALC+9 | 
| MULT | CTD~, CTD+2 | 
| NOW | NOW+3~, NOW+5*, NOW+6*, NOW+7 | 
| NUM | COTN+4*, COTN+5, CTD~, CTD+2, FRQINDAY+4~, FRQINDAY+5*, FRQINDAY+10*, FRQINDAY+11, MCALC~, MCALC+5* , MCALC+6*, NEWDATE+4~, NEWDATE+6*, NEWDATE+7, NEWDATE+8, NEWDATE+10, NEWDATE+11, NEWDATE+12, NEWDATE+13, NEWDATE+14 , YCALC~, YCALC+5*, YCALC+6* | 
| OFFSET | CTFMD+2~, CTFMD+13*, CTFMD+17, CTFMD+18, CTFMD+19, CTFMD+32, NEWDATE~, NEWDATE+6, NEWDATE+8, VOFFSET~ , VOFFSET+3 | 
| OP | CTFMD+2~, CTFMD+11*, CTFMD+12, CTFMD+13, CTFMD+32, MCALC~, MCALC+5, MCALC+6, NEWDATE~, NEWDATE+10 , NEWDATE+11, NEWDATE+12, NEWDATE+13, NEWDATE+14, YCALC~, YCALC+5, YCALC+6 | 
| >> PXRMDATE | MID+2, NOON+2, NOW+2, NOW+4, NOW+5, NOW+6, TODAY+2 | 
| >> PXRMEXCH | COMPARE+4 | 
| >> PXRMINTR | CTFMD+19, CTFMD+22 | 
| PXRMITEM | DUE+5~, DUE+6*, DUE+17, SETDUE+8, FULLDATE+13, FULLDATE+17 | 
| PXRMNOW | DURATION+3~, DURATION+4*, DURATION+5, DURATION+6 | 
| >> PXRMPID | DUE+17, SETDUE+8, FULLDATE+13, FULLDATE+17 | 
| RESDATE | DUE~, DUE+20 | 
| START | DURATION~, DURATION+2, DURATION+5, DURATION+7 | 
| STOP | DURATION~, DURATION+6*, DURATION+7 | 
| SYM | CTFMD+2~, CTFMD+12*, CTFMD+15, CTFMD+18, CTFMD+19, CTFMD+25, VSYM~, VSYM+2, VSYM+3, VSYM+5 , VSYM+6, VSYM+7, VSYM+8, VSYM+10, VSYM+11, VSYM+12, VSYM+13 | 
| SYMV | CTFMD+2~, CTFMD+25*, CTFMD+27*, CTFMD+28, CTFMD+29*, CTFMD+31, CTFMD+32 | 
| TDATE | CTFMD+2~, CTFMD+6*, CTFMD+8*, CTFMD+11, CTFMD+12, CTFMD+13, FULLDATE+4~, FULLDATE+5*, FULLDATE+19*, FULLDATE+20* , FULLDATE+21 | 
| TDDUE | DUE+5~, SETDUE+11*, SETDUE+12 | 
| TEST | FMDATE~, FMDATE+1*, FMDATE+2, FMDATE+3* | 
| TEXT | COMPARE+5~, COMPARE+19*, COMPARE+20, FMDATE~ | 
| TIME | CTFMD+2~, CTFMD+8*, CTFMD+26, CTFMD+27, MCALC+1~, MCALC+3*, MCALC+4*, MCALC+9, NOW+3~, NOW+4* , NOW+5*, YCALC+1~, YCALC+3*, YCALC+4*, YCALC+9 | 
| TODAY | DUE+5~, SETDUE+2*, SETDUE+3, SETDUE+12 | 
| U | SETDUE+5, VDATE+2 | 
| UNIT | FRQINDAY+4~, FRQINDAY+7*, FRQINDAY+10, NEWDATE+4~, NEWDATE+8*, NEWDATE+9*, NEWDATE+10, NEWDATE+11, NEWDATE+12, NEWDATE+13 , NEWDATE+14 | 
| VALUE | FMDATE~, FMDATE+2* | 
| VIEN | VDATE~, VDATE+2, VDATE+5 | 
| X | COMPARE~ | 
| X(1 | COMPARE+8, COMPARE+17 | 
| X(2 | COMPARE+10, COMPARE+18 | 
| YEAR | FULLDATE+4~, FULLDATE+9*, FULLDATE+19, ISLEAP~, ISLEAP+2*, ISLEAP+3, MCALC+1~, MCALC+2*, MCALC+5*, MCALC+6* , MCALC+7, MCALC+9, YCALC+1~, YCALC+2*, YCALC+5*, YCALC+6*, YCALC+8, YCALC+9 |