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

WVPROC.m

Go to the documentation of this file.
WVPROC ;HCIOFO/FT,JR - WV ADD/EDIT WV PROCEDURE; ;5/10/99  10:22
 ;;1.0;WOMEN'S HEALTH;**3,6**;Sep 30, 1998
 ;;  Original routine created by IHS/ANMC/MWR
 ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
 ;;  CALLED BY VARIOUS OPTIONS TO ADD/EDIT PROCEDURES.
 ;
 ;
ADDNEW ;EP
 ;---> CALLED BY OPTION: "WV ADD A NEW PROCEDURE".
 D SETVARS^WVUTL5 S WVPOP1=0
 N DA,DIC,DIE,Y
 F  D  Q:WVPOP1
 .D NEW
 .Q:WVPOP
 .D EDIT2^WVPROC1(DA,.WVPOP)
 .Q:WVPOP
 .D PCDVARS^WVUTL3(DA,1)
 .D NORMAL^WVPROC1
 D EXIT
 Q
 ;
EXIT ;EP
 D KILLALL^WVUTL8
 Q
 ;
 ;
NEW ;EP
 ;---> SELECT A PATIENT.
 D SETVARS^WVUTL5 K DIC
 D TITLE^WVUTL5("ADD A NEW PROCEDURE")
NEWNT ;EP
 ;---> ENTER NEW WITHOUT A TITLE (ALLOWS OTHER TITLES, E.G., HISTORICAL)
 ;---> LOOKUP AND SELECT PATIENT FROM WV PATIENT FILE.
 ; Quit if no default case manager
 I '$$DCM^WVUTL9(DUZ(2)) D NODCM^WVUTL9 S (WVPOP,WVPOP1)=1 Q
 D PATLKUP^WVUTL8(.Y,"ADD")
 I Y<0 S (WVPOP,WVPOP1)=1 Q
 S WVDFN=+Y
 ;
NEW1 ;EP
 ;---> ADD A NEW PROCEDURE.
 ;---> PATIENT SELECTED ALREADY BUT NOT PROCEDURE.
 ;---> REQUIRED VARIABLE: WVDFN
 ;
 ;---> NOW SELECT PROCEDURE TYPE FROM WV PROCEDURE TYPE FILE.
 N A,WVPCDN,S
 S A="   Select PROCEDURE: "
 ;---> SCREEN: ACTIVE FIELD CAN BE "YES" OR NULL, BUT NOT "NO".
 S S="I $P($G(^WV(790.02,DUZ(2),Y)),U)'=0"
 D DIC^WVFMAN(790.2,"QEMA",.Y,A,"PAP SMEAR",S,"",.WVPOP)
 Q:Y<0
 ;---> WVPCDN=IEN OF PROCEDURE TYPE, FILE 790.2.
 S WVPCDN=+Y
 ;
 ;---> IF IT'S A UNILATERAL MAMMOGRAM, PROMPT FOR LEFT OR RIGHT.
 S WVLFRT=""
 I WVPCDN=26 D  I $D(DIRUT) S WVPOP=1 Q
 .N DIR
 .S DIR("?")="   Select LEFT or RIGHT for this Unilateral Mammogram."
 .S DIR(0)="SAM^l:LEFT;r:RIGHT",DIR("A")="   LEFT OR RIGHT: "
 .D ^DIR K DIR
 .Q:$D(DIRUT)
 .S WVLFRT=Y
 ;
 ;---> IF IT'S A COLPOSCOPY, PROMPT FOR PAP THAT INITIATED IT.
 S WVPPAP=""
 I WVPCDN=2 D  Q:WVPOP
 .W !!?3,"Select the PAP Smear that initiated this Colposcopy."
 .N A,S
 .S DIC("?",1)="If a previous abnormal PAP Smear was the reason for"
 .S DIC("?")="this Colposcopy, enter the Accession# of that PAP here."
 .S A="   PAP Smear: ",S="D PAPSCRN^WVUTL2"
 .D DIC^WVFMAN(790.1,"QEMA",.Y,A,"",S,"",.WVPOP)
 .Q:Y<0
 .;---> WVPPAP=IEN OF PREVIOUS PAP IN WV PROCEDURE FILE 790.1.
 .S WVPPAP=+Y
 ;
 ;---> ASK DATE, CHECK FOR DUPLICATE PROCEDURE ON SAME DATE.
 D DATECHK Q:WVPOP
 D NEW2(WVDFN,WVPCDN,WVPCDT,"",WVPPAP,.DA,.WVERROR)
 Q
 ;
NEW2(DFN,PCDIEN,DATE,DRSTRG,PREVPAP,DA,ERROR) ;EP
 ;---> ADD A NEW PROCEDURE.
 ;---> PATIENT AND PROCEDURE ALREADY SELECTED.
 ;---> NOW GENERATE ACCESSION# FOR WV PROCEDURE FILE ENTRY.
 ;---> REQUIRED VARIABLES: DFN=IEN IN WV PATIENT FILE
 ;--->                     PCDIEN=IEN OF PROCEDURE TYPE (#790.2).
 ;
 S X=$$ACCSSN^WVUTL5(PCDIEN) N DIC
 I X']"" D  Q
 .S ERROR=-1
 .Q:$D(ZTQUEUED)  ;quit if a background (tasked) job
 .W !!?5,*7,"UNABLE TO GENERATE ACCESSION#. CONTACT YOUR SITE MANAGER."
 .D DIRZ^WVUTL3
 .Q
 ;
 I $G(DRSTRG)']"" D
 .;---> DEFAULTS: DATE OF PROCEDURE IS TODAY, STATUS IS OPEN.
 .S DRSTRG=".02////"_DFN_";.04////"_PCDIEN
 .S DRSTRG=DRSTRG_";.09///"_$S($D(WVLFRT):WVLFRT,1:"")_";.12///"_DATE
 .S DRSTRG=DRSTRG_";.14///o"
 .S DRSTRG=DRSTRG_";.18////"_DUZ_";.19///T;.3////"_$G(PREVPAP)
 .S DRSTRG=DRSTRG_";.34////"_$G(DUZ(2))
 ;
 D FILE^WVFMAN(790.1,DRSTRG,"ML",X,790,.Y)
 ;---> IF Y<0, CHECK PERMISSIONS.
 I Y<0 D  Q
 .S ERROR=Y
 .Q:$D(ZTQUEUED)  ;quit if a background (tasked) job
 .W !?5,*7,"UNABLE TO CREATE NEW PROCEDURE."
 .D DIRZ^WVUTL3 S WVPOP=1
 .Q
 S DA=+Y
 Q
 ;
 ;
EDIT ;EP
 ;---> CALLED BY OPTION: "WV EDIT PROCEDURE".
 ;---> EDIT AN EXISTING PROCEDURE.
 D TITLE^WVUTL5("EDIT A PROCEDURE")
 D LKUPPCD(.Y)
 Q:Y<0
LT ; Called from WVLABADD routine to immediately edit a procedure created
 ; from a lab test.
 ;---> DA=IEN OF PROCEDURE IN PROCEDURE FILE 790.1.
 S DA=+Y
 I $P($G(^WV(790.1,+DA,0)),U,15)]"" D ^WVRADWP
 I $P($G(^WV(790.1,+DA,2)),U,17)]"" D
 .D ^WVLABWP
 .Q:'$D(^TMP("WVLAB",$J))
 .S WVLOOP=0
 .F  S WVLOOP=$O(^TMP("WVLAB",$J,WVLOOP)) Q:WVLOOP'>0  D
 ..S ^WV(790.1,DA,9,WVLOOP,0)=$G(^TMP("WVLAB",$J,WVLOOP,0)) S WVLOOP(1)=WVLOOP
 ..Q
 .S ^WV(790.1,DA,9,0)="^^"_$G(WVLOOP(1))_"^"_$G(WVLOOP(1))
 .K ^TMP("WVLAB",$J)
 .Q
 D EDIT2^WVPROC1(DA,.WVPOP) Q:WVPOP!($D(WVNOFOL))
 D EX^WVRADWP
 D PCDVARS^WVUTL3(DA,1)
 D NORMAL^WVPROC1
 D EXIT
 Q
 ;
 ;
HISTORIC ;EP
 ;---> CALLED BY OPTION: "WV ADD AN HISTORICAL PROCEDURE".
 ;---> ADD HISTORICAL PROCEDURES (NO PROVIDER, WARD/CLINIC, FACILITY).
 D SETVARS^WVUTL5 S WVPOP1=0 N DA,DIE,Y
 F  D  Q:WVPOP1
 .D TITLE^WVUTL5("ENTER HISTORICAL DATA")
 .D NEWNT W !
 .Q:(WVPOP!('$G(DA)))
 .S WVPN=$P(^WV(790.1,DA,0),U,4)
 .S DR=".05;.08;.1;.14////c"
 .D DIE^WVFMAN(790.1,DR,DA,.WVPOP)
 D EXIT
 Q
 ;
 ;
LABEDIT ;EP
 ;---> CALLED BY OPTION: "WV LAB EDIT PROCEDURE".
 S WVNOFOL=1 D EDIT,EXIT
 Q
 ;
 ;
RADMOD(DA) ;EP
 ;---> MODIFY A PROCEDURE THAT WAS IMPORTED FROM RADIOLOGY AND
 ;---> HAS BEEN CHANGED.
 ;---> DA=IEN OF PROCEDURE IN WV PROCEDURE FILE #790.1.
 Q:'$G(DA)
 S DR=".13////"_DT_";.14////o"
 D DIE^WVFMAN(790.1,DR,DA,.WVPOP)
 Q
 ;
 ;
LKUPPCD(Y) ;EP
 ;---> LOOKUP A PROCEDURE.
 N A
 D SETVARS^WVUTL5
 S A="Select ACCESSION# or PATIENT NAME: "
 D DIC^WVFMAN(790.1,"QEMA",.Y,A,"","","",.WVPOP)
 Q
 ;
DATECHK ;EP
 ;---> PROMPT FOR DATE, CHECK FOR DUPLICATE PROCEDURE ON SAME DATE.
 N WVNEW,DIR,DIRUT,N,Y S WVPOP=0
 S DIR("?",1)="   Enter the date on which this procedure was performed:"
 S DIR("?")="   (NOTE: Dates in the future may NOT be entered.)"
 S DIR(0)="DA^0:DT:EX",DIR("A")="   Select DATE:      ",DIR("B")="TODAY"
 D ^DIR K DIR
 I Y<1 S WVPOP=1 Q
 S WVPCDT=Y D DD^%DT W "  ",Y
 S N=0,WVNEW=0
 F  S N=$O(^WV(790.1,"C",WVDFN,N)) Q:('N)!(WVPOP)!(WVNEW)  D
 .S Y=^WV(790.1,N,0)
 .;---> QUIT IF NOT THE SAME PROCEDURE TYPE.
 .Q:$P(Y,U,4)'=WVPCDN
 .;---> QUIT IF NOT THE SAME PROCEDURE DATE.
 .Q:$P(Y,U,12)'=WVPCDT
 .;---> QUIT IF THIS PROCEDURE HAS A RESULT/DIAG OF "ERROR/DISREGARD".
 .Q:$P(Y,U,5)=8
 .N WVPN S WVPN=$P(^WV(790.2,$P(Y,U,4),0),U)
 .W !!?5,"A ",WVPN," already exists for this patient on this date,"
 .W !?5,"with an Accession# of ",$P(Y,U)
 .W ".  You may edit that procedure by"
 .W !?5,"calling up ",$P(Y,U)," under the ""Edit a Procedure"" option."
 .W !?5,"Or you may enter another ",WVPN," for this patient"
 .W !?5,"on this date."
 .W !!?5,"Do you REALLY want to add another ",WVPN," for this patient"
 .W !?5,"on this date?"
 .S DIR("?")="       Enter NO to avoid adding another "_WVPN
 .S DIR("?")=DIR("?")_" on this date."
 .S DIR(0)="Y",DIR("A")="     Enter Yes or No",DIR("B")="NO"
 .D ^DIR K DIR
 .I $D(DIRUT)!('Y) S WVPOP=1 Q
 .S WVNEW=1
 Q
 ;
ERROR1 ;EP
 W !!?10,*7,"NEW PROCEDURE ENTRY FOR THIS PATIENT FAILED."
 Q