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

PXBPL.m

Go to the documentation of this file.
  1. PXBPL ;ISL/JVS - ADD DIAGNOSIS TO PROBLEM LIST ; 3/27/02 4:48pm
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**11,94,115**;Aug 12, 1996
  1. ;
  1. ;
  1. ;
  1. W !,"THIS IS NOT AN ENTRY POINT" Q
  1. SET ;--SETUP AND NEW VARIABLES
  1. N OK,PXBPL,FLAG,DATA,ICDCODE
  1. D WIN17^PXBCC(PXBCNT)
  1. I '$G(NOPLLIST) Q
  1. PRMPT ;--Ask if you want to put entries in PL
  1. S DIR(0)="Y,A,O"
  1. S DIR("B")="NO"
  1. I PXBCNT'>1 S DIR("A")="Would you like to add this Diagnosis to the Problem List? "
  1. I PXBCNT>1 S DIR("A")="Would you like to add any Diagnoses to the Problem List? "
  1. D ^DIR K DIR
  1. I Y=0!(Y="^")!(Y="") Q
  1. SELECT ;--Select entries for PL
  1. W !
  1. I PXBCNT'>1 S OK=1
  1. I PXBCNT>1 W !,"Select 1 or several Diagnoses (eg 1,3,4,7,3-6,2-5): " R OK:DTIME
  1. I OK?1.N1"E".NAP S OK=" "_OK
  1. I OK?24.N S OK=$E(OK,1,24)
  1. ;
  1. ;
  1. I OK["-" D
  1. .N PIECE,PXBI,PXBJ,PXBK
  1. .S PIECE="" F PXBI=1:1:$L(OK,",") S PIECE=$P(OK,",",PXBI) I PIECE["-" D
  1. ..S PXBJ=0 F PXBJ=$P(PIECE,"-",1):1:$P(PIECE,"-",2) S PXBK=","_PXBJ,OK=OK_PXBK
  1. ;
  1. ;
  1. ;
  1. S PXBLEN=0
  1. I OK["?" W !,"Enter the ITEM numbers of the entries you whish to add to the PROBLEM LIST." G SELECT
  1. ;----SPACE BAR---------
  1. I OK'=" ",OK'["^",OK'="" S ^DISV(DUZ,"PXBPL-2")=OK
  1. I OK=" ",$D(^DISV(DUZ,"PXBPL-2")) S OK=^DISV(DUZ,"PXBPL-2") W OK
  1. ;-----------------------
  1. S PXBLEN=$L(OK,",") F PXI=1:1:PXBLEN S PXBPIECE=$P(OK,",",PXI) D
  1. .Q:PXBPIECE=""
  1. .I $D(PXBSAM(PXBPIECE)) D
  1. ..S FLAG=1
  1. ..D REVPOV^PXBCC(PXBPIECE)
  1. I '$G(FLAG) S DIR(0)="Y^AO",DIR("B")="NO",DIR("A")="INVALID entry. Would you like to try again" D ^DIR K DIR I Y=1 K Y G SELECT
  1. PRV ;--Ask for provider
  1. I '$G(FLAG) Q
  1. S FROM="PL" D PRV^PXBGPRV(PXBVST)
  1. R K ERROR S FROM="PL" D PRV^PXBPPRV G:$G(ERROR) R W IOEDEOP
  1. I DATA["^P" D LOC^PXBCC(3,0),EN0^PXBDPRV,LOC^PXBCC(15,0) G PRV
  1. D POV^PXBGPOV(PXBVST)
  1. LOOP ;--Loop through diagnosis
  1. S PXBLEN=$L(OK,",") F PXI=1:1:PXBLEN S PXBPIECE=$P(OK,",",PXI) D
  1. .I PXBPIECE="" Q
  1. .I $D(PXBSAM(PXBPIECE)) D
  1. ..S PXBPL("PATIENT")=PATIENT
  1. ..S PXBPL("NARRATIVE")=$P($G(PXBSAM(PXBPIECE)),"^",3)
  1. ..S PXBPL("PROVIDER")=$P(REQI,"^",1)
  1. ..S PXBPL("DIAGNOSIS")=+^AUPNVPOV($O(PXBSKY(PXBPIECE,0)),0)
  1. ..S PXBPL("LOCATION")=$P(^AUPNVSIT(PXBVST,0),"^",22)
  1. ..;PRH - PX*1*115 - Set up Service Conditions
  1. ..N PXSCSTR,PXII,PXTYP
  1. ..S PXSCSTR="SC^AO^IR^EC^MST^HNC"
  1. ..F PXII=1:1:6 D
  1. ...S PXTYP=$P(PXSCSTR,"^",PXII)
  1. ...S PXBPL(PXTYP)=$P($G(^AUPNVSIT(PXBVST,800)),"^",PXII)
  1. ..S ICDCODE="",ICDCODE=$P($G(PXBSAM(PXBPIECE)),"^",1)
  1. ..I ICDCODE'="" D ; Get Lexicon entry for ICD Code
  1. ...KILL LEXS D EN^LEXCODE(ICDCODE)
  1. ...I $G(LEXS("ICD",0))>0 S PXBPL("LEXICON")=$P($G(LEXS("ICD",1)),"^",1)
  1. ..D CREATE^GMPLUTL(.PXBPL,.PXBRES)
  1. ..D PR
  1. K NOPLLIST
  1. Q
  1. SEND ;--Entry point to send data to problem list
  1. N PXBPL,OK,ICDCODE
  1. I '$D(IORVON) D TERM^PXBCC
  1. S PXBPL("PATIENT")=PATIENT
  1. S PXBPL("NARRATIVE")=PXBSAM($O(PXBKY($P($P(REQE,"^",5)," ",1),0)),"LNARR")
  1. S PXBPL("PROVIDER")=$P(REQI,"^",1)
  1. S PXBPL("DIAGNOSIS")=$P(REQI,"^",5)
  1. S PXBPL("LOCATION")=$P(^AUPNVSIT(PXBVST,0),"^",22)
  1. ;PRH - PX*1*115 - Set up Service Conditions
  1. N PXSCSTR,PXII,PXTYP
  1. S PXSCSTR="SC^AO^IR^EC^MST^HNC"
  1. F PXII=1:1:6 D
  1. . S PXTYP=$P(PXSCSTR,"^",PXII)
  1. . S PXBPL(PXTYP)=$P($G(^AUPNVSIT(PXBVST,800)),"^",PXII)
  1. S ICDCODE="",ICDCODE=$P($G(PXBSAM($O(PXBKY($P($P(REQE,"^",5)," ",1),0)))),"^",1)
  1. I ICDCODE'="" D ; Get Lexicon entry for ICD Code
  1. .KILL LEXS D EN^LEXCODE(ICDCODE)
  1. .I $G(LEXS("ICD",0))>0 S PXBPL("LEXICON")=$P($G(LEXS("ICD",1)),"^",1)
  1. D CREATE^GMPLUTL(.PXBPL,.PXBRES)
  1. PR ;
  1. I PXBRES<0 D Q ;'Q'uit added for PX*1*115
  1. .W !,IORVON,"--WARNING-Problem NOT Created because: ",PXBRES(0),IORVOFF
  1. .D HELP1^PXBUTL1("CON") R OK:DTIME
  1. ;
  1. ;PX*1*115 - Add Problem File Pointer to V POV file
  1. I PXBRES>0 D
  1. . N DA,DIE,DR,PXBPLARR,PXBPLERR,PXBPLPOV
  1. . S DA=$O(PXBSKY(PXBPIECE,0))
  1. . S PXBPLPOV=9000010.07
  1. . K PXBPLARR,PXBPLERR
  1. . D GETS^DIQ(PXBPLPOV,(DA_","),.16,"I","PXBPLARR","PXBPLERR")
  1. . Q:$D(PXBPLERR)
  1. . I $L($G(PXBPLARR(PXBPLPOV,(DA_","),.16,"I"))) Q
  1. . ;
  1. . S DIE="^AUPNVPOV(",DR=".16////"_PXBRES
  1. . D ^DIE
  1. ;
  1. Q