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

APCDCAF6.m

Go to the documentation of this file.
  1. APCDCAF6 ;IHS/OIT/LJF - NEW INCOMPLETE CHART EDIT OPTION ; 23 Mar 2015 12:30 PM
  1. ;;2.0;IHS PCC SUITE;**11**;MAY 14, 2009;Build 58
  1. ;
  1. ;
  1. MSG(DATA,PRE,POST) ;EP; -- writes line to device;IHS/ITSC/LJF PATCH 1003
  1. NEW I,FORMAT
  1. S FORMAT="" I $G(PRE)>0 F I=1:1:PRE S FORMAT=FORMAT_"!"
  1. D EN^DDIOL(DATA,"",FORMAT)
  1. I $G(POST)>0 F I=1:1:POST D EN^DDIOL("","","!")
  1. Q
  1. CDE ;EP
  1. K DIR
  1. S DIR(0)="NO^1:"_APCDRCNT,DIR("A")="Which Visit"
  1. D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I Y="" W !,"No VISIT selected." D EOP^APCDCAF G CDEX
  1. I $D(DIRUT) W !,"No VISIT selected." D EOP^APCDCAF G CDEX
  1. S APCDVSIT=^TMP("APCDCAF",$J,"IDX",Y,Y)
  1. K VALMBCK
  1. S APCDCAFV=APCDVSIT,APCDPAT=$P(^AUPNVSIT(APCDVSIT,0),U,5) D EN(APCDVSIT)
  1. ;
  1. CDEX ;
  1. K DIR,DIRUT,DUOUT,Y,APCDVSIT,APCDCAF,APCDCAFV
  1. D KILL^AUPNPAT
  1. D BACK^APCDCAF
  1. Q
  1. HRCN(PAT,SITE) ;EP; return chart number for patient at this site
  1. ;
  1. I $G(PAT)="" Q ""
  1. Q $P($G(^AUPNPAT(PAT,41,SITE,0)),U,2)
  1. ;
  1. EN(APCDVSIT) ;EP; -- main entry point for OUTPT CHART DEFICIENY
  1. ; called with APCDVSIT set
  1. NEW VALMCNT D TERM^VALM0,CLEAR^VALM1
  1. NEW APCDDALL S APCDDALL=1
  1. D EN^VALM("APCDCAF CDE EDIT")
  1. D CLEAR^VALM1
  1. Q
  1. ;
  1. HDR ;EP; -- header code
  1. NEW X
  1. S X=$$PAD($G(IORVON)_$$GET1^DIQ(2,+$G(APCDPAT),.01)_$G(IORVOFF),35)_"#"_$$HRCN(+$G(APCDPAT),DUZ(2))
  1. S VALMHDR(1)=X
  1. ;
  1. S X=$$PAD("Visit Date: "_$$GET1^DIQ(9000010,APCDVSIT,.01),40)_"Service Category: "_$$GET1^DIQ(9000010,APCDVSIT,.07)
  1. S VALMHDR(2)=X
  1. S X=$$PAD("Hospital Location: "_$$GET1^DIQ(9000010,APCDVSIT,.22),40)_"Clinic: "_$$GET1^DIQ(9000010,APCDVSIT,.08)
  1. S VALMHDR(3)=X
  1. S X="Primary Provider: "_$$PRIMPROV^APCLV(APCDVSIT,"N")
  1. S VALMHDR(4)=X
  1. Q
  1. ;
  1. INIT ;EP; -- init variables and list array
  1. D INIT^APCDCAF7
  1. Q
  1. ;
  1. SET(DATA,COUNT) ; stuff data into display lie
  1. S COUNT=COUNT+1
  1. S APCDCDEV(COUNT,0)=DATA
  1. Q
  1. ;
  1. HELP ;EP; -- help code
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. ;
  1. EXIT ;EP; -- exit code
  1. K APCDDALL,APCDVSIT
  1. Q
  1. ;
  1. EXPND ; -- expand code
  1. Q
  1. ;
  1. REBUILD ; EP; rebuild display
  1. ;
  1. D TERM^VALM0
  1. D HDR,INIT
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. EDITTD ; EP; edit tracking dates - called by APCD ICE DATES
  1. D FULL^VALM1 NEW ITEM,FIELD,DIE,DA,DR,Y
  1. I '$D(^AUPNCANT(APCDVSIT,0)) D ADDCANT^APCDCAF1
  1. S DIE="^AUPNCANT(",DA=APCDVSIT
  1. L +^AUPNCANT(APCDVSIT):1 I '$T D MSG("Another person is editing this entry!",2,0) D PAUSE^APCDALV1,REBUILD Q
  1. NEW APCDX
  1. S APCDX=$O(^AUPNCANT(APCDVSIT,12,"AC",0))
  1. S DR=".03//"_$$FMTE^XLFDT(APCDX)
  1. D ^DIE
  1. K DA,DR,DIE
  1. L -^AUPNCANT(APCDVSIT)
  1. W !,"Reviewed/Complete: ",$$DMRC(APCDVSIT)
  1. D PAUSE^APCDALV1
  1. D REBUILD
  1. Q
  1. ;
  1. CAN ; EP; CHART AUDIT NOTE EDIT
  1. NEW DIE,DA,DR
  1. D FULL^VALM1
  1. I '$D(^AUPNCANT(APCDVSIT)) D ADDCANT^APCDCAF1
  1. I '$D(^AUPNCANT(APCDVSIT)) W !!,"adding entry to chart audit notes failed." H 3 G CANX
  1. W ! S DA=APCDVSIT,DIE="^AUPNCANT(",DR=1100 D ^DIE K DIE,DA,DR
  1. ;
  1. CANX ;
  1. D PAUSE^APCDALV1,REBUILD
  1. Q
  1. ;
  1. READ(TYPE,PROMPT,DEFAULT,HELP,SCREEN,DIRA) ;EP; calls reader, returns response
  1. NEW DIR,Y,DIRUT
  1. S DIR(0)=TYPE
  1. I $E(TYPE,1)="P",$P(TYPE,":",2)["L" S DLAYGO=+$P(TYPE,U,2)
  1. I $D(SCREEN),SCREEN]"" S DIR("S")=SCREEN
  1. I $G(PROMPT)]"" S DIR("A")=PROMPT
  1. I $G(DEFAULT)]"" S DIR("B")=DEFAULT
  1. I $D(HELP) S DIR("?")=HELP
  1. I $D(DIRA(1)) S Y=0 F S Y=$O(DIRA(Y)) Q:Y="" S DIR("A",Y)=DIRA(Y)
  1. D ^DIR
  1. Q Y
  1. ;
  1. ADDDEF ; EP; add chart deficiences - called by APCD ICE ADD DEF protocol
  1. NEW PROV,APCDDEF,COUNT,ACTION,CHOICES,Y,DIE,DR,DA,I,SCREEN,DATE
  1. D FULL^VALM1
  1. L +^AUPNCANT(APCDVSIT):1 I '$T D MSG("Someone Else is editing this record currently",1,1),PAUSE^APCDALV1 Q
  1. S PROMPT="Select PROVIDER",SCREEN="" ;,SCREEN="I $D(^XUSEC(""PROVIDER"",+Y))&($P($G(^VA(200,+Y,""PS"")),U,4)="""")"
  1. F D Q:PROV<1
  1. . D MSG("",1,0)
  1. . S PROV=+$$READ("PO^200:EMQZ",PROMPT,"","",SCREEN)
  1. . Q:PROV<1
  1. . ;
  1. . ; stay in this provider until told to quit
  1. . S QUIT=0 F D Q:QUIT
  1. . . K APCDDEF D FINDDEF(APCDVSIT,PROV) ;build array of deficiencies for provider
  1. . . I '$D(APCDDEF) D ADDMORE(APCDVSIT,PROV) S QUIT=1 Q ;if none yet, go to add mode
  1. . . ;
  1. . . D MSG($$SP(5)_"*** "_$$GET1^DIQ(200,PROV,.01)_" Deficiencies ***",2,0)
  1. . . F COUNT=1:1 Q:'$D(APCDDEF(COUNT)) D MSG($P(APCDDEF(COUNT),U),1,0) ;display deficiencies
  1. . . ;
  1. . . D MSG("",1,0)
  1. . . S ACTION(1)=" 1. ADD New Deficiencies"
  1. . . S ACTION(2)=" 2. EDIT Selected Deficiencies"
  1. . . S ACTION(3)=" 3. RESOLVE Selected Deficiencies"
  1. . . S ACTION(4)=" 4. DELETE Selected Deficiencies"
  1. . . S ACTION(5)=" 5. QUIT"
  1. . . S Y=$$READ("NO^1:5","Select Action",5,"","",.ACTION) Q:Y<1
  1. . . I Y=5 S QUIT=1 Q
  1. . . I Y=1 D ADDMORE(APCDVSIT,PROV) Q
  1. . . S ACTION=Y
  1. . . ;
  1. . . S CHOICES=$$READ("LO^1:"_(COUNT-1),"Select Which Deficiencies to "_$S(ACTION=2:"EDIT",ACTION=4:"DELETE",1:"RESOLVE"))
  1. . . Q:CHOICES<1
  1. . . ;
  1. . . ; close multiple deficiencies
  1. . . I ACTION=3 D Q
  1. . . . S DATE=$$READ("D^::EX","Enter DATE RESOLVED") Q:'DATE
  1. . . . S DIE="^AUPNCANT("_APCDVSIT_",12,",DR=".03///"_DATE_";.11///R;.06////"_DT_";.07////"_DUZ,DA(1)=APCDVSIT
  1. . . . F I=1:1 S J=$P(CHOICES,",",I) Q:J="" W !?3,"Closing "_$E($P(APCDDEF(J),U),5,40) S DA=$P(APCDDEF(J),U,2) D ^DIE
  1. . . . K DA,DR,DIE ;
  1. . . I ACTION=4 D Q ;DELETE SELECTED DEFICIENCIES
  1. . . . S DATE=$$READ("DO^::EX","Enter DATE DELETED") Q:'DATE
  1. . . . S DIE="^AUPNCANT("_APCDVSIT_",12,",DR=".08///"_DATE_";.11///D;.06////"_DT_";.07////"_DUZ_";.09",DA(1)=APCDVSIT
  1. . . . F I=1:1 S J=$P(CHOICES,",",I) Q:J="" W !?3,"Deleting "_$E($P(APCDDEF(J),U),5,40) S DA=$P(APCDDEF(J),U,2) D ^DIE
  1. . . . K DA,DR,DIE ;
  1. . . ; else edit selected deficiencies
  1. . . S DIE="^AUPNCANT("_APCDVSIT_",12,",DR=".06////"_DT_";.07////"_DUZ_";.02;.1",DA(1)=APCDVSIT
  1. . . F I=1:1 S J=$P(CHOICES,",",I) Q:J="" D
  1. . . . D MSG($P(APCDDEF(J),U),2,0)
  1. . . . S DA=$P(APCDDEF(J),U,2)
  1. . . . D ^DIE
  1. L -^AUPNCANT(APCDVSIT)
  1. D VCAUPD
  1. D REBUILD
  1. Q
  1. ;
  1. FINDDEF(APCDVSIT,PRV) ; return APCDDEF array with current deficiencies for provider PRV -pending ONLY
  1. NEW COUNT,IEN,LINE,IENS
  1. S (IEN,COUNT)=0
  1. F S IEN=$O(^AUPNCANT(APCDVSIT,12,"B",PROV,IEN)) Q:'IEN D
  1. . S IENS=IEN_","_APCDVSIT
  1. . Q:$$GET1^DIQ(9000095.12,IENS,.11,"I")'="P"
  1. . S COUNT=COUNT+1
  1. . S LINE=$$PAD($J(COUNT,3),5)_$$GET1^DIQ(9000095.12,IENS,.02) ;def name
  1. . S LINE=$$PAD(LINE,40)_$$GET1^DIQ(9000095.12,IENS,.11) ;status
  1. . S APCDDEF(COUNT)=LINE_U_IEN
  1. Q
  1. FINDPEND(V) ;EP - are there any pending deficiencies
  1. I '$G(V) Q ""
  1. NEW COUNT,IEN,J
  1. S (IEN,COUNT)=0
  1. F S IEN=$O(^AUPNCANT(V,12,IEN)) Q:IEN'=+IEN!(COUNT) D
  1. . S IENS=IEN_","_V
  1. . Q:$$GET1^DIQ(9000095.12,IENS,.11,"I")'="P"
  1. . S COUNT=COUNT+1
  1. Q COUNT
  1. ;
  1. ADDMORE(APCDVSIT,PRV) ; add new deficiencies for provider
  1. NEW DIE,DR,DA,QUIT,DIC,DEF,DLAYGO,Y,IENS
  1. D MSG(" Add Mode for Deficiencies. . .",2,0)
  1. I '$D(^AUPNCANT(APCDVSIT,0)) D ADDCANT^APCDCAF1
  1. S QUIT=0 F D Q:QUIT
  1. . K DIC S DIC="^AUTTCDR(",DIC(0)="AEMQZ"
  1. . D ^DIC S DEF=+Y I Y<1 S QUIT=1 Q
  1. . ;
  1. . I $$HAVEDEF(APCDVSIT,PRV,DEF) Q:'$$READ("Y","This deficiency already defined for this provider. Do you really want to add it again","NO")
  1. . ;
  1. . Q:'$$READ("Y","Okay to add "_Y(0,0)_" for this provider","YES")
  1. . K DIC,DA,DD,DO
  1. . S DIC="^AUPNCANT("_APCDVSIT_",12,",DA(1)=APCDVSIT,X=PRV,DIC(0)="L"
  1. . S DIC("P")=$P(^DD(9000095,1200,0),U,2),DLAYGO=9000095.12
  1. . S DIC("DR")=".02///"_DEF_";.04////"_DT_";.05////"_DUZ_";.06////"_DT_";.07////"_DUZ_";.11///P"
  1. . D FILE^DICN Q:Y=-1
  1. . ;
  1. . S DIE="^AUPNCANT("_APCDVSIT_",12,",DA(1)=APCDVSIT,DA=+Y,DR=".03;.1" D ^DIE
  1. . S IENS=DA_","_APCDVSIT
  1. . I $$GET1^DIQ(9000095.12,IENS,.03,"I")]"" S DR=".11///R" D ^DIE
  1. . K DIE,DA,DR
  1. Q
  1. ;
  1. HAVEDEF(APCDVSIT,PRV,DEF) ;returns 1 if this record & this provider already have this deficincy defined
  1. NEW IEN,FOUND
  1. S (IEN,FOUND)=0 F S IEN=$O(^AUPNCANT(APCDVSIT,12,"B",PRV,IEN)) Q:'IEN Q:FOUND D
  1. . I $P(^AUPNCANT(APCDVSIT,12,IEN,0),U,11)'="P"
  1. . I $P(^AUPNCANT(APCDVSIT,12,IEN,0),U,2)=DEF S FOUND=1
  1. Q FOUND
  1. ;
  1. UPDATE ;EP
  1. D FULL^VALM1
  1. S APCDERR=$$ERRORCHK^APCDCAF(APCDVSIT)
  1. I APCDERR]"" W !!,"This visit has the following error: ",APCDERR,!,"You cannot mark a visit as Reviewed/Completed if there is an error." D PAUSE^APCDALV1 G UPDATEX
  1. S AUPNVSIT=APCDVSIT D MOD^AUPNVSIT K AUPNVSIT
  1. UPD0 ;
  1. K DIC,DD,D0,DO
  1. S X=$$NOW^XLFDT,DIC="^AUPNVCA(",DIC(0)="L",DIADD=1,DLAYGO=9000010.45
  1. S DIC("DR")=".02////"_$P(^AUPNVSIT(APCDVSIT,0),U,5)_";.03////"_APCDVSIT_";.04///R;.05////"_DUZ_";1216////"_$$NOW^XLFDT D FILE^DICN
  1. I Y=-1 W !!,"updating status failed" D PAUSE^APCDALV1 G UPDATEX
  1. K DIC,DD,D0,DIADD,DLAYGO
  1. S (APCDVCA,DA)=+Y
  1. UPD1 ;
  1. ;
  1. S DIE="^AUPNVSIT(",DA=APCDVSIT,DR=".13////"_DT_";1111///R" D ^DIE K DIE,DA,DR
  1. D RNU^APCDCAF4
  1. UPDATEX ;
  1. K DIADD,DLAYGO
  1. D ^XBFMK
  1. K APCDCAR,APCDCVA
  1. D REBUILD
  1. Q
  1. ;
  1. VCAUPD ;
  1. NEW APCDVCA
  1. K DIC,DD,D0,DO
  1. S X=$$NOW^XLFDT,DIC="^AUPNVCA(",DIC(0)="L",DIADD=1,DLAYGO=9000010.45
  1. S DIC("DR")=".02////"_$P(^AUPNVSIT(APCDVSIT,0),U,5)_";.03////"_APCDVSIT_";.05////"_DUZ_";1216////"_$$NOW^XLFDT D FILE^DICN
  1. I Y=-1 W !!,"updating status failed" D PAUSE^APCDALV1 Q
  1. K DIC,DD,D0,DIADD,DLAYGO
  1. S (APCDVCA,DA)=+Y
  1. VCAUPD1 ;
  1. D ^XBFMK
  1. S S=0
  1. I $$ERRORCHK^APCDCAF(APCDVSIT)]"" S S=1
  1. I $$FINDPEND(APCDVSIT) S S=1
  1. I S S APCDCAR="I",DA=APCDVCA,DIE="^AUPNVCA(",DR=".04///I" D ^DIE K DA,DIE,DR G VCAUPD2
  1. I 'S S DA=APCDVCA,DIE="^AUPNVCA(",DR=".04" D ^DIE K DA,DIE,DR
  1. D ^XBFMK
  1. S APCDCAR=$P(^AUPNVCA(APCDVCA,0),U,4)
  1. I APCDCAR="" W !!,"You must enter a status" G VCAUPD1
  1. S APCDERR=$$ERRORCHK^APCDCAF(APCDVSIT)
  1. I APCDERR]"",APCDCAR="R" W !!,"This visit has the following error: ",APCDERR,!,"You cannot mark a visit as Reviewed/Completed if there is an error." S DA=APCDVCA,DIE="^AUPNVCA(",DR=".04///I" D ^DIE G VCAUPD1
  1. VCAUPD2 ;
  1. S DIE="^AUPNVSIT(",DA=APCDVSIT,DR=".13////"_DT_";1111////"_APCDCAR D ^DIE K DIE,DA,DR
  1. Q
  1. ;
  1. ;
  1. PAD(D,L) ;EP pad length of data
  1. ; -- D=data L=length
  1. Q $E(D_$$REPEAT^XLFSTR(" ",L),1,L)
  1. ;
  1. SP(N) ; pad N number of spaces
  1. Q $$PAD(" ",N)
  1. ;
  1. DSOKAY() ; EP; does site use day surgery?
  1. Q $$GET1^DIQ(9009020.1,$$DIV^BSDU,201,"I")
  1. ;
  1. LABEL(FIELD) ; returns field's title or label
  1. NEW X
  1. S X=$$GET1^DID(9000095,FIELD,"","TITLE")
  1. I X="" S X=$$GET1^DID(9000095,FIELD,"","LABEL")
  1. Q X
  1. ;
  1. PENDING(IEN) ; return 1 if chart has at least one pending deficiency
  1. NEW IEN2,FOUND,IENS
  1. S (IEN2,FOUND)=0 F S IEN2=$O(^AUPNCANT(IEN,1,IEN2)) Q:'IEN2 Q:FOUND D
  1. . S IENS=IEN2_","_IEN
  1. . Q:$$GET1^DIQ(9000095.12,IENS,.11)'="P"
  1. . S FOUND=1
  1. Q FOUND
  1. DELQDT(IEN,PVN) ;EP called by computed code for DATE DELINQUENT
  1. ; IEN = internal entry in file
  1. ; PVN = internal entry for provider multiple
  1. I ('$G(IEN))!('$G(PVN)) Q "??"
  1. NEW VD,DAYS
  1. S VD=$$VD^APCLV(IEN) ;VISIT date
  1. I 'VD Q "??"
  1. S DAYS=$$GET1^DIQ(9001001.2,DUZ(2),.38) ;Days to delinquency
  1. I 'DAYS Q "??"
  1. Q $$FMADD^XLFDT(VD,DAYS)
  1. ;
  1. ICTIME(IEN,PVN) ;EP; called by computed code for Completion Time
  1. ; IEN = internal entry in file
  1. ; PVN = internal entry for provider multiple
  1. I ('$G(IEN))!('$G(PVN)) Q "??"
  1. NEW DONE,DSCH
  1. S DONE=$$GET1^DIQ(9000095.12,PVN_","_IEN,.03,"I") ;date resolved
  1. I 'DONE Q ""
  1. S DSCH=$$GET1^DIQ(900095.12,PVN_","_IEN,.04,"I") ;date added
  1. I 'DSCH Q "??"
  1. Q $$FMDIFF^XLFDT(DONE,DSCH)
  1. DISPV ;EP
  1. NEW APCDCAFV
  1. S APCDCAFV=APCDVSIT D ^APCDVD S APCDVSIT=APCDCAFV
  1. DISPX ;
  1. K DIR,DIRUT,DUOUT,Y
  1. D REBUILD
  1. Q
  1. ;
  1. DMRC(V) ;EP - date marked reviewed/complete
  1. I '$G(V) Q ""
  1. NEW X,Y
  1. I '$D(^AUPNVSIT(V,11)) Q "NOT YET COMPLETE"
  1. I $P(^AUPNVSIT(V,11),U,11)'="R" Q "NOT YET COMPLETE"
  1. S X=0,Y="" F S X=$O(^AUPNVCA("AD",V,X)) Q:X'=+X I $P($G(^AUPNVCA(X,0)),U,4)="R" S Y=X
  1. I 'Y Q "NOT YET COMPLETE"
  1. Q $$GET1^DIQ(9000010.45,Y,.01)
  1. ;
  1. ICSTAT(IEN,PVN) ;EP; called by computed code for Resolution Status
  1. ; IEN = internal entry in file
  1. ; PVN = internal entry for provider multiple
  1. I ('$G(IEN))!('$G(PVN)) Q "??"
  1. I $$GET1^DIQ(9000095.12,PVN_","_IEN,.03)]"" Q "Resolved"
  1. I $$GET1^DIQ(9000095.12,PVN_","_IEN,.08)]"" Q "Deleted"
  1. Q "Pending"
  1. EDITPRV ;EP - edit the provider but keep track of deficiency
  1. NEW PROV,APCDDEF,COUNT,ACTION,CHOICES,Y,DIE,DR,DA,I,SCREEN,DATE,NEWPRV,APCDNN,APCDALL
  1. D FULL^VALM1
  1. L +^AUPNCANT(APCDVSIT):1 I '$T D MSG("Someone Else is editing this record currently",1,1),PAUSE^APCDALV1 Q
  1. S PROMPT="Select PROVIDER",SCREEN="" ;"I $D(^XUSEC(""PROVIDER"",+Y))&($P($G(^VA(200,+Y,""PS"")),U,4)="""")"
  1. F D Q:PROV<1
  1. . D MSG("",1,0)
  1. . S PROV=+$$READ("PO^200:EMQZ",PROMPT,"","",SCREEN)
  1. . Q:PROV<1
  1. . ;
  1. . ; stay in this provider until told to quit
  1. . S QUIT=0 F D Q:QUIT
  1. . . K APCDDEF D FINDDEF(APCDVSIT,PROV) ;build array of deficiencies for provider
  1. . . I '$D(APCDDEF) D MSG($$SP(5)_"There are no Pending deficiencies for this Provider",2,0) S QUIT=1 Q
  1. . . ;
  1. . . D MSG($$SP(5)_"*** "_$$GET1^DIQ(200,PROV,.01)_" Deficiencies ***",2,0)
  1. . . F COUNT=1:1 Q:'$D(APCDDEF(COUNT)) D MSG($P(APCDDEF(COUNT),U),1,0) ;display deficiencies
  1. . . ;
  1. . . D MSG("",1,0)
  1. . . S CHOICES=$$READ("LO^1:"_(COUNT-1),"Select Which Deficiency to change Provider for")
  1. . . D MSG("",1,0)
  1. . . I +CHOICES<1 S QUIT=1 Q
  1. . . S NEWPRV=+$$READ("PO^200:EMQZ","Change to which Provider","","",SCREEN)
  1. . . I NEWPRV<1 S QUIT=1 Q
  1. . . I PROV=NEWPRV D MSG($$SP(5)_"You cannot select the same provider",2,0) S QUIT=1 Q
  1. . . S APCDNN=$$ADDNEW(APCDVSIT,NEWPRV)
  1. . . I 'APCDNN D MSG($$SP(5)_"Error copying deficiency information from old provider to new",2,0) S QUIT=1 Q
  1. . . D STUFFNEW(APCDVSIT,APCDNN,$TR(CHOICES,",",""))
  1. . . D CLOSEOUT(APCDVSIT,PROV,$TR(CHOICES,",",""))
  1. . . W !!,"Provider changed from ",$$VAL^XBDIQ1(200,PROV,.01)," to ",$$VAL^XBDIQ1(200,NEWPRV,.01)
  1. . . ;
  1. L -^AUPNCANT(APCDVSIT)
  1. D REBUILD
  1. Q
  1. ADDNEW(N,NPRV) ;-- add a new entry for new provider
  1. K DIC,DA,DD,DO
  1. S DA(1)=N
  1. S DIC(0)="L",DIC="^AUPNCANT("_N_",12,"
  1. S DIC("P")=$P(^DD(9000095,1200,0),U,2),DLAYGO=9000095.12
  1. S X=NPRV
  1. S DIC("DR")=";.06////"_DT_";.07////"_DUZ
  1. D FILE^DICN
  1. Q +Y
  1. ;
  1. CLOSEOUT(N,P,C) ;-- closeout the previous provider
  1. K DR,DIE
  1. S DIE="^AUPNCANT("_N_",12,",DR=".11///D;.08////"_DT_";.09///Provider Change;.1///Auto changed Change PROVIDER protocol action"
  1. S DA(1)=N,DA=$P(APCDDEF(C),U,2)
  1. D ^DIE
  1. K DIE
  1. Q
  1. ;
  1. STUFFNEW(N,NN,CH) ;-- now add the new entry
  1. K DR,DIE
  1. N DATA,A,B,C,D,E,J
  1. S J=$P(APCDDEF(CH),U,2)
  1. S DATA=$G(^AUPNCANT(N,12,J,0))
  1. S A=$P(DATA,U,2)
  1. S B=$P(DATA,U,3)
  1. S C=$P(DATA,U,4)
  1. S D=$P(DATA,U,5)
  1. S E=$P(DATA,U,10)
  1. S DIE="^AUPNCANT("_N_",12,",DA(1)=N,DA=NN
  1. S DR=".02////"_A_";.03////"_B_";.04////"_C_";.05////"_D_";.1////"_E_";.11///P"
  1. D ^DIE
  1. K DIE
  1. Q
  1. ;