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

DPTDZFCH.m

Go to the documentation of this file.
  1. DPTDZFCH ; IHS/TUCSON/JCM - CHANGE CHART NUMBERS FOR MERGED PATIENTS ; [ 02/02/94 4:52 PM ]
  1. ;;1.0;PATIENT MERGE;;FEB 02, 1994
  1. ;
  1. START ;
  1. W:$D(IOF) @IOF W !,"This program will switch chart numbers for patients who have been merged ",!,"together and who have had the wrong chart number kept for the patient.",!!
  1. D GETFROM
  1. G:DPTDZFCH("FROM")="" END
  1. D GETSITE
  1. G:DPTDZFCH("CHART SITE")="" END
  1. D DISPLAY
  1. D GETOK
  1. I DPTDZFCH("OK")="" W !,"Okay, Bye!!" G END
  1. D CHGCHART
  1. D DISPLAY2
  1. END ;END OF JOB
  1. K DPTDZFCH,AUPNDAYS,AUPNSEX,AUPNPAT,AUPNDOB,AUPNDOD,APCHSPAT,APCHSTYP,AGQI,AGQT,AGTP
  1. K DA,DIE,DIC,DIK,DR,DO,D0,D,DI,DIW,DIWT,I,X,Y,XY,C,E,DQ,DN,DFN
  1. Q
  1. ;
  1. GETFROM ;get the from patient (DFN)
  1. S DPTDZFCH("FROM")=""
  1. W !
  1. S DIR(0)="NO^1::0",DIR("A")="Enter the DFN of the From Patient",DIR("?")="Enter the internal entry number of the From (merged away) patient. You can find this number on the mail message." D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. Q:$D(DIRUT)
  1. I '$D(^DPT(Y,0)) W !!,$C(7),$C(7),"That patient does not exist!!" K DIRUT,Y G GETFROM
  1. I $P(^DPT(Y,0),U,19)="" W !!,$C(7),$C(7),"That patient has NOT been merged away!!" K DIRUT,Y G GETFROM
  1. S DPTDZFCH("FROM")=Y,DPTDZFCH("TO")=$P(^DPT(DPTDZFCH("FROM"),0),U,19)
  1. Q
  1. GETSITE ; GET the site for the chart number to be switched
  1. S DPTDZFCH("CHART SITE")=""
  1. S DIC("A")="Enter the facility of the chart number to be switched: ",DIC="^AUTTLOC(",DIC(0)="AEMQ" D ^DIC K DIC
  1. Q:Y=-1
  1. I '$D(^AUPNPAT(DPTDZFCH("FROM"),41,+Y)) W !!,$C(7),$C(7),"The 'From' patient, ",$P(^DPT(DPTDZFCH("FROM"),0),U)," does not have a chart at that facility." K Y G GETSITE
  1. I '$D(^AUPNPAT(DPTDZFCH("TO"),41,+Y)) W !!,$C(7),$C(7),"The 'To' patient, ",$P(^DPT(DPTDZFCH("TO"),0),U)," does not have a chart at that facility." K Y G GETSITE
  1. S DPTDZFCH("CHART SITE")=+Y
  1. S DPTDZFCH("FROM CHART")=$P(^AUPNPAT(DPTDZFCH("FROM"),41,DPTDZFCH("CHART SITE"),0),U,2)
  1. S DPTDZFCH("TO CHART")=$P(^AUPNPAT(DPTDZFCH("TO"),41,DPTDZFCH("CHART SITE"),0),U,2)
  1. Q
  1. DISPLAY ;DISPLAY CURRENT CHART NUMBERS
  1. W:$D(IOF) @IOF
  1. W !!?28,"Current Chart Number Data"
  1. W !!,"From DFN: ",DPTDZFCH("FROM"),?22,"Name: ",$P(^DPT(DPTDZFCH("FROM"),0),U),?59,"Chart No.: ",DPTDZFCH("FROM CHART")
  1. W !," To DFN: ",DPTDZFCH("TO"),?22,"Name: ",$P(^DPT(DPTDZFCH("TO"),0),U),?59,"Chart No.: ",DPTDZFCH("TO CHART")
  1. Q
  1. GETOK ;
  1. S DPTDZFCH("OK")=""
  1. W !!,"I will switch the chart numbers listed above.",!
  1. S DIR(0)="Y",DIR("A")="Do you want to continue",DIR("B")="N" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. Q:$D(DIRUT)
  1. I Y=0 W !!,"Okay, I won't" Q
  1. S DPTDZFCH("OK")=1
  1. Q
  1. CHGCHART ;change chart number
  1. ;change from chart number to to's chart number
  1. S DIE="^AUPNPAT("_DPTDZFCH("FROM")_",41,",DA(1)=DPTDZFCH("FROM"),DA=DPTDZFCH("CHART SITE"),DR=".02///"_DPTDZFCH("TO CHART") D ^DIE
  1. I $D(Y) W !!,"OOPS.. Changing the From patient chart number failed in DIE!" K Y,DIE Q
  1. S DIE="^AUPNPAT("_DPTDZFCH("TO")_",41,",DA(1)=DPTDZFCH("TO"),DA=DPTDZFCH("CHART SITE"),DR=".02///"_DPTDZFCH("FROM CHART") D ^DIE
  1. I $D(Y) W !!,"OOPS.. Changing the To patient chart number failed in DIE!" K Y,DIE Q
  1. Q
  1. DISPLAY2 ; print new chart info, face sheet and health summary
  1. W !!?30,"NEW Chart Number Data"
  1. W !!,"From DFN: ",DPTDZFCH("FROM"),?22,"Name: ",$P(^DPT(DPTDZFCH("FROM"),0),U),?59,"Chart No.: ",$P(^AUPNPAT(DPTDZFCH("FROM"),41,DPTDZFCH("CHART SITE"),0),U,2)
  1. W !," To DFN: ",DPTDZFCH("TO"),?22,"Name: ",$P(^DPT(DPTDZFCH("TO"),0),U),?59,"Chart No.: ",$P(^AUPNPAT(DPTDZFCH("TO"),41,DPTDZFCH("CHART SITE"),0),U,2)
  1. S DPTDZFCH("QFLG")=0
  1. D ASK G:DPTDZFCH("QFLG") END
  1. S DPTDZFCH("PAT")=DPTDZFCH("TO")
  1. D DEVICE G:DPTDZFCH("QFLG") END
  1. D:$D(DPTDZFCH("PCC")) HEALTH
  1. D FACE K AGOPT
  1. Q
  1. ;
  1. ASK ;
  1. K DIR
  1. W !!
  1. S DIR(0)="YO",DIR("B")="Y",DIR("A")="Do you wish to re-print a face sheet"
  1. I $P(^AUTTSITE(1,0),U,8)="Y" S DIR("A")=DIR("A")_" and health summary for the 'TO' patient" S DPTDZFCH("PCC")=""
  1. D ^DIR K DIR
  1. I $D(DUOUT)!($D(DTOUT)) S DPTDZFCH("QFLG")=1 G ASKX
  1. I 'Y S DPTDZFCH("QFLG")=1 G ASKX
  1. I $D(DPTDZFCH("PCC")) K DIC,Y S DIC=9001015,DIC("A")="Select health summary type: ",DIC(0)="AEQ" D
  1. .S X=$S($D(^APCHSCTL("B","PATIENT MERGE (COMPLETE)")):"PATIENT MERGE (COMPLETE)",1:"ADULT REGULAR"),DIC("B")=X D ^DIC S:Y>0 DPTDZFCH("TYPE")=+Y S:Y'>0 DPTDZFCH("QFLG")=1 K DIC
  1. ASKX K Y
  1. Q
  1. ;
  1. DEVICE ;
  1. S:$D(DPTDZFCH("DEVICE")) IOP=DPTDZFCH("DEVICE")
  1. S %ZIS(0)="MP" D ^%ZIS
  1. I POP S DPTDZFCH("QFLG")=1 G DEVICEX
  1. S DPTDZFCH("DEVICE")=$P(IO,";")_";"_IOST_";"_IOM_";"_IOSL
  1. DEVICEX K %ZIS,POP
  1. Q
  1. ;
  1. HEALTH ;
  1. I $D(^%ZOSF("XY"))#2 S (DX,DY)=0 X ^("XY") K DX,DY
  1. K APCHSPAT,APCHSTYP
  1. S APCHSPAT=DPTDZFCH("PAT"),APCHSTYP=DPTDZFCH("TYPE")
  1. D EN^APCHS
  1. Q
  1. ;
  1. FACE ;
  1. I $D(^%ZOSF("XY"))#2 S (DX,DY)=0 X ^("XY") K DX,DY
  1. S DFN=DPTDZFCH("PAT")
  1. D START^AGFACE K AGOPT
  1. Q