Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DGMSTL1

DGMSTL1.m

Go to the documentation of this file.
  1. DGMSTL1 ;ALB/SCK - MST Status entry cont. ; 11/15/01 2:27pm
  1. ;;5.3;Registration;**195,379**;Aug 13, 1993
  1. Q
  1. PAT ;
  1. N MSTDFN,DGMST,MSTST,MSTPV,MSTDT,DGDTFLG,MSTX,Y
  1. ;
  1. D FULL^VALM1
  1. ASKP S MSTDFN=$$SELECT
  1. Q:MSTDFN<0
  1. ;
  1. S DGMST=$$GETSTAT^DGMSTAPI(MSTDFN)
  1. K DIRUT
  1. S DIR(0)="29.11,3AO",DIR("B")=$P(DGMST,U,2),DIR("A")="Enter MST Status: "
  1. D ^DIR K DIR
  1. G:$D(DIRUT) ASKP
  1. ;
  1. I Y=$P(DGMST,U,2) D G ASKP
  1. . W !!," MST Status has not been changed, Nothing done.",!
  1. S MSTST=Y
  1. ;
  1. S MSTDT=$$ASKDATE^DGMSTL2("",+$P(DGMST,U,3))
  1. G:'MSTDT ASKP
  1. ;
  1. S MSTPV=$$ASKPROV^DGMSTL2($P(DGMST,U,4))
  1. G:'MSTPV ASKP
  1. ;
  1. S MSTX=$$NEWSTAT^DGMSTAPI(MSTDFN,MSTST,MSTDT,MSTPV,"",0)
  1. I +MSTX>0 D
  1. . D ADDSTR^DGMSTL2(MSTDFN,MSTST,MSTDT,MSTPV,+MSTX)
  1. ;
  1. I +MSTX<0 D
  1. . W !!,"The following occurred when saving this status:"
  1. . W !,$$EZBLD^DIALOG($P(MSTX,U,2)),!
  1. ;
  1. G ASKP
  1. Q
  1. ;
  1. STAT ;
  1. N MSTST,MSTDT,MSTPV,MSTDFN,DGMST,DGDTFLG,Y
  1. ;
  1. D FULL^VALM1
  1. ;
  1. ASKS K DIRUT S DIR(0)="29.11,3AO",DIR("A")="Enter MST status: "
  1. D ^DIR K DIR
  1. Q:$D(DIRUT)!(Y']"")
  1. S MSTST=Y
  1. ;
  1. ASKS1 S MSTDFN=$$SELECT
  1. G:MSTDFN<0 ASKS
  1. S DGMST=$$GETSTAT^DGMSTAPI(MSTDFN)
  1. ;
  1. S MSTDT=$$ASKDATE^DGMSTL2
  1. G:'MSTDT ASKS1
  1. ;
  1. S MSTPV=$$ASKPROV^DGMSTL2($S($G(MSTPV)>0:MSTPV,1:""))
  1. G:'MSTPV ASKS1
  1. ;
  1. S MSTX=$$NEWSTAT^DGMSTAPI(MSTDFN,MSTST,MSTDT,MSTPV,"",0)
  1. I +MSTX>0 D
  1. . D ADDSTR^DGMSTL2(MSTDFN,MSTST,MSTDT,MSTPV,MSTX)
  1. ;
  1. I +MSTX<0 D
  1. . W !!,"The following occurred when saving this status:"
  1. . W !,$$EZBLD^DIALOG($P(MSTX,U,2)),!
  1. ;
  1. G ASKS1
  1. Q
  1. ;
  1. EL ; Edit MST status in current List Manager Display
  1. N MSTDFN,DGMST,MSTST,MSTPRV,MSTDT,MSTIEN,DGMSG,MSTIENC,MSTNEW
  1. ;
  1. Q:$$CHKNUL^DGMSTL2
  1. D FULL^VALM1
  1. D EN^VALM2(XQORNOD(0),"S")
  1. S VALMI=0,VALMI=$O(VALMY(VALMI)) Q:'VALMI
  1. S MSTIEN=$O(^TMP("DGMST",$J,"IEN",VALMI,0))
  1. Q:(MSTIEN<0)
  1. ;
  1. ; Retreive information from file entry to be changed
  1. S MSTIENC=+MSTIEN_","
  1. D GETS^DIQ(29.11,MSTIENC,"*","IE","DGMST","DGMSG")
  1. I $D(DGMSG) D Q
  1. . W !!,"Unable to retrieve data at this time."
  1. ;
  1. W !!,"Edit MST status for "_DGMST(29.11,MSTIENC,2,"E")
  1. ; Enter new MST status code, default is current MST status entered
  1. K DIRUT
  1. S DIR(0)="29.11,3AO",DIR("B")=DGMST(29.11,MSTIENC,3,"E"),DIR("A")="Enter MST Status: "
  1. D ^DIR K DIR
  1. Q:$D(DIRUT)
  1. S MSTST=Y
  1. ;
  1. ; Ask for provider
  1. S MSTPRV=$$ASKPROV^DGMSTL2(DGMST(29.11,MSTIENC,4,"I"))
  1. Q:'MSTPRV
  1. ;
  1. ; Ask for status date
  1. S MSTDT=$$ASKDATE^DGMSTL2(DGMST(29.11,MSTIENC,.01,"I"))
  1. Q:'MSTDT
  1. ;
  1. W !
  1. K DIRUT
  1. S DIR(0)="YA",DIR("B")="NO",DIR("A")="Save Changes? "
  1. D ^DIR K DIR
  1. Q:$D(DIRUT)!('Y)
  1. ;
  1. ; Process edit
  1. S MSTNEW(1,29.11,MSTIENC,.01)=MSTDT
  1. S MSTNEW(1,29.11,MSTIENC,3)=MSTST
  1. S MSTNEW(1,29.11,MSTIENC,4)=MSTPRV
  1. S MSTNEW(1,29.11,MSTIENC,5)=DUZ
  1. ;
  1. L +^DGMS(29.11,MSTIEN)
  1. D FILE^DIE("S","MSTNEW(1)","DGERR")
  1. L -^DGMS(29.11,MSTIEN)
  1. ;
  1. ; Update List Manager display
  1. D FLDTEXT^VALM10(VALMI,"DATE",$$FMTE^XLFDT(MSTDT))
  1. D FLDTEXT^VALM10(VALMI,"PROVIDER",$$NAME^DGMSTAPI(MSTPRV))
  1. D FLDTEXT^VALM10(VALMI,"STATUS",MSTST)
  1. Q
  1. ;
  1. DL ; Delete entry from list and from the MST HISTORY File (#29.11)
  1. N MSTDFN,DGMST,MSG,MSTST,DGRSLT,DGERR,MSTCNT,MSTIEN,MSTIENC
  1. ;
  1. Q:$$CHKNUL^DGMSTL2
  1. ;
  1. D FULL^VALM1
  1. ; Retrieve entry to delete
  1. D EN^VALM2(XQORNOD(0)) S VALMI=0
  1. M ^TMP("DGMST RENUM",$J)=^TMP("DGMST",$J)
  1. F S VALMI=$O(VALMY(VALMI)) Q:'VALMI D
  1. . S MSTIEN=$O(^TMP("DGMST",$J,"IEN",VALMI,0))
  1. . D GETS^DIQ(29.11,MSTIEN_",","*","I","DGMST","DGERR")
  1. . Q:$D(DGERR)
  1. . Q:'($$CONFIRM(DGMST(29.11,MSTIEN_",",2,"I"),DGMST(29.11,MSTIEN_",",3,"I")))
  1. . S DGRSLT=$$DELMST^DGMSTAPI(MSTIEN)
  1. . I DGRSLT D
  1. .. K ^TMP("DGMST RENUM",$J,"IDX",VALMI)
  1. . E D
  1. . W !!,$P(DGRSLT,U,2)
  1. ;
  1. S (VALMCNT,MSTCNT,IDX)=0
  1. K ^TMP("DGMST",$J)
  1. F S IDX=$O(^TMP("DGMST RENUM",$J,"IDX",IDX)) Q:'IDX D
  1. . S MSTIEN=$O(^TMP("DGMST RENUM",$J,"IEN",IDX,0)),MSTIENC=MSTIEN_","
  1. . D GETS^DIQ(29.11,MSTIENC,"*","I","DGMST")
  1. . D ADDSTR^DGMSTL2(DGMST(29.11,MSTIENC,2,"I"),DGMST(29.11,MSTIENC,3,"I"),DGMST(29.11,MSTIENC,.01,"I"),DGMST(29.11,MSTIENC,4,"I"),MSTIEN)
  1. ;
  1. D NUL^DGMSTL2
  1. Q
  1. ;
  1. DP ; Display patient MST status history for a patient not in the current liST
  1. ;
  1. N DIC,MSTDFN
  1. K ^TMP("DGMST DP",$J)
  1. ;
  1. D FULL^VALM1
  1. S MSTDFN=$$SELECT
  1. ;
  1. I MSTDFN<0 D Q
  1. . W !?5,"No patient found"
  1. . S VALMBCK="R"
  1. ;
  1. D EN^VALM("DGMST STATUS DISPLAY")
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. SENDMST ; Send HL7 messages for current list
  1. N MSTDFN,DGRSLT,IDX
  1. S MSTDFN=""
  1. D FULL^VALM1
  1. Q:'$D(^TMP("DGMST",$J,"DFN"))
  1. W !!,"Queuing MST updates for HL7 processing..." D HANG
  1. S IDX=""
  1. F S IDX=$O(^TMP("DGMST",$J,"DFN",IDX)) Q:'IDX D
  1. . S MSTDFN=$O(^TMP("DGMST",$J,"DFN",IDX,0))
  1. . Q:'MSTDFN
  1. . D SEND(MSTDFN,"Z07")
  1. W !!,"Queuing completed..." D HANG
  1. Q
  1. ;
  1. SEND(DFN,EVNT) ; Send HL7 message
  1. N HLRSLT
  1. S DFN=$G(DFN)
  1. S EVNT=$G(EVNT)
  1. I EVNT="Z07" D AUTOUPD^DGENA2(DFN)
  1. Q
  1. ;
  1. SELECT() ;
  1. N DGRSLT
  1. ;
  1. K DIRUT
  1. S DIC=2,DIC(0)="AEMQZ",DIC("A")="Select Patient: "
  1. S DIC("S")="I $G(^(""VET""))=""Y"",'+$G(^(.35))>0!(+$G(^(.35))>0&(+$G(^(.35))'<2921001))"
  1. D ^DIC K DIC
  1. I $D(DIRUT)!(Y="") S DGRSLT=-1
  1. E D
  1. . S DGRSLT=+Y
  1. Q $G(DGRSLT)
  1. ;
  1. CONFIRM(MSTDFN,MSTST) ; Confirm deletion of patient's MST status
  1. ; Confirm deletion for this patient
  1. K DIRUT
  1. S DIR("A",1)=""
  1. S DIR("A",2)=$P(^DPT(MSTDFN,0),U)_" has a current status of "_$$EXTMST^DGMSTL2(MSTST)
  1. S DIR(0)="YA",DIR("B")="NO"
  1. S DIR("A")="Delete this MST status entry? "
  1. D ^DIR K DIR
  1. Q:$D(DIRUT) 0
  1. Q $G(Y)
  1. ;
  1. HANG ; This logic allows the messages to display briefly to the User.
  1. R DGPTHANG:4 K DGPTHANG
  1. Q