| 1 | WVRPCNO1 ;HIOFO/FT-WV PRINT LETTERS.  ;8/21/03  13:37
 | 
|---|
| 2 |  ;;1.0;WOMEN'S HEALTH;**16**;Sep 30, 1998
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; This routine uses the following IAs:
 | 
|---|
| 5 |  ; #10063 - ^%ZTLOAD call          (supported)
 | 
|---|
| 6 |  ; #10103 - ^XLFDT calls           (supported)
 | 
|---|
| 7 |  ; #10104 - ^XLFSTR calls          (supported)
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  ; The following entry point(s) are documented by IAs:
 | 
|---|
| 10 |  ; LETTER  -  4103   (private)
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 | DEVICE(WVDA,WVPRINTR) ; Queue to TaskMan to print letter
 | 
|---|
| 13 |  N ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE
 | 
|---|
| 14 |  S ZTDESC="Print Women's Health letter"
 | 
|---|
| 15 |  S ZTDTH=$$NOW^XLFDT()
 | 
|---|
| 16 |  S ZTIO=WVPRINTR
 | 
|---|
| 17 |  S ZTRTN="PRINT^WVRPCNO1"
 | 
|---|
| 18 |  S ZTSAVE("WVDA")=""
 | 
|---|
| 19 |  D ^%ZTLOAD
 | 
|---|
| 20 |  Q
 | 
|---|
| 21 | PRINT ; Print notification letter, update treatment needs & due dates
 | 
|---|
| 22 |  ; required variable: wvda=ien in ^WV(790.4,
 | 
|---|
| 23 |  I $D(ZTQUEUED) S ZTREQ="@"
 | 
|---|
| 24 |  N BY,DIWF,WVDFN,WVKDT,WVPURP
 | 
|---|
| 25 |  S IOP=ION
 | 
|---|
| 26 |  S WVDFN=$P(^WV(790.4,WVDA,0),U)
 | 
|---|
| 27 |  S WVPURP=$P(^WV(790.4,WVDA,0),U,4)
 | 
|---|
| 28 |  S:'$D(WVKDT) WVKDT=$P(^WV(790.4,WVDA,0),U,11)
 | 
|---|
| 29 |  ; if no purpose (deleted), kill "aprt" xref and quit.
 | 
|---|
| 30 |  I 'WVPURP D  Q
 | 
|---|
| 31 |  .D KILLXREF^WVLETPR(WVDA,WVKDT)
 | 
|---|
| 32 |  S DIWF="^WV(790.404,WVPURP,1,"
 | 
|---|
| 33 |  S DIWF(1)=790
 | 
|---|
| 34 |  S BY="INTERNAL(#.01)="_WVDFN
 | 
|---|
| 35 |  ; Compute future appointments
 | 
|---|
| 36 |  D KAPPT^WVUTL9(WVDFN) ;kill off old computed appts.
 | 
|---|
| 37 |  D GAPPT^WVUTL9(WVDFN) ;get future appts
 | 
|---|
| 38 |  D SAPPT^WVUTL9(WVDFN) ;set appts in File 790
 | 
|---|
| 39 |  D KILLUG^WVUTL9 ;kill off Utility global off future appts
 | 
|---|
| 40 |  D KADD^WVUTL9(WVDFN) ;kill off old computed address
 | 
|---|
| 41 |  D GADD^WVUTL9(WVDFN) ;get current complete address
 | 
|---|
| 42 |  D SADD^WVUTL9(WVDFN) ;set complete address in File 790
 | 
|---|
| 43 |  D KVAR^WVUTL9 ;clean-up VADPT variables used
 | 
|---|
| 44 |  ; print the letter
 | 
|---|
| 45 |  D EN2^DIWF
 | 
|---|
| 46 |  ; don't stuff "date printed" if it already has a "date printed".
 | 
|---|
| 47 |  I $P(^WV(790.4,WVDA,0),U,10)]"" D KILLXREF^WVLETPR(WVDA,WVKDT) Q
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 |  ; next lines kill "aprt" xref and set "date printed"=today.
 | 
|---|
| 50 |  ; ("aprt" xref indicate a notification is queued to be printed.)
 | 
|---|
| 51 |  D KILLXREF^WVLETPR(WVDA,WVKDT)
 | 
|---|
| 52 |  D DIE^WVFMAN(790.4,".1////"_DT,WVDA)
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 | LETTER(RESULT,WVIEN) ; Returns the letter text for the purpose of
 | 
|---|
| 55 |  ; notification
 | 
|---|
| 56 |  ;  Input: RESULT - array name to return data in [required]
 | 
|---|
| 57 |  ;          WVIEN - FILE 790.404 IEN [required]
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 |  ; Output: RESULT(0)=First line of letter text   <OR>
 | 
|---|
| 60 |  ;                   -1^error message
 | 
|---|
| 61 |  ;         RESULT(n)= remaining lines of letter text
 | 
|---|
| 62 |  I '$G(WVIEN) S RESULT(0)="-1^Purpose IEN not greater than 0" Q
 | 
|---|
| 63 |  I '$D(^WV(790.404,WVIEN,0)) D  Q
 | 
|---|
| 64 |  .S RESULT(0)="-1^No such purpose of notification"
 | 
|---|
| 65 |  .Q
 | 
|---|
| 66 |  I '$O(^WV(790.404,WVIEN,1,0)) D  Q
 | 
|---|
| 67 |  .S RESULT(0)="-1^No letter defined for this purpose"
 | 
|---|
| 68 |  .Q
 | 
|---|
| 69 |  N WVCNT,WVLOOP
 | 
|---|
| 70 |  S RESULT(0)="",(WVCNT,WVLOOP)=0
 | 
|---|
| 71 |  F  S WVLOOP=$O(^WV(790.404,WVIEN,1,WVLOOP)) Q:'WVLOOP  D
 | 
|---|
| 72 |  .S WVCNT=WVCNT+1
 | 
|---|
| 73 |  .S RESULT(WVCNT)=$G(^WV(790.404,WVIEN,1,WVLOOP,0))
 | 
|---|
| 74 |  .Q
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 | GETDXIEN(WVX) ; Function returns FILE 790.31 IEN
 | 
|---|
| 78 |  ;  Input:  WVX="A" for Abnormal
 | 
|---|
| 79 |  ;              "N" for No Evidence of Malignancy
 | 
|---|
| 80 |  ;              "U" for Unsatisfactory for Dx
 | 
|---|
| 81 |  ; Output:  IEN of corresponding FILE 790.31 entry
 | 
|---|
| 82 |  S WVX=$G(WVX,"")
 | 
|---|
| 83 |  I WVX="" Q ""
 | 
|---|
| 84 |  S WVX=$$UP^XLFSTR(WVX)
 | 
|---|
| 85 |  I WVX="A" Q $O(^WV(790.31,"B","Abnormal",0))
 | 
|---|
| 86 |  I WVX="N" Q $O(^WV(790.31,"B","No Evidence of Malignancy",0))
 | 
|---|
| 87 |  I WVX="U" Q $O(^WV(790.31,"B","Unsatisfactory for Dx",0))
 | 
|---|
| 88 |  Q ""
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 | GETYPIEN(WVX) ; Function returns FILE 790.403 IEN
 | 
|---|
| 91 |  ;  Input:  WVX="P" for CONTACT PHN
 | 
|---|
| 92 |  ;          WVX="I" for CONVERSATION WITH PATIENT
 | 
|---|
| 93 |  ;          WVX="L" for LETTER, FIRST
 | 
|---|
| 94 |  ; Output: IEN of corresponding FILE 790.403 entry
 | 
|---|
| 95 |  S WVX=$G(WVX,"")
 | 
|---|
| 96 |  I WVX="" Q ""
 | 
|---|
| 97 |  S WVX=$$UP^XLFSTR(WVX)
 | 
|---|
| 98 |  I WVX="P" Q $O(^WV(790.403,"B","CONTACT PHN",0))
 | 
|---|
| 99 |  I WVX="I" Q $O(^WV(790.403,"B","CONVERSATION WITH PATIENT",0))
 | 
|---|
| 100 |  I WVX="L" Q $O(^WV(790.403,"B","LETTER, FIRST",0))
 | 
|---|
| 101 |  Q ""
 | 
|---|
| 102 |  ;
 | 
|---|
| 103 | GETOIEN(WVX) ; Function returns FILE 790.405 IEN
 | 
|---|
| 104 |  ;  Input: WVX = .01 value of FILE 790.405 entry (Outcome)
 | 
|---|
| 105 |  ; Output: IEN of that entry
 | 
|---|
| 106 |  S WVX=$G(WVX,"")
 | 
|---|
| 107 |  I WVX="" Q ""
 | 
|---|
| 108 |  Q $O(^WV(790.405,"B",WVX,0))
 | 
|---|
| 109 |  ;
 | 
|---|