[613] | 1 | DGPFLMA2 ;ALB/KCL - PRF ASSIGNMENT LM PROTOCOL ACTIONS CONT. ; 6/12/06 12:46pm
|
---|
| 2 | ;;5.3;Registration;**425,623,554,650**;Aug 13, 1993;Build 3
|
---|
| 3 | ;
|
---|
| 4 | ;no direct entry
|
---|
| 5 | QUIT
|
---|
| 6 | ;
|
---|
| 7 | AF ;Entry point for DGPF ASSIGN FLAG action protocol.
|
---|
| 8 | ;
|
---|
| 9 | ; Input:
|
---|
| 10 | ; DGDFN - pointer to patient in PATIENT (#2) file
|
---|
| 11 | ;
|
---|
| 12 | ; Output:
|
---|
| 13 | ; VALMBCK - 'R' = refresh screen
|
---|
| 14 | ;
|
---|
| 15 | N DIC,DGWPROOT,DIWETXT,DIWESUB,DWLW,DWPK ;input vars for EN^DIWE call
|
---|
| 16 | N DGABORT ;abort flag for entering assignment narrative
|
---|
| 17 | N DGFAC ;pointer to INSTITUTION (#4) file
|
---|
| 18 | N DGOK ;ok flag for entering assignment narrative
|
---|
| 19 | N DGPFA ;assignment array
|
---|
| 20 | N DGPFAH ;assignment history array
|
---|
| 21 | N DGRDAT ;results of review date calculation
|
---|
| 22 | N DGRESULT ;result of STOALL api call
|
---|
| 23 | N DGERR ;if unable to add assignment
|
---|
| 24 | N DGPFERR ;if error returned from STOALL
|
---|
| 25 | ;
|
---|
| 26 | ;set screen to full scroll region
|
---|
| 27 | D FULL^VALM1
|
---|
| 28 | ;
|
---|
| 29 | ;quit if patient not selected
|
---|
| 30 | I '$G(DGDFN) D Q
|
---|
| 31 | . D BLD^DIALOG(261129,"Patient has not been selected.","","DGERR","F")
|
---|
| 32 | . D MSG^DIALOG("WE","","","","DGERR") W *7
|
---|
| 33 | . D PAUSE^VALM1
|
---|
| 34 | . S VALMBCK="R"
|
---|
| 35 | ;
|
---|
| 36 | ;is user's DUZ(2) an enabled Division for PRF ASSIGNMENT OWNERSHIP
|
---|
| 37 | I '$D(^DG(40.8,"APRF",+$G(DUZ(2)))) D Q
|
---|
| 38 | . D BLD^DIALOG(261129,"Your Division, "_$$STA^XUAF4($G(DUZ(2)))_", is not enabled for PRF Assignment Ownership.","","DGERR","F")
|
---|
| 39 | . D MSG^DIALOG("WE","","","","DGERR") W *7
|
---|
| 40 | . D PAUSE^VALM1
|
---|
| 41 | . S VALMBCK="R"
|
---|
| 42 | ;
|
---|
| 43 | D ;drops out of DO block on assignment failure
|
---|
| 44 | . ;
|
---|
| 45 | . ;init assignment and history arrays
|
---|
| 46 | . K DGPFA,DGPFAH
|
---|
| 47 | . ;
|
---|
| 48 | . ;get patient DFN into assignment array
|
---|
| 49 | . S DGPFA("DFN")=$G(DGDFN)
|
---|
| 50 | . Q:'DGPFA("DFN")
|
---|
| 51 | . ;
|
---|
| 52 | . ;select flag for assignment
|
---|
| 53 | . S DGPFA("FLAG")=$$ANSWER^DGPFUT("Select a flag for this assignment","","26.13,.02")
|
---|
| 54 | . Q:(DGPFA("FLAG")'>0)
|
---|
| 55 | . ;
|
---|
| 56 | . ;National ICN when Cat I assignment?
|
---|
| 57 | . I $P(DGPFA("FLAG"),U)["26.15",'$$MPIOK^DGPFUT(DGPFA("DFN")) D Q
|
---|
| 58 | . . W !!,"Unable to proceed with flag assignment..."
|
---|
| 59 | . . D BLD^DIALOG(261132,"","","DGERR","F")
|
---|
| 60 | . . D MSG^DIALOG("WE","","","","DGERR") W *7
|
---|
| 61 | . . D PAUSE^VALM1
|
---|
| 62 | . ;
|
---|
| 63 | . ;run query for Cat I assignments
|
---|
| 64 | . I $P(DGPFA("FLAG"),U)["26.15",$$GETSTAT^DGPFHLL1(DGDFN)'="C" D
|
---|
| 65 | . . N DGDIFF ;difference between pre and post query count
|
---|
| 66 | . . N DGFLGCNT ;total count of Cat I flags
|
---|
| 67 | . . N DGPRECNT ;pre-query count of Cat I assignments
|
---|
| 68 | . . N DGPSTCNT ;post-query count of Cat I assignments
|
---|
| 69 | . . ;
|
---|
| 70 | . . ;get count of current assignments
|
---|
| 71 | . . S (DGPRECNT,DGPSTCNT)=$$GETALL^DGPFAA(DGDFN,,,1)
|
---|
| 72 | . . ;
|
---|
| 73 | . . ;get total count of possible Category I flags
|
---|
| 74 | . . S DGFLGCNT=$$CNTRECS^DGPFUT1(26.15)
|
---|
| 75 | . . ;
|
---|
| 76 | . . ;stop if all flags are assigned
|
---|
| 77 | . . Q:DGPRECNT=DGFLGCNT
|
---|
| 78 | . . ;
|
---|
| 79 | . . ;execute the query...stop on failure
|
---|
| 80 | . . Q:'$$SNDQRY^DGPFHLS(DGDFN,1,.DGFAC)
|
---|
| 81 | . . ;
|
---|
| 82 | . . ;recheck current assignment count
|
---|
| 83 | . . S DGPSTCNT=$$GETALL^DGPFAA(DGDFN,,,1)
|
---|
| 84 | . . S DGDIFF=DGPSTCNT-DGPRECNT
|
---|
| 85 | . . W !!," ",$S(DGDIFF=1:"A ",DGDIFF>1:"",1:"No ")_"Category I patient record flag assignment"_$S(DGDIFF>1!('DGDIFF):"s were",1:" was")_" returned"
|
---|
| 86 | . . W !," from "_$P($$NS^XUAF4($G(DGFAC)),U)_$S(DGDIFF:" and filed on your system.",1:".")
|
---|
| 87 | . . W !
|
---|
| 88 | . . ;
|
---|
| 89 | . . ;re-build list when flag assignments have been added
|
---|
| 90 | . . I DGDIFF D BLDLIST^DGPFLMU(DGDFN)
|
---|
| 91 | . ;
|
---|
| 92 | . ;ok to add new assignment?
|
---|
| 93 | . I '$$ADDOK^DGPFAA2(DGPFA("DFN"),$P(DGPFA("FLAG"),U),"DGERR") D Q
|
---|
| 94 | . . W !!,"Unable to proceed with flag assignment..."
|
---|
| 95 | . . D MSG^DIALOG("WE","","",5,"DGERR")
|
---|
| 96 | . . D PAUSE^VALM1
|
---|
| 97 | . ;
|
---|
| 98 | . ;prompt for owner site
|
---|
| 99 | . S DGPFA("OWNER")=$$ANSWER^DGPFUT("Enter Owner Site",$$EXTERNAL^DILFD(26.13,.04,"",DUZ(2),"DGERR"),"P^4:EMZ","","I $D(^DG(40.8,""APRF"",+Y)),$$TF^XUAF4(+Y)")
|
---|
| 100 | . Q:(DGPFA("OWNER")'>0)
|
---|
| 101 | . ;
|
---|
| 102 | . ;prompt user for approved by person, quit if not selected
|
---|
| 103 | . S DGPFAH("APPRVBY")=$$ANSWER^DGPFUT("Approved By","","P^200:EMZ")
|
---|
| 104 | . Q:(DGPFAH("APPRVBY")'>0)
|
---|
| 105 | . ;
|
---|
| 106 | . ;have user enter assignment narrative text (required)
|
---|
| 107 | . S (DGABORT,DGOK)=0
|
---|
| 108 | . S DGWPROOT=$NA(^TMP($J,"DGPFNARR"))
|
---|
| 109 | . K @DGWPROOT
|
---|
| 110 | . F D Q:(DGOK!DGABORT)
|
---|
| 111 | . . W !!,"Enter Narrative Text for this record flag assignment:" ;needed for line editor
|
---|
| 112 | . . S DIC=$$OREF^DILF(DGWPROOT)
|
---|
| 113 | . . S DIWETXT="Patient Record Flag - Assignment Narrative Text"
|
---|
| 114 | . . S DIWESUB="Assignment Narrative Text"
|
---|
| 115 | . . S DWLW=75 ;max # of chars allowed to be stored on WP global node
|
---|
| 116 | . . S DWPK=1 ;if line editor, don't join lines
|
---|
| 117 | . . D EN^DIWE
|
---|
| 118 | . . I $$CKWP^DGPFUT(DGWPROOT) S DGOK=1 Q
|
---|
| 119 | . . W !,"Assignment Narrative Text is required!",*7
|
---|
| 120 | . . I '$$CONTINUE^DGPFUT() S DGABORT=1
|
---|
| 121 | . . ;
|
---|
| 122 | . ;quit if required assignment narrative not entered
|
---|
| 123 | . Q:$G(DGABORT)
|
---|
| 124 | . ;
|
---|
| 125 | . ;place assignment narrative text into assignment array
|
---|
| 126 | . M DGPFA("NARR")=@DGWPROOT K @DGWPROOT
|
---|
| 127 | . ;
|
---|
| 128 | . ;setup remaining assignment and history array nodes for filing
|
---|
| 129 | . S DGPFA("STATUS")=1 ;active
|
---|
| 130 | . S DGPFA("ORIGSITE")=DUZ(2) ;current user's login site
|
---|
| 131 | . S DGPFAH("ASSIGNDT")=$$NOW^XLFDT() ;current date/time
|
---|
| 132 | . S DGPFAH("ACTION")=1 ;new assignment
|
---|
| 133 | . S DGPFAH("ENTERBY")=DUZ ;current user
|
---|
| 134 | . S DGPFAH("COMMENT",1,0)="New record flag assignment."
|
---|
| 135 | . ;
|
---|
| 136 | . ;calculate the default review date
|
---|
| 137 | . S DGRDAT=$$GETRDT^DGPFAA3($P(DGPFA("FLAG"),U),DGPFAH("ASSIGNDT"))
|
---|
| 138 | . ;
|
---|
| 139 | . ;prompt for review date on valid default review date, otherwise null
|
---|
| 140 | . I DGRDAT>0 D
|
---|
| 141 | . . S DGPFA("REVIEWDT")=$$ANSWER^DGPFUT("Enter Review Date",$$FMTE^XLFDT(DGRDAT,"5D"),"D^"_DT_":"_DGRDAT_":EX")
|
---|
| 142 | . E S DGPFA("REVIEWDT")=""
|
---|
| 143 | . Q:DGPFA("REVIEWDT")<0
|
---|
| 144 | . ;
|
---|
| 145 | . ;display flag assignment review screen to user
|
---|
| 146 | . D REVIEW^DGPFUT3(.DGPFA,.DGPFAH,"",XQY0,XQORNOD(0))
|
---|
| 147 | . ;
|
---|
| 148 | . Q:$$ANSWER^DGPFUT("Would you like to file this new record flag assignment","YES","Y")'>0
|
---|
| 149 | . ;
|
---|
| 150 | . ;file the assignment and history using STOALL api
|
---|
| 151 | . W !,"Filing the patient's new record flag assignment..."
|
---|
| 152 | . S DGRESULT=$$STOALL^DGPFAA(.DGPFA,.DGPFAH,.DGPFERR)
|
---|
| 153 | . W !?5,"Assignment was "_$S(+$G(DGRESULT):"filed successfully.",1:"not filed successfully.")
|
---|
| 154 | . ;
|
---|
| 155 | . ;send HL7 message if adding an assignment to a CAT I flag
|
---|
| 156 | . I $G(DGRESULT),DGPFA("FLAG")["26.15",$$SNDORU^DGPFHLS(+DGRESULT) D
|
---|
| 157 | . . W !?5,"Message sent...updating patient's sites of record."
|
---|
| 158 | . ;
|
---|
| 159 | . D PAUSE^VALM1
|
---|
| 160 | . ;
|
---|
| 161 | . ;re-build list of flag assignments for patient
|
---|
| 162 | . D BLDLIST^DGPFLMU(DGDFN)
|
---|
| 163 | ;
|
---|
| 164 | S VALMBCK="R"
|
---|
| 165 | ;
|
---|
| 166 | Q
|
---|