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

BCHUEDT.m

Go to the documentation of this file.
  1. BCHUEDT ; IHS/CMI/LAB - EDIT A CHR RECORD ;
  1. ;;2.0;IHS RPMS CHR SYSTEM;;OCT 23, 2012;Build 27
  1. ;IHS/CMI/LAB - patch 6 9/21/98 added ability to enter a
  1. ;IHS/CMI/LAB - patch 12 protected against bad narrative pointer
  1. ;registered patient on editing a record
  1. ;
  1. ;
  1. ;edit a chr record, called from protocol
  1. ;
  1. EN ;EP
  1. D EN^VALM2(XQORNOD(0),"OS")
  1. I '$D(VALMY) W !,"No records selected." G XIT
  1. S BCHR=$O(VALMY(0)) I 'BCHR K BCHR,VALMY,XQORNOD W !,"No record selected." G XIT
  1. S BCHR=BCHVRECS("IDX",BCHR,BCHR) I 'BCHR K BCHRDEL,BCHR D PAUSE^BCHUTIL1 D XIT Q
  1. I '$D(^BCHR(BCHR,0)) W !,"Not a valid CHR RECORD." K BCHRDEL,BCHR D PAUSE^BCHUTIL1 D XIT Q
  1. D FULL^VALM1
  1. DISP ;EP
  1. D EN^BCHUDSP
  1. S BCHUEDT=1,BCHRWDEL="" ;in edit
  1. S BCHR0=^BCHR(BCHR,0)
  1. S DFN=$P(BCHR0,U,4)
  1. S BCHTYPE="" D TYPE I BCHTYPE="" D XIT Q
  1. D RECCHECK^BCHUADD1
  1. I $D(BCHERROR),'BCHRWDEL W !!,$C(7),$C(7),"PLEASE RE-EDIT THE RECORD AND CORRECT THIS ERROR!!!",! H 5
  1. D XIT
  1. Q
  1. TYPE ; get type of data to edit
  1. S BCHTYPE=""
  1. W !!
  1. S DIR(0)="SO^1:Patient Demographic Data;2:All Other Record Data",DIR("A")="EDIT Which Data Item" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. Q:$D(DIRUT)
  1. Q:Y=""
  1. S BCHTYPE=+Y
  1. D @BCHTYPE
  1. Q
  1. XIT ;eof
  1. ;do event protocol call
  1. ;S BCHEV("TYPE")="E"
  1. ;set up bchev with all pcc ptrs
  1. ;wipe out pcc ptrs in chr record
  1. ;S BCHEV("VFILES",9000010)=$P(^BCHR(BCHR,0),U,15)
  1. ;S X=0 F S X=$O(^BCHR(BCHR,31,X)) Q:X'=+X S F=$P(^BCHR(BCHR,31,X,0),U),N=$P(^(0),U,2) I F,N S BCHEV("VFILES",F,N)=""
  1. ;K ^BCHR(BCHR,31)
  1. ;D PROTOCOL^BCHUADD1
  1. REF ;
  1. I $G(BCHEN1) G EOJ
  1. S VALMBCK="R"
  1. D TERM^VALM0
  1. D GATHER^BCHUARL
  1. S VALMCNT=BCHRCNT
  1. D HDR^BCHUAR
  1. EOJ K BCHR,BCHTYPE,BCHR0,BCHERROR,BCHC,BCHRPOV,DFN,BCHX,BCHUEDT,BCHRWDEL
  1. K BCHTYPE
  1. Q
  1. ;
  1. 1 ;PATIENT demographic
  1. ;WILL be different depending if patient pointer or other data
  1. I $P(^BCHR(BCHR,0),U,4)]"" D Q
  1. .W !,"This is a REGISTERED Patient. You cannot edit any of ",$S($P(^DPT($P(^BCHR(BCHR,0),U,4),0),U,2)="M":"his",1:"her")," demographic data.",!,"You may enter a different patient if this was entered in error.",!
  1. .S BCHODFN=DFN,DIE="^BCHR(",DA=BCHR,DR=".04" D ^DIE K DIE,DA,DR
  1. .S DFN=$P(^BCHR(BCHR,0),U,4)
  1. .Q:DFN=BCHODFN
  1. .;backfill pt ptr in CHR POV
  1. .S BCHX=0 F S BCHX=$O(^BCHRPROB("AD",BCHR,BCHX)) Q:BCHX'=+BCHX D
  1. ..S DIE="^BCHRPROB(",DA=BCHX,DR=".02////"_DFN,DITC=""
  1. ..D ^DIE
  1. ..K DIE,DA,DR,DIU,DIV,DIW,DIY,DITC
  1. ..I $D(Y) W !,"error updating pov's with patient, NOTIFY PROGRAMMER" H 5
  1. ..Q
  1. .;backfill pt ptr in CHR EDUC
  1. .S BCHX=0 F S BCHX=$O(^BCHRPED("AD",BCHR,BCHX)) Q:BCHX'=+BCHX D
  1. ..S DIE="^BCHRPED(",DA=BCHX,DR=".02////"_DFN,DITC=""
  1. ..D ^DIE
  1. ..K DIE,DA,DR,DIU,DIV,DIW,DIY,DITC
  1. ..I $D(Y) W !,"error updating educ's with patient, NOTIFY PROGRAMMER" H 5
  1. ..Q
  1. .Q
  1. ;IHS/CMI/LAB - PATCH 6 ADDED THESE LINES TO ALLOW ENTRY OF A
  1. ;REGISTERED PATIENT ON EDIT
  1. W !!,"If this is a registered patient, enter their name or chart number",!,"otherwise type an ""^"" to update a non-registered patient's data.",!! ;IHS/CMI/LAB added patch 6
  1. S DIE="^BCHR(",DA=BCHR,DR=".04" D ^DIE K DIE,DA,DR ;IHS/CMI/LAB added patch 6
  1. I $P(^BCHR(BCHR,0),U,4) S BCHXX=$P(^BCHR(BCHR,0),U,4) S DA=BCHR,DIE="^BCHR(",DR="1112///@;.04///@" D ^DIE K DA,DIE,DR S DIE="^BCHR(",DA=BCHR,DR=".04////"_BCHXX D ^DIE K DIE,DA,DR Q ;IF ADDED A REAL PATIENT DELETE OUT NON-REG PATIENT
  1. S DA=BCHR,DIE=90002,DR=1112 D ^DIE K DA,DIE,DR,DIU,DIV
  1. I $P($G(^BCHR(BCHR,11)),U,12) S (BCHXX,DA)=$P($G(^BCHR(BCHR,11)),U,12),DR="[BCH EDIT NON REG PT]",DIE="^BCHRPAT(" D ^DIE K DA,DR,DIE D
  1. .S DA=BCHR,DIE=90002,DR="1112///@;.04///@" D ^DIE K DA,DIE,DR S DIE="^BCHR(",DA=BCHR,DR="1112////"_BCHXX D ^DIE K DIE,DA,DR
  1. K DR,DA,DDSFILE,DIC,DIE
  1. Q
  1. 2 ;EP - OTHER record data
  1. W !
  1. S DA=BCHR,DIE="^BCHR(",DR=".17////"_DT D ^DIE K DIE,DA,DIE
  1. S DA=BCHR,DDSFILE=90002,DR=$S('$G(BCHUABFO):"[BCHE1 ENTER CHR DATA (535)]",1:"[BCHEA1 ENTER CHR DATA (535)]") D ^DDS
  1. K DR,DA,DDSFILE,DIC,DIE
  1. I $D(DIMSG) W !!,"ERROR IN SCREENMAN FORM!! ***NOTIFY PROGRAMMER***" S BCHQUIT=1 K DIMSG Q
  1. S DFN=$P(^BCHR(BCHR,0),U,4)
  1. Q:DFN=""
  1. ;backfill pt ptr in CHR POV
  1. S BCHX=0 F S BCHX=$O(^BCHRPROB("AD",BCHR,BCHX)) Q:BCHX'=+BCHX D
  1. .S DIE="^BCHRPROB(",DA=BCHX,DR=".02////"_DFN,DITC=""
  1. .D ^DIE
  1. .K DIE,DA,DR,DIU,DIV,DIW,DIY,DITC
  1. .I $D(Y) W !,"error updating pov's with patient, NOTIFY PROGRAMMER" H 5
  1. .Q
  1. ;backfill pt ptr in CHR EDUC
  1. S BCHX=0 F S BCHX=$O(^BCHRPED("AD",BCHR,BCHX)) Q:BCHX'=+BCHX D
  1. .S DIE="^BCHRPED(",DA=BCHX,DR=".02////"_DFN,DITC=""
  1. .D ^DIE
  1. .K DIE,DA,DR,DIU,DIV,DIW,DIY,DITC
  1. .I $D(Y) W !,"error updating educ's with patient, NOTIFY PROGRAMMER" H 5
  1. .Q
  1. Q
  1. DISPPOVS ;
  1. W !
  1. S (X,BCHC)=0 F S X=$O(^BCHRPROB("AD",BCHR,X)) Q:X'=+X S BCHC=BCHC+1,BCHRPOV(BCHC)=X D
  1. .S N=$P(^BCHRPROB(X,0),U,6) I N,$D(^AUTNPOV(N,0)) S N=$P(^AUTNPOV(N,0),U)
  1. .W !?2,BCHC,") ",$E($P(^BCHTPROB($P(^BCHRPROB(X,0),U),0),U),1,20),?29,$E($P(^BCHTSERV($P(^BCHRPROB(X,0),U,4),0),U),1,20),?52,$P(^BCHRPROB(X,0),U,5),?57,$E(N,1,21)
  1. .Q
  1. Q
  1. EPOV ;edit an existing pov
  1. D DISPPOVS
  1. W ! S DIR(0)="N^1:"_BCHC_":",DIR("A")="Which One do you wish to EDIT" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) Q
  1. Q:'Y
  1. I '$D(BCHRPOV(BCHC)) W !!,"Invalid choice." Q
  1. S DA=BCHRPOV(Y),DIE="^BCHRPROB(",DR="[BCH EDIT POV]" D ^DIE K DIE,DA,DIU,DIV,DIY,DIW,DR
  1. I $D(Y) W !!,"ERROR ENCOUNTERED IN EDITING A POV" Q
  1. Q
  1. APOV ;add a new pov
  1. W !!,"Adding a NEW POV...",!
  1. S DIE="^BCHR(",DR="[BCH ADD POV]",DA=BCHR D ^DIE K DIE,DA,DR,DIU,DIV,DIY,DIW
  1. I $D(Y) W !!,"NO POV ADDED!"
  1. Q
  1. DPOV ;delete pov
  1. D DISPPOVS
  1. S DIR(0)="N^1:"_BCHC_":",DIR("A")="Which One do you wish to DELETE" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) Q
  1. Q:'Y
  1. I '$D(BCHRPOV(BCHC)) W !!,"Invalid choice." Q
  1. ;
  1. S DIR(0)="Y",DIR("A")="Are you sure you want to delete this POV",DIR("B")="N" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. Q:$D(DIRUT)
  1. I 'Y W !,"Okay, not deleted." Q
  1. S DA=BCHRPOV(Y),DIK="^BCHRPROB(" D ^DIK W !,"POV DELETED" K DA,DIK Q
  1. Q
  1. CP ;EP - CHANGE PROVIDER
  1. D FULL^VALM1
  1. S BCHOPROV=BCHPROV
  1. D GETPROV^BCHUAR
  1. I BCHPROV="" W !!,"No provider selected." S BCHPROV=BCHOPROV D PAUSE^BCHUTIL1
  1. S VALMBCK="R"
  1. D TERM^VALM0
  1. D GATHER^BCHUARL
  1. S VALMCNT=BCHRCNT
  1. D HDR^BCHUAR
  1. Q
  1. CD ;EP - CHANGE DATE
  1. D FULL^VALM1
  1. S BCHODATE=BCHDATE
  1. D GETDATE^BCHUAR
  1. I BCHDATE="" W !!,"No new date selected." S BCHDATE=BCHODATE D PAUSE^BCHUTIL1
  1. S VALMBCK="R"
  1. D TERM^VALM0
  1. D GATHER^BCHUARL
  1. S VALMCNT=BCHRCNT
  1. D HDR^BCHUAR
  1. Q
  1. CF ;EP - CHANGE FORM
  1. D FULL^VALM1
  1. I $G(BCHUABFO) K BCHUABFO W !,"Form changed to 535 Comprehensive." G CF1
  1. S BCHUABFO=1 W !,"Form changed to 535-1 Abbreviated."
  1. CF1 D PAUSE^BCHUTIL1
  1. S VALMBCK="R"
  1. D TERM^VALM0
  1. D GATHER^BCHUARL
  1. S VALMCNT=BCHRCNT
  1. D HDR^BCHUAR
  1. Q