- PXRMGECU ;SLC/AGP,JVS - CLINICAL REMINDERS ;Oct 17, 2022@10:07:20
- ;;2.0;CLINICAL REMINDERS;**4,83**;Feb 04, 2005;Build 14
- Q
- FINISHED(DFN,ANS) ;Delete 801.5 entries if finished
- ;ANS=Answer to YES/NO button should be 1 or will quit
- Q:DFN=""
- Q:ANS=0
- S PATDA="" F S PATDA=$O(^PXRMD(801.5,"B",DFN,PATDA)) Q:PATDA="" D
- .S DA=PATDA,DIK="^PXRMD(801.5," D ^DIK
- K DA,DIK,PATDA
- Q
- ;
- CON(IEN,DFN) ;CHECK TO see if 2 DIA ARE DONE to display consult
- N OK
- ;
- S OK=0
- S GEC1DA=$O(^PXRMD(801.41,"AC","GEC1",0))
- S GEC2DA=$O(^PXRMD(801.41,"AC","GEC2",0))
- S GEC3DA=$O(^PXRMD(801.41,"AC","GEC3",0))
- S GECFDA=$O(^PXRMD(801.41,"AC","GECF",0))
- Q:IEN'=GEC1DA!(IEN'=GEC2DA)!(IEN'=GEC3DA) OK
- ;
- S CNT=0
- I $D(^PXRMD(801.5,"AD",DFN,"GEC1")) S CNT=CNT+1
- I $D(^PXRMD(801.5,"AD",DFN,"GEC2")) S CNT=CNT+1
- I $D(^PXRMD(801.5,"AD",DFN,"GEC3")) S CNT=CNT+1
- ;
- I CNT>1 S OK=1
- Q OK
- ;
- DEL(NOTEIEN) ;Delete HF and 801.5 Called from DELETE^TIUEDI1
- N DFN,TIUNODE,FILEIEN,GEC,ENCDT,GECNODE,GECT,GECDA,HFDA
- N HFARY
- Q:'$D(^PXRMD(801.5,"ACOPY",NOTEIEN))
- S DFN=$O(^PXRMD(801.5,"ACOPY",NOTEIEN,0))
- S ENCDT=$O(^PXRMD(801.5,"ACOPY",NOTEIEN,DFN,0))
- I $D(^PXRMD(801.5,"ANOTE",NOTEIEN)) D
- .S GEC="" F S GEC=$O(^PXRMD(801.5,"ANOTE",NOTEIEN,GEC)) Q:GEC="" D
- ..S FILEIEN=0 F S FILEIEN=$O(^PXRMD(801.5,"ANOTE",NOTEIEN,GEC,FILEIEN)) Q:FILEIEN="" D
- ...S GECNODE=$G(^PXRMD(801.5,FILEIEN,0))
- ...S GECT=$P(GECNODE,"^",3),GECDA=$O(^PX(839.7,"B",GECT,0))
- ...S HFDA=0 F S HFDA=$O(^AUPNVHF("AED",ENCDT,DFN,GECDA,HFDA)) Q:HFDA="" D
- ....S HFARY(HFDA)=""
- ...S DA=FILEIEN S DIK="^PXRMD(801.5," D ^DIK
- E I $D(^PXRMD(801.5,"ACOPY",NOTEIEN)) D
- .S GECT="" F S GECT=$O(^PXRMD(801.5,"ACOPY",NOTEIEN,DFN,ENCDT,GECT)) Q:GECT="" D
- ..S GECDA=$O(^PX(839.7,"B",GECT,0))
- ..S HFDA=0 F S HFDA=$O(^AUPNVHF("AED",ENCDT,DFN,GECDA,HFDA)) Q:HFDA="" D
- ...S HFARY(HFDA)=""
- I $D(HFARY) D
- .;
- .N ZTIO,ZTRTN,ZTDTH,ZTSAVE,ZTDESC,ZTSK,GECIEN,GET
- .;
- .S ZTIO="ORW/PXAPI RESOURCE"
- .S ZTRTN="REMOVE^PXRMGECK"
- .S ZTDTH=$H
- .S ZTSAVE("GECT")=""
- .S ZTSAVE("HFARY(")=""
- .S ZTDESC="PXRM remove Health Factors for GEC"
- .D ^%ZTLOAD
- ;Clean up ACOPY nodes
- D ACOPYDEL^PXRMGECK
- Q
- ;
- API(RESULT,IEN,DFN,VISIT,WHERE,NOTEIEN) ;
- I '$D(NOTEIEN) S NOTEIEN=1
- N GEC,DFNDT
- S GEC=$$CHECKGEC(IEN)
- I $G(GEC)="" S RESULT=0_U_"" Q
- I GEC="UCS"!(GEC="CRGF")!(GEC="IMMREAD")!(GEC="WHRM")!(GEC="WHRP") S RESULT=0_U_"" Q
- I $G(GEC)'["GEC" S RESULT=1_U_$$NOW^XLFDT()_";"_GEC Q
- S RESULT=1_U_$$GECDT(DFN,GEC,VISIT,NOTEIEN)_";"_GEC_U_$$EVAL(DFN,GEC,WHERE)
- ;
- Q
- ;
- CHECKGEC(IEN) ;
- N RIEN,DIEN
- I IEN["R" D
- . S RIEN=$E(IEN,2,$L(IEN)) S DIEN=$G(^PXD(811.9,RIEN,51))
- . I $G(DIEN)'="" S GEC=$P($G(^PXRMD(801.41,DIEN,0)),U,16)
- E S GEC=$P($G(^PXRMD(801.41,IEN,0)),U,16)
- Q $G(GEC)
- ;
- GECDT(DFN,GEC,VISIT,NOTEIEN) ;Get Date/Time from file
- N STOP
- S STOP=0
- I $D(^PXRMD(801.5,"B",DFN)) D CURADD
- I '$D(^PXRMD(801.5,"B",DFN)) D NEWADD
- S DFNDT=$O(^PXRMD(801.5,"AC",DFN,0))
- Q DFNDT
- ;
- NEWADD ;-Set Data into File 801.5 and 801.55 (history)
- Q:STOP=1
- D
- .Q:$D(^PXRMD(801.5,"AD",DFN,GEC))
- .S GEX(1,801.5,"+1,",.01)=DFN
- .S GEX(1,801.5,"+1,",.02)=$$NOW^XLFDT
- .S GEX(1,801.5,"+1,",.03)=GEC
- .S GEX(1,801.5,"+1,",.04)=+$G(NOTEIEN)
- .S GEX(1,801.5,"+1,",.05)=DUZ
- .S GEX(1,801.5,"+1,",.06)=DT
- .S ^PXRMD(801.5,"ACOPY",+$G(NOTEIEN),DFN,$G(GEX(1,801.5,"+1,",.02)),GEC,DT)=""
- .D UPDATE^DIE("","GEX(1)")
- ;--HISTORY FILE
- S GEX(2,801.55,"+1,",.01)=DFN
- S GEX(2,801.55,"+1,",.02)=$$NOW^XLFDT
- S GEX(2,801.55,"+1,",.03)=GEC
- S GEX(2,801.55,"+1,",.04)=+$G(NOTEIEN)
- S GEX(2,801.55,"+1,",.05)=DUZ
- S GEX(2,801.55,"+1,",.06)=DT
- D UPDATE^DIE("","GEX(2)")
- K GEX
- S STOP=1
- Q
- CURADD ;-Set Data into File 801.5 and 801.55 (history)
- Q:STOP=1
- D
- .Q:$D(^PXRMD(801.5,"AD",DFN,GEC))
- .S GEX(1,801.5,"+1,",.01)=DFN
- .S GEX(1,801.5,"+1,",.02)=$O(^PXRMD(801.5,"AC",DFN,0))
- .S GEX(1,801.5,"+1,",.03)=GEC
- .S GEX(1,801.5,"+1,",.04)=+$G(NOTEIEN)
- .S GEX(1,801.5,"+1,",.05)=DUZ
- .S GEX(1,801.5,"+1,",.06)=DT
- .S ^PXRMD(801.5,"ACOPY",+$G(NOTEIEN),DFN,$G(GEX(1,801.5,"+1,",.02)),GEC,DT)=""
- .D UPDATE^DIE("","GEX(1)")
- ;--HISTORY FILE
- S GEX(2,801.55,"+1,",.01)=DFN
- S GEX(2,801.55,"+1,",.02)=$O(^PXRMD(801.5,"AC",DFN,0))
- S GEX(2,801.55,"+1,",.03)=GEC
- S GEX(2,801.55,"+1,",.04)=+$G(NOTEIEN)
- S GEX(2,801.55,"+1,",.05)=DUZ
- S GEX(2,801.55,"+1,",.06)=DT
- D UPDATE^DIE("","GEX(2)")
- K GEX
- S STOP=1
- Q
- ;
- STATUS(DFN) ;Evaluate The status of the Referral
- ;
- N STOP,ZTSK
- S STOP=0
- I $D(^PXRMD(801.5,"ATASK",DFN)) S ZTSK=$O(^PXRMD(801.5,"ATASK",DFN,0)) D
- .D STAT^%ZTLOAD
- .I ZTSK(0)=1 D
- ..I 12[ZTSK(1) D
- ...S MESSAGE="Data is Changing!! Please Check Status Again^GEC Referral NO Status Available^0"
- ...S STOP=1
- Q:STOP=1 MESSAGE
- ;
- ;Returned
- ;sentence ~ sentence ~ sentence ^ OK or YES/NO BOX
- ;
- N MISSING,MESSAGE,HFDA,STOP,BOX
- S BOX=1
- D ACOPYDEL^PXRMGECK
- ;
- ;GET IEN FOR DATA SOURCES FOR GEC
- I $D(^PX(839.7,"B","GEC1")) S GEC1=$O(^PX(839.7,"B","GEC1",""))
- I $D(^PX(839.7,"B","GEC2")) S GEC2=$O(^PX(839.7,"B","GEC2",""))
- I $D(^PX(839.7,"B","GEC3")) S GEC3=$O(^PX(839.7,"B","GEC3",""))
- I $D(^PX(839.7,"B","GECF")) S GECF=$O(^PX(839.7,"B","GECF",""))
- ;
- S STOP=0
- S MESSAGE=" No GEC Referral in progress.^GEC Referral Status"
- S HFDA="" F S HFDA=$O(^AUPNVHF("C",DFN,HFDA)) Q:HFDA="" Q:STOP=1 D
- .I $D(^AUPNVHF(HFDA,12)) D
- ..I $P($G(^AUPNVHF(HFDA,12)),"^",1)>0 D
- ...S SOURCE=$P($G(^AUPNVHF(HFDA,812)),"^",3)
- ...Q:SOURCE=""
- ...I (SOURCE=$G(GEC1))!(SOURCE=$G(GEC2))!(SOURCE=$G(GEC3))!(SOURCE=$G(GECF)) D
- ....S STOP=1
- ;
- S (MISSING)=""
- I '$D(^PXRMD(801.5,"B",DFN))&(STOP=0) D
- .S MESSAGE=" No GEC Referral on record.^Current GEC Referral Status"
- Q:'$D(^PXRMD(801.5,"B",DFN)) MESSAGE
- S MESSAGE=""
- ;
- ;
- ; A. look for missing dialog
- S:'$D(^PXRMD(801.5,"AD",DFN,"GEC1")) MISSING=MISSING_1_"^"
- S:'$D(^PXRMD(801.5,"AD",DFN,"GEC2")) MISSING=MISSING_2_"^"
- S:'$D(^PXRMD(801.5,"AD",DFN,"GEC3")) MISSING=MISSING_3_"^"
- S:'$D(^PXRMD(801.5,"AD",DFN,"GECF")) MISSING=MISSING_4
- ; a. if none missing then set message
- ;I MISSING="" D
- ; b. if missing then create message
- I MISSING'=""!(MISSING="") D
- .S MESSAGE="The following Dialogs are Complete:~"
- .S:MISSING'[1 MESSAGE=MESSAGE_$P($T(T+7),";",3) D
- ..I +$$TIUSTAT^PXRMGECK(DFN,"GEC1") D
- ...S MESSAGE=MESSAGE_"~"_" Note is "_$P($$TIUSTAT^PXRMGECK(DFN,"GEC1"),":",2)_" "_$P($$TIUSTAT^PXRMGECK(DFN,"GEC1"),":",4)_"~"
- .S:MISSING'[2 MESSAGE=MESSAGE_$P($T(T+8),";",3) D
- ..I +$$TIUSTAT^PXRMGECK(DFN,"GEC2") D
- ...S MESSAGE=MESSAGE_"~"_" Note is "_$P($$TIUSTAT^PXRMGECK(DFN,"GEC2"),":",2)_" "_$P($$TIUSTAT^PXRMGECK(DFN,"GEC2"),":",4)_"~"
- .S:MISSING'[3 MESSAGE=MESSAGE_$P($T(T+9),";",3) D
- ..I +$$TIUSTAT^PXRMGECK(DFN,"GEC3") D
- ...S MESSAGE=MESSAGE_"~"_" Note is "_$P($$TIUSTAT^PXRMGECK(DFN,"GEC3"),":",2)_" "_$P($$TIUSTAT^PXRMGECK(DFN,"GEC3"),":",4)_"~"
- .S:MISSING'[4 MESSAGE=MESSAGE_$P($T(T+10),";",3) D
- ..I +$$TIUSTAT^PXRMGECK(DFN,"GECF") D
- ...S MESSAGE=MESSAGE_"~"_" Note is "_$P($$TIUSTAT^PXRMGECK(DFN,"GECF"),":",2)_" "_$P($$TIUSTAT^PXRMGECK(DFN,"GECF"),":",4)_"~"
- .I $E(MESSAGE,$L(MESSAGE))'="~" S MESSAGE=MESSAGE_"~"
- .I MISSING'="" S MESSAGE=MESSAGE_$P($T(T+11),";",3)
- .S:MISSING[1 MESSAGE=MESSAGE_$P($T(T+7),";",3)
- .S:MISSING[2 MESSAGE=MESSAGE_$P($T(T+8),";",3)
- .S:MISSING[3 MESSAGE=MESSAGE_$P($T(T+9),";",3)
- .S:MISSING[4 MESSAGE=MESSAGE_$P($T(T+10),";",3)
- ;
- I MISSING="" S MESSAGE=MESSAGE_"~"_$P($T(T+5),";",3)
- S MESSAGE=MESSAGE_$P($T(T+6),";",3)
- S MESSAGE=MESSAGE_"^Current GEC Referral Status"_"^"_BOX
- ;
- Q MESSAGE
- ;
- EVAL(DFN,GEC,WHERE) ;Evaluate for missing dialogs
- ;DFN=PATIENT DFN
- ;GEC=Identify for Dialog
- ;WHERE=What part of the dialog this call is comming from
- ; 0=Object at the start
- ; 1=Finished button
- ;
- ;Returned
- ;Box Header ^ Message ^ Box display Flag
- ;
- ;Clean up ACOPY node
- D ACOPYDEL^PXRMGECK
- ;
- N MISSING,MESSAGE,DIANAME,FORTH,BOX
- ;
- ;Getting the Names fo the dialogs
- I GEC="GEC1" S DIANAME=$P($T(T+1),";",3)
- I GEC="GEC2" S DIANAME=$P($T(T+2),";",3)
- I GEC="GEC3" S DIANAME=$P($T(T+3),";",3)
- I GEC="GECF" S DIANAME=$P($T(T+4),";",3)
- ;
- ;Check to see if 4th is done;add 1 or 0 to end of message
- ;if 1 the GUI should bring up a modal box asking if finished
- S FORTH=0
- S:$D(^PXRMD(801.5,"AD",DFN,"GECF"))!(GEC["GECF") FORTH=1
- I 'WHERE S FORTH=0
- ;
- ;
- S (MISSING,MESSAGE)=""
- Q:'$D(^PXRMD(801.5,"B",DFN)) MESSAGE
- I WHERE Q:FORTH=0 MESSAGE
- ;
- ;
- ; A. look for missing dialog
- S:'$D(^PXRMD(801.5,"AD",DFN,"GEC1"))&(GEC'["GEC1") MISSING=MISSING_1_"^"
- S:'$D(^PXRMD(801.5,"AD",DFN,"GEC2"))&(GEC'["GEC2") MISSING=MISSING_2_"^"
- S:'$D(^PXRMD(801.5,"AD",DFN,"GEC3"))&(GEC'["GEC3") MISSING=MISSING_3_"^"
- S:'$D(^PXRMD(801.5,"AD",DFN,"GECF"))&(GEC'["GECF") MISSING=MISSING_4
- ; a. if none missing then set message
- I MISSING="" D
- .I WHERE S MESSAGE=$P($T(T+5),";",3)_$P($T(T+6),";",3)
- .I 'WHERE S MESSAGE=$P($T(T+5),";",3)
- ; b. if missing then create message
- I MISSING'="" D
- .S MESSAGE="The Following Dialogs are Missing:~"
- .S:MISSING[1 MESSAGE=MESSAGE_$P($T(T+7),";",3)
- .S:MISSING[2 MESSAGE=MESSAGE_$P($T(T+8),";",3)
- .S:MISSING[3 MESSAGE=MESSAGE_$P($T(T+9),";",3)
- .S:MISSING[4 MESSAGE=MESSAGE_$P($T(T+10),";",3)
- .Q:'WHERE
- .S MESSAGE=MESSAGE_$P($T(T+6),";",3)_$P($T(T+12),";",3)_$P($T(T+13),";",3)
- ;
- S BOX="GEC Referral Completion Status"
- S MESSAGE=BOX_"^"_MESSAGE_"^"_FORTH
- Q MESSAGE
- ;
- T ;TEXT
- ;; Social Services,
- ;; Nursing Assessment,
- ;; Care Recommendations,
- ;; Care Coordination
- ;; All Dialogs are Finished.
- ;; ~~Is this Referral Complete?
- ;; ~ Social Services
- ;; ~ Nursing Assessment
- ;; ~ Care Recommendations
- ;; ~ Care Coordination
- ;; ~The Following Dialogs are Missing:~
- ;; ~~(If you select Yes, the current REFERRAL ~will be completed and the information ~from the missing dialogs cannot be added.
- ;; ~~If you select No, the current REFERRAL ~remains open.)
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPXRMGECU 10065 printed Feb 18, 2025@23:12:14 Page 2
- PXRMGECU ;SLC/AGP,JVS - CLINICAL REMINDERS ;Oct 17, 2022@10:07:20
- +1 ;;2.0;CLINICAL REMINDERS;**4,83**;Feb 04, 2005;Build 14
- +2 QUIT
- FINISHED(DFN,ANS) ;Delete 801.5 entries if finished
- +1 ;ANS=Answer to YES/NO button should be 1 or will quit
- +2 if DFN=""
- QUIT
- +3 if ANS=0
- QUIT
- +4 SET PATDA=""
- FOR
- SET PATDA=$ORDER(^PXRMD(801.5,"B",DFN,PATDA))
- if PATDA=""
- QUIT
- Begin DoDot:1
- +5 SET DA=PATDA
- SET DIK="^PXRMD(801.5,"
- DO ^DIK
- End DoDot:1
- +6 KILL DA,DIK,PATDA
- +7 QUIT
- +8 ;
- CON(IEN,DFN) ;CHECK TO see if 2 DIA ARE DONE to display consult
- +1 NEW OK
- +2 ;
- +3 SET OK=0
- +4 SET GEC1DA=$ORDER(^PXRMD(801.41,"AC","GEC1",0))
- +5 SET GEC2DA=$ORDER(^PXRMD(801.41,"AC","GEC2",0))
- +6 SET GEC3DA=$ORDER(^PXRMD(801.41,"AC","GEC3",0))
- +7 SET GECFDA=$ORDER(^PXRMD(801.41,"AC","GECF",0))
- +8 if IEN'=GEC1DA!(IEN'=GEC2DA)!(IEN'=GEC3DA)
- QUIT OK
- +9 ;
- +10 SET CNT=0
- +11 IF $DATA(^PXRMD(801.5,"AD",DFN,"GEC1"))
- SET CNT=CNT+1
- +12 IF $DATA(^PXRMD(801.5,"AD",DFN,"GEC2"))
- SET CNT=CNT+1
- +13 IF $DATA(^PXRMD(801.5,"AD",DFN,"GEC3"))
- SET CNT=CNT+1
- +14 ;
- +15 IF CNT>1
- SET OK=1
- +16 QUIT OK
- +17 ;
- DEL(NOTEIEN) ;Delete HF and 801.5 Called from DELETE^TIUEDI1
- +1 NEW DFN,TIUNODE,FILEIEN,GEC,ENCDT,GECNODE,GECT,GECDA,HFDA
- +2 NEW HFARY
- +3 if '$DATA(^PXRMD(801.5,"ACOPY",NOTEIEN))
- QUIT
- +4 SET DFN=$ORDER(^PXRMD(801.5,"ACOPY",NOTEIEN,0))
- +5 SET ENCDT=$ORDER(^PXRMD(801.5,"ACOPY",NOTEIEN,DFN,0))
- +6 IF $DATA(^PXRMD(801.5,"ANOTE",NOTEIEN))
- Begin DoDot:1
- +7 SET GEC=""
- FOR
- SET GEC=$ORDER(^PXRMD(801.5,"ANOTE",NOTEIEN,GEC))
- if GEC=""
- QUIT
- Begin DoDot:2
- +8 SET FILEIEN=0
- FOR
- SET FILEIEN=$ORDER(^PXRMD(801.5,"ANOTE",NOTEIEN,GEC,FILEIEN))
- if FILEIEN=""
- QUIT
- Begin DoDot:3
- +9 SET GECNODE=$GET(^PXRMD(801.5,FILEIEN,0))
- +10 SET GECT=$PIECE(GECNODE,"^",3)
- SET GECDA=$ORDER(^PX(839.7,"B",GECT,0))
- +11 SET HFDA=0
- FOR
- SET HFDA=$ORDER(^AUPNVHF("AED",ENCDT,DFN,GECDA,HFDA))
- if HFDA=""
- QUIT
- Begin DoDot:4
- +12 SET HFARY(HFDA)=""
- End DoDot:4
- +13 SET DA=FILEIEN
- SET DIK="^PXRMD(801.5,"
- DO ^DIK
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +14 IF '$TEST
- IF $DATA(^PXRMD(801.5,"ACOPY",NOTEIEN))
- Begin DoDot:1
- +15 SET GECT=""
- FOR
- SET GECT=$ORDER(^PXRMD(801.5,"ACOPY",NOTEIEN,DFN,ENCDT,GECT))
- if GECT=""
- QUIT
- Begin DoDot:2
- +16 SET GECDA=$ORDER(^PX(839.7,"B",GECT,0))
- +17 SET HFDA=0
- FOR
- SET HFDA=$ORDER(^AUPNVHF("AED",ENCDT,DFN,GECDA,HFDA))
- if HFDA=""
- QUIT
- Begin DoDot:3
- +18 SET HFARY(HFDA)=""
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +19 IF $DATA(HFARY)
- Begin DoDot:1
- +20 ;
- +21 NEW ZTIO,ZTRTN,ZTDTH,ZTSAVE,ZTDESC,ZTSK,GECIEN,GET
- +22 ;
- +23 SET ZTIO="ORW/PXAPI RESOURCE"
- +24 SET ZTRTN="REMOVE^PXRMGECK"
- +25 SET ZTDTH=$HOROLOG
- +26 SET ZTSAVE("GECT")=""
- +27 SET ZTSAVE("HFARY(")=""
- +28 SET ZTDESC="PXRM remove Health Factors for GEC"
- +29 DO ^%ZTLOAD
- End DoDot:1
- +30 ;Clean up ACOPY nodes
- +31 DO ACOPYDEL^PXRMGECK
- +32 QUIT
- +33 ;
- API(RESULT,IEN,DFN,VISIT,WHERE,NOTEIEN) ;
- +1 IF '$DATA(NOTEIEN)
- SET NOTEIEN=1
- +2 NEW GEC,DFNDT
- +3 SET GEC=$$CHECKGEC(IEN)
- +4 IF $GET(GEC)=""
- SET RESULT=0_U_""
- QUIT
- +5 IF GEC="UCS"!(GEC="CRGF")!(GEC="IMMREAD")!(GEC="WHRM")!(GEC="WHRP")
- SET RESULT=0_U_""
- QUIT
- +6 IF $GET(GEC)'["GEC"
- SET RESULT=1_U_$$NOW^XLFDT()_";"_GEC
- QUIT
- +7 SET RESULT=1_U_$$GECDT(DFN,GEC,VISIT,NOTEIEN)_";"_GEC_U_$$EVAL(DFN,GEC,WHERE)
- +8 ;
- +9 QUIT
- +10 ;
- CHECKGEC(IEN) ;
- +1 NEW RIEN,DIEN
- +2 IF IEN["R"
- Begin DoDot:1
- +3 SET RIEN=$EXTRACT(IEN,2,$LENGTH(IEN))
- SET DIEN=$GET(^PXD(811.9,RIEN,51))
- +4 IF $GET(DIEN)'=""
- SET GEC=$PIECE($GET(^PXRMD(801.41,DIEN,0)),U,16)
- End DoDot:1
- +5 IF '$TEST
- SET GEC=$PIECE($GET(^PXRMD(801.41,IEN,0)),U,16)
- +6 QUIT $GET(GEC)
- +7 ;
- GECDT(DFN,GEC,VISIT,NOTEIEN) ;Get Date/Time from file
- +1 NEW STOP
- +2 SET STOP=0
- +3 IF $DATA(^PXRMD(801.5,"B",DFN))
- DO CURADD
- +4 IF '$DATA(^PXRMD(801.5,"B",DFN))
- DO NEWADD
- +5 SET DFNDT=$ORDER(^PXRMD(801.5,"AC",DFN,0))
- +6 QUIT DFNDT
- +7 ;
- NEWADD ;-Set Data into File 801.5 and 801.55 (history)
- +1 if STOP=1
- QUIT
- +2 Begin DoDot:1
- +3 if $DATA(^PXRMD(801.5,"AD",DFN,GEC))
- QUIT
- +4 SET GEX(1,801.5,"+1,",.01)=DFN
- +5 SET GEX(1,801.5,"+1,",.02)=$$NOW^XLFDT
- +6 SET GEX(1,801.5,"+1,",.03)=GEC
- +7 SET GEX(1,801.5,"+1,",.04)=+$GET(NOTEIEN)
- +8 SET GEX(1,801.5,"+1,",.05)=DUZ
- +9 SET GEX(1,801.5,"+1,",.06)=DT
- +10 SET ^PXRMD(801.5,"ACOPY",+$GET(NOTEIEN),DFN,$GET(GEX(1,801.5,"+1,",.02)),GEC,DT)=""
- +11 DO UPDATE^DIE("","GEX(1)")
- End DoDot:1
- +12 ;--HISTORY FILE
- +13 SET GEX(2,801.55,"+1,",.01)=DFN
- +14 SET GEX(2,801.55,"+1,",.02)=$$NOW^XLFDT
- +15 SET GEX(2,801.55,"+1,",.03)=GEC
- +16 SET GEX(2,801.55,"+1,",.04)=+$GET(NOTEIEN)
- +17 SET GEX(2,801.55,"+1,",.05)=DUZ
- +18 SET GEX(2,801.55,"+1,",.06)=DT
- +19 DO UPDATE^DIE("","GEX(2)")
- +20 KILL GEX
- +21 SET STOP=1
- +22 QUIT
- CURADD ;-Set Data into File 801.5 and 801.55 (history)
- +1 if STOP=1
- QUIT
- +2 Begin DoDot:1
- +3 if $DATA(^PXRMD(801.5,"AD",DFN,GEC))
- QUIT
- +4 SET GEX(1,801.5,"+1,",.01)=DFN
- +5 SET GEX(1,801.5,"+1,",.02)=$ORDER(^PXRMD(801.5,"AC",DFN,0))
- +6 SET GEX(1,801.5,"+1,",.03)=GEC
- +7 SET GEX(1,801.5,"+1,",.04)=+$GET(NOTEIEN)
- +8 SET GEX(1,801.5,"+1,",.05)=DUZ
- +9 SET GEX(1,801.5,"+1,",.06)=DT
- +10 SET ^PXRMD(801.5,"ACOPY",+$GET(NOTEIEN),DFN,$GET(GEX(1,801.5,"+1,",.02)),GEC,DT)=""
- +11 DO UPDATE^DIE("","GEX(1)")
- End DoDot:1
- +12 ;--HISTORY FILE
- +13 SET GEX(2,801.55,"+1,",.01)=DFN
- +14 SET GEX(2,801.55,"+1,",.02)=$ORDER(^PXRMD(801.5,"AC",DFN,0))
- +15 SET GEX(2,801.55,"+1,",.03)=GEC
- +16 SET GEX(2,801.55,"+1,",.04)=+$GET(NOTEIEN)
- +17 SET GEX(2,801.55,"+1,",.05)=DUZ
- +18 SET GEX(2,801.55,"+1,",.06)=DT
- +19 DO UPDATE^DIE("","GEX(2)")
- +20 KILL GEX
- +21 SET STOP=1
- +22 QUIT
- +23 ;
- STATUS(DFN) ;Evaluate The status of the Referral
- +1 ;
- +2 NEW STOP,ZTSK
- +3 SET STOP=0
- +4 IF $DATA(^PXRMD(801.5,"ATASK",DFN))
- SET ZTSK=$ORDER(^PXRMD(801.5,"ATASK",DFN,0))
- Begin DoDot:1
- +5 DO STAT^%ZTLOAD
- +6 IF ZTSK(0)=1
- Begin DoDot:2
- +7 IF 12[ZTSK(1)
- Begin DoDot:3
- +8 SET MESSAGE="Data is Changing!! Please Check Status Again^GEC Referral NO Status Available^0"
- +9 SET STOP=1
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +10 if STOP=1
- QUIT MESSAGE
- +11 ;
- +12 ;Returned
- +13 ;sentence ~ sentence ~ sentence ^ OK or YES/NO BOX
- +14 ;
- +15 NEW MISSING,MESSAGE,HFDA,STOP,BOX
- +16 SET BOX=1
- +17 DO ACOPYDEL^PXRMGECK
- +18 ;
- +19 ;GET IEN FOR DATA SOURCES FOR GEC
- +20 IF $DATA(^PX(839.7,"B","GEC1"))
- SET GEC1=$ORDER(^PX(839.7,"B","GEC1",""))
- +21 IF $DATA(^PX(839.7,"B","GEC2"))
- SET GEC2=$ORDER(^PX(839.7,"B","GEC2",""))
- +22 IF $DATA(^PX(839.7,"B","GEC3"))
- SET GEC3=$ORDER(^PX(839.7,"B","GEC3",""))
- +23 IF $DATA(^PX(839.7,"B","GECF"))
- SET GECF=$ORDER(^PX(839.7,"B","GECF",""))
- +24 ;
- +25 SET STOP=0
- +26 SET MESSAGE=" No GEC Referral in progress.^GEC Referral Status"
- +27 SET HFDA=""
- FOR
- SET HFDA=$ORDER(^AUPNVHF("C",DFN,HFDA))
- if HFDA=""
- QUIT
- if STOP=1
- QUIT
- Begin DoDot:1
- +28 IF $DATA(^AUPNVHF(HFDA,12))
- Begin DoDot:2
- +29 IF $PIECE($GET(^AUPNVHF(HFDA,12)),"^",1)>0
- Begin DoDot:3
- +30 SET SOURCE=$PIECE($GET(^AUPNVHF(HFDA,812)),"^",3)
- +31 if SOURCE=""
- QUIT
- +32 IF (SOURCE=$GET(GEC1))!(SOURCE=$GET(GEC2))!(SOURCE=$GET(GEC3))!(SOURCE=$GET(GECF))
- Begin DoDot:4
- +33 SET STOP=1
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +34 ;
- +35 SET (MISSING)=""
- +36 IF '$DATA(^PXRMD(801.5,"B",DFN))&(STOP=0)
- Begin DoDot:1
- +37 SET MESSAGE=" No GEC Referral on record.^Current GEC Referral Status"
- End DoDot:1
- +38 if '$DATA(^PXRMD(801.5,"B",DFN))
- QUIT MESSAGE
- +39 SET MESSAGE=""
- +40 ;
- +41 ;
- +42 ; A. look for missing dialog
- +43 if '$DATA(^PXRMD(801.5,"AD",DFN,"GEC1"))
- SET MISSING=MISSING_1_"^"
- +44 if '$DATA(^PXRMD(801.5,"AD",DFN,"GEC2"))
- SET MISSING=MISSING_2_"^"
- +45 if '$DATA(^PXRMD(801.5,"AD",DFN,"GEC3"))
- SET MISSING=MISSING_3_"^"
- +46 if '$DATA(^PXRMD(801.5,"AD",DFN,"GECF"))
- SET MISSING=MISSING_4
- +47 ; a. if none missing then set message
- +48 ;I MISSING="" D
- +49 ; b. if missing then create message
- +50 IF MISSING'=""!(MISSING="")
- Begin DoDot:1
- +51 SET MESSAGE="The following Dialogs are Complete:~"
- +52 if MISSING'[1
- SET MESSAGE=MESSAGE_$PIECE($TEXT(T+7),";",3)
- Begin DoDot:2
- +53 IF +$$TIUSTAT^PXRMGECK(DFN,"GEC1")
- Begin DoDot:3
- +54 SET MESSAGE=MESSAGE_"~"_" Note is "_$PIECE($$TIUSTAT^PXRMGECK(DFN,"GEC1"),":",2)_" "_$PIECE($$TIUSTAT^PXRMGECK(DFN,"GEC1"),":",4)_"~"
- End DoDot:3
- End DoDot:2
- +55 if MISSING'[2
- SET MESSAGE=MESSAGE_$PIECE($TEXT(T+8),";",3)
- Begin DoDot:2
- +56 IF +$$TIUSTAT^PXRMGECK(DFN,"GEC2")
- Begin DoDot:3
- +57 SET MESSAGE=MESSAGE_"~"_" Note is "_$PIECE($$TIUSTAT^PXRMGECK(DFN,"GEC2"),":",2)_" "_$PIECE($$TIUSTAT^PXRMGECK(DFN,"GEC2"),":",4)_"~"
- End DoDot:3
- End DoDot:2
- +58 if MISSING'[3
- SET MESSAGE=MESSAGE_$PIECE($TEXT(T+9),";",3)
- Begin DoDot:2
- +59 IF +$$TIUSTAT^PXRMGECK(DFN,"GEC3")
- Begin DoDot:3
- +60 SET MESSAGE=MESSAGE_"~"_" Note is "_$PIECE($$TIUSTAT^PXRMGECK(DFN,"GEC3"),":",2)_" "_$PIECE($$TIUSTAT^PXRMGECK(DFN,"GEC3"),":",4)_"~"
- End DoDot:3
- End DoDot:2
- +61 if MISSING'[4
- SET MESSAGE=MESSAGE_$PIECE($TEXT(T+10),";",3)
- Begin DoDot:2
- +62 IF +$$TIUSTAT^PXRMGECK(DFN,"GECF")
- Begin DoDot:3
- +63 SET MESSAGE=MESSAGE_"~"_" Note is "_$PIECE($$TIUSTAT^PXRMGECK(DFN,"GECF"),":",2)_" "_$PIECE($$TIUSTAT^PXRMGECK(DFN,"GECF"),":",4)_"~"
- End DoDot:3
- End DoDot:2
- +64 IF $EXTRACT(MESSAGE,$LENGTH(MESSAGE))'="~"
- SET MESSAGE=MESSAGE_"~"
- +65 IF MISSING'=""
- SET MESSAGE=MESSAGE_$PIECE($TEXT(T+11),";",3)
- +66 if MISSING[1
- SET MESSAGE=MESSAGE_$PIECE($TEXT(T+7),";",3)
- +67 if MISSING[2
- SET MESSAGE=MESSAGE_$PIECE($TEXT(T+8),";",3)
- +68 if MISSING[3
- SET MESSAGE=MESSAGE_$PIECE($TEXT(T+9),";",3)
- +69 if MISSING[4
- SET MESSAGE=MESSAGE_$PIECE($TEXT(T+10),";",3)
- End DoDot:1
- +70 ;
- +71 IF MISSING=""
- SET MESSAGE=MESSAGE_"~"_$PIECE($TEXT(T+5),";",3)
- +72 SET MESSAGE=MESSAGE_$PIECE($TEXT(T+6),";",3)
- +73 SET MESSAGE=MESSAGE_"^Current GEC Referral Status"_"^"_BOX
- +74 ;
- +75 QUIT MESSAGE
- +76 ;
- EVAL(DFN,GEC,WHERE) ;Evaluate for missing dialogs
- +1 ;DFN=PATIENT DFN
- +2 ;GEC=Identify for Dialog
- +3 ;WHERE=What part of the dialog this call is comming from
- +4 ; 0=Object at the start
- +5 ; 1=Finished button
- +6 ;
- +7 ;Returned
- +8 ;Box Header ^ Message ^ Box display Flag
- +9 ;
- +10 ;Clean up ACOPY node
- +11 DO ACOPYDEL^PXRMGECK
- +12 ;
- +13 NEW MISSING,MESSAGE,DIANAME,FORTH,BOX
- +14 ;
- +15 ;Getting the Names fo the dialogs
- +16 IF GEC="GEC1"
- SET DIANAME=$PIECE($TEXT(T+1),";",3)
- +17 IF GEC="GEC2"
- SET DIANAME=$PIECE($TEXT(T+2),";",3)
- +18 IF GEC="GEC3"
- SET DIANAME=$PIECE($TEXT(T+3),";",3)
- +19 IF GEC="GECF"
- SET DIANAME=$PIECE($TEXT(T+4),";",3)
- +20 ;
- +21 ;Check to see if 4th is done;add 1 or 0 to end of message
- +22 ;if 1 the GUI should bring up a modal box asking if finished
- +23 SET FORTH=0
- +24 if $DATA(^PXRMD(801.5,"AD",DFN,"GECF"))!(GEC["GECF")
- SET FORTH=1
- +25 IF 'WHERE
- SET FORTH=0
- +26 ;
- +27 ;
- +28 SET (MISSING,MESSAGE)=""
- +29 if '$DATA(^PXRMD(801.5,"B",DFN))
- QUIT MESSAGE
- +30 IF WHERE
- if FORTH=0
- QUIT MESSAGE
- +31 ;
- +32 ;
- +33 ; A. look for missing dialog
- +34 if '$DATA(^PXRMD(801.5,"AD",DFN,"GEC1"))&(GEC'["GEC1")
- SET MISSING=MISSING_1_"^"
- +35 if '$DATA(^PXRMD(801.5,"AD",DFN,"GEC2"))&(GEC'["GEC2")
- SET MISSING=MISSING_2_"^"
- +36 if '$DATA(^PXRMD(801.5,"AD",DFN,"GEC3"))&(GEC'["GEC3")
- SET MISSING=MISSING_3_"^"
- +37 if '$DATA(^PXRMD(801.5,"AD",DFN,"GECF"))&(GEC'["GECF")
- SET MISSING=MISSING_4
- +38 ; a. if none missing then set message
- +39 IF MISSING=""
- Begin DoDot:1
- +40 IF WHERE
- SET MESSAGE=$PIECE($TEXT(T+5),";",3)_$PIECE($TEXT(T+6),";",3)
- +41 IF 'WHERE
- SET MESSAGE=$PIECE($TEXT(T+5),";",3)
- End DoDot:1
- +42 ; b. if missing then create message
- +43 IF MISSING'=""
- Begin DoDot:1
- +44 SET MESSAGE="The Following Dialogs are Missing:~"
- +45 if MISSING[1
- SET MESSAGE=MESSAGE_$PIECE($TEXT(T+7),";",3)
- +46 if MISSING[2
- SET MESSAGE=MESSAGE_$PIECE($TEXT(T+8),";",3)
- +47 if MISSING[3
- SET MESSAGE=MESSAGE_$PIECE($TEXT(T+9),";",3)
- +48 if MISSING[4
- SET MESSAGE=MESSAGE_$PIECE($TEXT(T+10),";",3)
- +49 if 'WHERE
- QUIT
- +50 SET MESSAGE=MESSAGE_$PIECE($TEXT(T+6),";",3)_$PIECE($TEXT(T+12),";",3)_$PIECE($TEXT(T+13),";",3)
- End DoDot:1
- +51 ;
- +52 SET BOX="GEC Referral Completion Status"
- +53 SET MESSAGE=BOX_"^"_MESSAGE_"^"_FORTH
- +54 QUIT MESSAGE
- +55 ;
- T ;TEXT
- +1 ;; Social Services,
- +2 ;; Nursing Assessment,
- +3 ;; Care Recommendations,
- +4 ;; Care Coordination
- +5 ;; All Dialogs are Finished.
- +6 ;; ~~Is this Referral Complete?
- +7 ;; ~ Social Services
- +8 ;; ~ Nursing Assessment
- +9 ;; ~ Care Recommendations
- +10 ;; ~ Care Coordination
- +11 ;; ~The Following Dialogs are Missing:~
- +12 ;; ~~(If you select Yes, the current REFERRAL ~will be completed and the information ~from the missing dialogs cannot be added.
- +13 ;; ~~If you select No, the current REFERRAL ~remains open.)
- +14 QUIT