[613] | 1 | PXSCH2 ;ISL/JVS - SCHEDULING REDESIGN PROCEDURES-CPT #2 ;7/25/96 09:12
|
---|
| 2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**73**;Aug 12, 1996
|
---|
| 3 | ; Variable List
|
---|
| 4 | ;
|
---|
| 5 | ; CPTNOD0 The data for the ^TMP("PXK",$J, globals
|
---|
| 6 | ; CPTNOD12 The data for the ^TMP("PXK",$J, globals
|
---|
| 7 | ; CPTNOD8 The data for the ^TMP("PXK",$J, globals
|
---|
| 8 | ; PXSCPT Pointer to the precedure being processed
|
---|
| 9 | ; PXSCPTQ Quantity of the above procedure
|
---|
| 10 | ; PXSDX The main Diagnosis
|
---|
| 11 | ; PXSINDX Index for the "PXK" global
|
---|
| 12 | ; PXSPNN resolved provider narrative
|
---|
| 13 | ; PXSPNN(1) "" "" ""
|
---|
| 14 | ; PXSPR The main Provider
|
---|
| 15 | ; XP,XPFG Scratch Variables
|
---|
| 16 | ;
|
---|
| 17 | SET ;Set the TMP("PXK",$J, GLOBAL
|
---|
| 18 | CPT ;Create nodes for Procedures
|
---|
| 19 | S PXSCPT=0 F S PXSCPT=$O(PXS("PROC",PXSCPT)) Q:PXSCPT="" D
|
---|
| 20 | .S PXSINDX=PXSINDX+1
|
---|
| 21 | .S PXSCPTQ=$G(PXS("PROC",PXSCPT))
|
---|
| 22 | .D CPTNOD
|
---|
| 23 | Q
|
---|
| 24 | CPTNOD ;
|
---|
| 25 | S CPTNOD0="",$P(CPTNOD0,"^")=$G(PXSCPT)
|
---|
| 26 | S $P(CPTNOD0,"^",2)=$G(PXS("PATIENT")) ;PATIENT
|
---|
| 27 | S $P(CPTNOD0,"^",3)=$G(PXS("VISIT")) ;VISIT
|
---|
| 28 | S PXSFILE=9000010.18
|
---|
| 29 | K ^UTILITY("DIQ1",$J)
|
---|
| 30 | S DIC=81,DA=PXSCPT,DR=2 D EN^DIQ1
|
---|
| 31 | S PXSZPN=$G(^UTILITY("DIQ1",$J,81,DA,2))
|
---|
| 32 | K ^UTILITY("DIQ1",$J),DIC,DA,DR
|
---|
| 33 | S $P(CPTNOD0,"^",4)=+$$PROVNARR^PXAPI(PXSZPN,PXSFILE) ;PROVIDER NARR
|
---|
| 34 | Q:$P(CPTNOD0,"^",4)=-1
|
---|
| 35 | ;S $P(CPTNOD0,"^",5)=$G(PXSDX) ;DIAGNOSIS
|
---|
| 36 | S $P(CPTNOD0,"^",16)=$G(PXSCPTQ) ;QUANTITY
|
---|
| 37 | S CPTNOD12=""
|
---|
| 38 | ;S $P(CPTNOD12,"^")=$G(PXS("DATE")) ;DATE AND TIME
|
---|
| 39 | ;S $P(CPTNOD12,"^",3)=$G(PXS("STOP CODE ORIG")) ;CLINIC STOP
|
---|
| 40 | ;S $P(CPTNOD12,"^",4)=$G(PXSPR) ;PROVIDER
|
---|
| 41 | ;S $P(CPTNOD12,"^",5)=$G(PXS("CLINIC")) ;HOSPITAL LOCATION
|
---|
| 42 | ;S $P(CPTNOD12,"^",7)=$P(CPTNOD0,"^",3) ;SECONDARY VISIT
|
---|
| 43 | ;--DECIDED TO REMOVE THE CATEGORY
|
---|
| 44 | ;S CPTNOD8=""
|
---|
| 45 | ;K ^UTILITY("DIQ1",$J) S DIC=81,DA=PXSCPT,DR=3,DIQ(0)="EIN" D EN^DIQ1
|
---|
| 46 | ;I $G(^UTILITY("DIQ1",$J,81,DA,3,"I")) D
|
---|
| 47 | ;.S PXSZPN=$G(^UTILITY("DIQ1",$J,81,DA,3,"E"))
|
---|
| 48 | ;.S CPTNOD8=+$$PROVNARR^PXAPI(PXSZPN,PXSFILE)
|
---|
| 49 | ;.I CPTNOD8'>0 S CPTNOD8=""
|
---|
| 50 | ;K ^UTILITY("DIQ1",$J),DIC,DA,DR,DIQ
|
---|
| 51 | S ^TMP("PXK",$J,"CPT",PXSINDX+1,0,"AFTER")=$G(CPTNOD0)
|
---|
| 52 | S ^TMP("PXK",$J,"CPT",PXSINDX+1,0,"BEFORE")=""
|
---|
| 53 | S ^TMP("PXK",$J,"CPT",PXSINDX+1,1,1,"BEFORE")=""
|
---|
| 54 | S ^TMP("PXK",$J,"CPT",PXSINDX+1,12,"AFTER")=$G(CPTNOD12)
|
---|
| 55 | S ^TMP("PXK",$J,"CPT",PXSINDX+1,12,"BEFORE")=""
|
---|
| 56 | S ^TMP("PXK",$J,"CPT",PXSINDX+1,802,"AFTER")=""
|
---|
| 57 | S ^TMP("PXK",$J,"CPT",PXSINDX+1,802,"BEFORE")=""
|
---|
| 58 | S ^TMP("PXK",$J,"CPT",PXSINDX+1,"IEN")=""
|
---|
| 59 | S ^TMP("PXK",$J,"SOR")=8
|
---|
| 60 | S ^TMP("PXK",$J,"VST",1,"IEN")=$G(PXS("VISIT"))
|
---|
| 61 | CPTDUP ;Look for duplicates on the same visit
|
---|
| 62 | N XPFG,XP,PXKSEQ,PXKMOD
|
---|
| 63 | S (XPFG,XP)=0
|
---|
| 64 | F Q:XPFG S XP=$O(^AUPNVCPT("AD",PXS("VISIT"),XP)) Q:XP="" D
|
---|
| 65 | .I $P(^AUPNVCPT(XP,0),"^",1)=PXSCPT D
|
---|
| 66 | ..S ^TMP("PXK",$J,"CPT",PXSINDX+1,0,"BEFORE")=$G(^AUPNVCPT(XP,0))
|
---|
| 67 | ..S PXKSEQ=0
|
---|
| 68 | ..F S PXKSEQ=$O(^AUPNVCPT(XP,1,PXKSEQ)) Q:'PXKSEQ D
|
---|
| 69 | ...S PXKMOD=^AUPNVCPT(XP,1,PXKSEQ,0)
|
---|
| 70 | ...S ^TMP("PXK",$J,"CPT",PXSINDX+1,1,PXKSEQ,"BEFORE")=PXKMOD
|
---|
| 71 | ..S ^TMP("PXK",$J,"CPT",PXSINDX+1,12,"BEFORE")=$G(^AUPNVCPT(XP,12))
|
---|
| 72 | ..S ^TMP("PXK",$J,"CPT",PXSINDX+1,802,"BEFORE")=+$G(^AUPNVCPT(XP,802))
|
---|
| 73 | ..S ^TMP("PXK",$J,"CPT",PXSINDX+1,"IEN")=XP
|
---|
| 74 | ..S XPFG=1
|
---|
| 75 | Q
|
---|