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

VENPCCX.m

Go to the documentation of this file.
  1. VENPCCX ; IHS/OIT/GIS - EXTERNAL CALL TO PCC+ DATA EXTRACTOR ;
  1. ;;2.6;PCC+;;NOV 12, 2007
  1. ;
  1. ; ENTRY POINTS FOR , INFORMATIX BILLING PKG, VISIT PALNNING PKG, AND RPMS ER PKG
  1. ; 2.5 EXTENSIONS FOR THE SCHEDULING PKG (MULTIPLE VERSIONS)
  1. ;
  1. IMP(STG,NOQ) ; EP-VISIT PLANNER ENTRY POINT
  1. N DSTG,FLD,VAL,INIT,EXT,NIEN,TIME,PROV,EF,HS,DEPT,VISIT,VCN,VARS,%,DGBL
  1. N X,Y,I,PCODE,DISCPL,NIEN16,NURSE,APPT,SPGRP,DEFEF,DEFHS,DEPTIEN,PRV
  1. S DSTG="^VISIT^NURSE^PROV^EF^HS^DEPT^APPT^SPGRP^",INIT="",EXT="",DGBL=U_$C(68)_"IC(6)"
  1. F I=1:1:$L(STG,U) S X=$P(STG,U,I) I $L(X) D
  1. . S FLD=$P(X,";"),VAL=$P(X,";",2) I '$L(FLD) Q
  1. . I DSTG[(U_FLD_U) S:$L(INIT) INIT=INIT_U S INIT=INIT_X Q
  1. . I $L(EXT) S EXT=EXT_U
  1. . S EXT=EXT_X
  1. . Q
  1. GET F I=1:1:$L(INIT,U) D
  1. . S %=$P(INIT,U,I)
  1. . S X=$P(%,";"),Y=$P(%,";",2,99)
  1. . I $L(X) S @X=Y
  1. . Q
  1. S NIEN=+$G(NURSE)
  1. I '$G(PROV) S PROV=$$GP^VENPCCU I 'PROV S PROV=-1
  1. CHECK I $D(^AUPNVSIT(+$G(VISIT),0)),$D(^VA(200,+$G(NIEN),0)),$D(^VA(200,+$G(PROV),0)),$D(^VEN(7.41,+$G(EF),0)),$D(^VEN(7.95,+$G(DEPT),0))
  1. E S ERR="INVALID/MISSING PARAMETERS IN VP STRING" D ERR^VENPCC1(ERR) Q -1
  1. I $G(HS),'$D(^APCHSCTL(HS,0)) S ERR="INVALID HEALTH SUMMARY IDENTIFIER" D ERR^VENPCC1(ERR) Q -1
  1. MORE S VCN=$P($G(^AUPNVSIT(VISIT,11)),U,3) I '$L(VCN) S ERR="MISSING VCN" D ERR^VENPCC1(ERR) Q -1
  1. S TIME=$$NOW^VENPCCU
  1. S APPT=+$G(APPT)
  1. S NIEN16=$$PRV1^VENPCCU(NIEN) I 'NIEN16 Q -1
  1. S PCODE=$P($G(@DGBL@(NIEN16,9999999)),U,2)
  1. S %=+$P($G(@DGBL@(NIEN16,0)),U,4) S DISCPL=$P($G(^DIC(7,%,9999999)),U)
  1. S EXT=EXT_U_"DISCPL"_";"_DISCPL_U_"PCODE"_";"_PCODE
  1. S VARS="DUZ="_NIEN_U_"JOB="_$J_U_"DUZ(0)=@^DUZ(2)="_DUZ(2)
  1. I HS=0 S HS="",VARS=VARS_U_"EFONLY=1"
  1. I STG["^PROG;1^" S VARS=VARS_U_"OGFLAG=1"
  1. I $G(SPGRP) S VARS=VARS_U_"SPGRP="_SPGRP
  1. S DEFEF=$G(EF),DEFHS=$G(HS),PRV=$G(PROV),DEPTIEN=$G(DEPT)
  1. RUN D EN1^VENPCCA("J",1) ; PRIMARY ENTRY PROINT FOR CREATING THE PCC+ DATASET
  1. Q 1
  1. ;
  1. EN(VIEN,DIEN,PIEN) ; EP FROM BILLING PACKAGE CHECK IN MODULE
  1. S %=U_$C(68)_"IC(6)"
  1. I $D(^AUPNVSIT(+$G(VIEN),0)),$D(^ABSBDEPT(+$G(DIEN),0)),$D(@%@(+$G(PIEN),0))
  1. E W !,"Invalid registration parameters detected! No encounter form printed..." Q 0
  1. NEW %,PATIENT,VCN,DEFEF,DEFHS,DIR,X,Y,PRVIEN,CFIGIEN,SBFLAG,APPT,VISIT
  1. S DEPTIEN=+$P($G(^ABSBDEPT(DIEN,2)),U),VISIT=VIEN
  1. I '$D(^VEN(7.95,DEPTIEN,0)) W !,"Invalid or missing department! No encounter form printed..."
  1. I $P($G(^VEN(7.95,DEPTIEN,2)),U,7) Q 0 ; INACTIVE DEPT
  1. S PATIENT=$P(^AUPNVSIT(VIEN,0),U,5)
  1. I 'PATIENT W !,"Unable to locate a valid patient DFN! No encounter form printed..." Q 0
  1. S VCN=$P($G(^AUPNVSIT(VIEN,11)),U,3)
  1. I '$L(VCN) S VCN=$G(^AUPNVSIT(VIEN,"VCN"))
  1. I '$L(VCN) W !,"Missing VCN! Visit terminated..." Q 0
  1. S PRVIEN=$O(^VA(200,"A16",PIEN,0)) I 'PRVIEN W !,"Invalid provider IEN! No encounter form printed..."
  1. S CFIGIEN=$$CFG^VENPCCU,SBFLAG=1,APPT=""
  1. D EF^VENPCCA
  1. Q 1
  1. ;
  1. ABORT ; EP - DONT PRINT PCC+ FORMS
  1. W !,"Request to print PCC+ forms cancelled!"
  1. Q
  1. ;
  1. SC(PRV,VISIT,VCN,CSIEN) ; EP-SCHEDULING PKG INTERFACE FROM ASDV
  1. N %,%Y,CIEN,TOT,DEPT,CFIGIEN,DEPTIEN,DIC,X,Y,LOC,PGRP,VPFLAG,APPT,DEFEF,DEFHS,EFONLY,EXT,VARS,ELIG,TIME,DFN,%DT,DI,DISYS,DLAYGO
  1. N IO,IOF,IOM,ION,IOS,IOST,IOT,IOXY,%E,POP
  1. S PRV=+$$PRV^VENPCCU(+$G(PRV))
  1. W !!,"Want to print PCC+ forms"
  1. S %=1
  1. I $G(DUZ(2))=1665,$G(CSIEN)=30 S %=2 ; ANMC PATCH
  1. D YN^DICN I %'=1 Q
  1. S CFIGIEN=$$CFG^VENPCCU
  1. I $D(^DIC(40.7,+$G(CSIEN),0)),$D(^AUPNVSIT(+$G(VISIT),0)),$L($G(VCN)),CFIGIEN ; PATCHED IHS/ITSC/GIS 11/04/2004
  1. E W !,"Missing/Invalid PCC+ parameters! Request cancelled..." Q
  1. S (CIEN,TOT)=0
  1. F Q:TOT>1 S CIEN=$O(^VEN(7.95,CIEN)) Q:'CIEN I $P($G(^VEN(7.95,CIEN,0)),U,4)=CSIEN S TOT=TOT+1,DEPT=CIEN
  1. I TOT=1 S DEPTIEN=DEPT G:'$P($G(^VEN(7.5,+$G(DEPT),2)),U,7) EF
  1. CLINIC S %=$P($G(^VEN(7.5,CFIGIEN,0)),U,6) I '% G CL1
  1. I $P($G(^VEN(7.95,%,0)),U,4)=CSIEN,'$P(^(0),U,7) S Y=% G CL2
  1. W !,"Invalid clinic stop! Request cancelled...",!
  1. Q
  1. ;
  1. CL1 ; EP - GET CLINIC
  1. S DIC("A")="Clinic: "
  1. S DIC("S")="I '$P(^(2),U,7),$P(^(0),U,4)=CSIEN"
  1. S DIC="^VEN(7.95,",DIC(0)="AEQM",DLAYGO=19707.95 D ^DIC K DIC I Y=-1 D ABORT Q
  1. CL2 ; EP - GET PRV
  1. S DEPTIEN=+Y
  1. I '$G(PRV) S PRV=$P($G(^VEN(7.95,DEPTIEN,2)),U,2) I 'PRV S PRV=$P($G(^VEN(7.5,CFIGIEN,0)),U,13)
  1. I '$D(^VA(200,+$G(PRV),0)) W !,"Missing/invalid provider ID! Request cancelled..." Q
  1. EF ; EP - DEFAULT ENCOUNTER FORM
  1. S %=+$P($G(^VEN(7.95,DEPTIEN,2)),U,5) S DIC("B")=$P($G(^VEN(7.41,%,0)),U)
  1. S DIC("A")="Encounter form: "
  1. S DIC(0)="AEQM",DIC="^VEN(7.41,"
  1. D ^DIC K DIC
  1. I Y=-1 D ABORT Q
  1. S DEFEF=+Y
  1. I $P($G(^VEN(7.95,DEPTIEN,2)),U,13) S DEFHS="" G VARS ; NEVER PRINT HEALTH SUMMARY IN THIS CLINIC
  1. ; PATCHED BY GIS/OIT 10/17/05 ; PCC+ 2.5 PATCH 1
  1. HS ; EP - DEFAULT HEALTH SUMMARY ; PATCHED IHS/ITSC/GIS 11/04/2004
  1. K DIC
  1. S %=$P($G(^VEN(7.95,DEPTIEN,2)),U,6) I % S DIC("B")=$P($G(^APCHSCTL(%,0)),U)
  1. S DIC("A")="Health Summary: "
  1. S DIC(0)="AEQM",DIC="^APCHSCTL("
  1. D ^DIC K DIC
  1. I Y=-1 S EFONLY=1,DEFHS=""
  1. E S DEFHS=+Y
  1. VARS S APPT=$G(ASDDT),EXT=""
  1. W !,"Submitting request for PCC+ Encounter Form...."
  1. D QUEUE^VENPCCA(VISIT,DEPTIEN,"","","",PRV),DOCS^VENPCC ; 2.5 ADD PARAMETER FOR PROVIDER
  1. TMAN I $D(NOTASK) D EN1^VENPCCA("D")
  1. S VARS=$$PACK^VENPCC,EXT=$G(EXT)
  1. D EN1^VENPCCA("J")
  1. I $D(VPFLAG) K HSONLY,VPFLAG W !,"This information will be sent to the clinic..."
  1. Q
  1. ;
  1. SC53(VISIT,VCN,SDT) ; EP-SCHEDULING V5.3 INTERFACE FROM PROTOCOL
  1. ; VEN PRINT PCC+ ENCOUNTER FORM which is an item on protocol
  1. ; BSDAM APPOINTMENT EVENTS
  1. ; TO MAKE THE PCC+ DIALOGUE SHOW UP IN THE SCHEDULING CHECK IN PROCESS:
  1. ; THERE MUST BE A VISIT CREATED BY PIMS
  1. ; THE USER MUST HOLD THE 'VENZPRINT' KEY
  1. ; VER 5.3 OF PIMS MUST BE INSTALLED
  1. ; 'BSDAM APPOINTMENT EVENTS' & 'VEN PRINT PCC+ ENCOUNTER FORM' MUST BE IN THE PROTOCOL FILE
  1. ; 'VEN PRINT PCC+ ENCOUNTER FORM' MUST BE AN ITEM IN THE 'BSDAM APPOINTMENT EVENTS' PROTOCOL
  1. Q:'$G(VISIT) Q:$G(VCN)=""
  1. N CSIEN,PRV
  1. S CSIEN=$P(^AUPNVSIT(VISIT,0),U,8)
  1. S PRV=$O(^AUPNVPRV("AD",VISIT,-1))
  1. S PRV=$P($G(^AUPNVPRV(+PRV,0)),U)
  1. S ASDDT=SDT ; MAKES APPT DATE AVAILABLE
  1. D SC^VENPCCX($G(PRV),$G(VISIT),$G(VCN),$G(CSIEN))
  1. Q
  1. ;
  1. ER(VISIT,VCN,DEPTIEN,PRV,DEFHS,DEFEF,ACT) ; EP-ENTRY POINT FOR THE ER PACKAGE
  1. N OGONLY,HSONLY,EFONLY,%,OGFLAG,VARS,APPT
  1. I PRV,DEFEF,DEFHS,VISIT,VCN
  1. E Q 0
  1. I ACT'["EF",ACT'["HS",ACT'["OG" Q 0
  1. I ACT["OG" S OGFLAG=1
  1. I ACT["EF",ACT["HS",ACT["OG" G ER1
  1. I ACT'["EF",ACT'["HS" S OGONLY=1
  1. I ACT'["EF" S HSONLY=1
  1. I ACT'["HS" S EFONLY=1
  1. ER1 S VARS=$$PACK^VENPCC,%="J",APPT=0
  1. D EN1^VENPCCA(%)
  1. Q 1
  1. ;
  1. SS ; EP-SETUP THE SCHEDULING LINK
  1. N X,Y,LINE1,LINE2
  1. W !!,"Attempting to create the PCC+ link to the scheduling package..."
  1. S X=$T(+2^ASDV),Y=$T(VISIT+67^ASDV)
  1. I X[5.3 D SSP Q ; LINK TO SCHEDULING PKG VER 5.3
  1. I Y["PCCPLUS" W !,"The PCC+ link to the IHS Scheduling Pkg is already present!",!,"Request cancelled..." Q
  1. I X["5.0;",X["**5,7",Y["PCC"
  1. E W !,"Unable to find the IHS Scheduling Package, Version 5.0, Patch 7 on you system",!,"Request cancelled!!" Q
  1. S LINE1="PCCPLUS ; -- call to print PCC Encounter Form"
  1. S LINE2=" I $L($T(SC^VENPCCX)) I $O(^VA(200,+$G(DUZ),51,""B"",+$O(^DIC(19.1,""B"",""VENZSCH"",0)),0)) D SC^VENPCCX($G(ASDPROV),$G(ASDVST),$G(ASDVCN),$G(ASDCC))"
  1. D ZOSF^VENPCCU("ASDV","VISIT+67","LINE1","LINE2")
  1. I $T(VISIT+68^ASDV)["VENZSCH" W !,"The link to the scheduling package has been successfully inserted!!" Q
  1. W !,"Unable to insert the link to the scheduling package!! Request cancelled..."
  1. Q
  1. ;
  1. SSP ; EP-MAKE ENTRY IN THE PROTOCOL FILE FOR VER 5.3 OF SHCEDULING PKG
  1. N X,PIEN,DIC,DIK,DA,Y
  1. ; S X="PCC+ 2.5",PIEN=$O(^DIC(9.4,"B","PCC+ 2.5",0)) I 'PIEN Q ; VEN PACKAGE DOESNT EXIST
  1. S X="VEN PRINT PCC+ ENCOUNTER FORM"
  1. I $D(^ORD(101,"B",X)) Q ; ALREADY EXISTS
  1. I '$D(^ORD(101)) W !,"Can't find the PROTOCOL file" Q
  1. S DIC="^ORD(101,",DIC(0)="L",DLAYGO=101
  1. D ^DIC I Y=-1 Q
  1. S DA=+Y,DIK=DIC
  1. S ^ORD(101,DA,0)="VEN PRINT PCC+ ENCOUNTER FORM^Print PCC+ form at check-in^^A^"_DUZ_"^^^^^^^"_PIEN
  1. S ^ORD(101,DA,1,0)="^^4^4^"_DT_U
  1. S ^ORD(101,DA,1,1,0)="IHS protocol called by the Scheduling Event Driver (BSDAM APPOINTMENT"
  1. S ^ORD(101,DA,1,2,0)="EVENTS). This protocol will print PCC+ Encounter Forms at check-in if the"
  1. S ^ORD(101,DA,1,3,0)="proper parameters are set for the clinic involved, and PCC + is installed,"
  1. S ^ORD(101,DA,1,4,0)="and the user has the 'VENZPRINT' security key."
  1. S ^ORD(101,DA,20)="I $G(SDAMEVT)=4,$D(^XUSEC(""VENZPRINT"",DUZ)) D SC53^VENPCCX($G(BSDVSTN),$G(BSDVCN),$G(SDT))"
  1. S ^ORD(101,DA,24)=""
  1. S ^ORD(101,DA,99)=$H
  1. D IX1^DIK
  1. W !,"The Scheduling Pkg protocol has been installed"
  1. Q
  1. ;