| 1 | SDCOM ;ALB/RMO - Process Completion - Check Out ;12 MAR 1993 11:10 am ; 1/19/07 1:37pm | 
|---|
| 2 | ;;5.3;Scheduling;**15,60,105,132,466,495**;Aug 13, 1993;Build 50 | 
|---|
| 3 | ; | 
|---|
| 4 | EN(SDOE,SDMOD,SDCPHDL,SDCOMF) ;Complete Check Out Process | 
|---|
| 5 | ; Input  -- SDOE     Outpatient Encounter file IEN | 
|---|
| 6 | ;           SDMOD    1=Interactive and 0=Non-interactive | 
|---|
| 7 | ;           SDCPHDL  Check Out Completion Handle  [Optional] | 
|---|
| 8 | ; Output -- SDCOMF   0=Incomplete, 1=Complete, 2=Already Complete | 
|---|
| 9 | N SDEVTF | 
|---|
| 10 | I $P($G(^SCE(+SDOE,0)),"^",7) S SDCOMF=2 G Q | 
|---|
| 11 | I '$$CHK(SDOE) S SDCOMF=0 W:$G(SDMOD) !!,*7,">>> ",$$ORG^SDCOU($P($G(^SCE(+SDOE,0)),"^",8))," not checked out.  Required information missing." G Q | 
|---|
| 12 | I '$G(SDCPHDL) N SDATA,SDCPHDL S SDEVTF=1 D EVT^SDCOU1(SDOE,"BEFORE",.SDCPHDL,.SDATA) | 
|---|
| 13 | D UPD(SDOE) S SDCOMF=1 I $G(SDMOD) D MSG | 
|---|
| 14 | I $G(SDEVTF),$G(SDCPHDL) D EVT^SDCOU1(SDOE,"AFTER",SDCPHDL,.SDATA) | 
|---|
| 15 | Q Q | 
|---|
| 16 | ; | 
|---|
| 17 | CHK(SDOE) ;Check if Process is Complete for Check Out | 
|---|
| 18 | ; Input  -- SDOE     Outpatient Encounter file IEN | 
|---|
| 19 | ; Output -- Process is Complete for Check Out | 
|---|
| 20 | ;           1=Yes and 0=No | 
|---|
| 21 | N DFN,SDCHK,SDCL,SDCLOEY,SDCOQUIT,SDCTI,SDDA,SDOE0,SDOEP,SDORG,SDSCDI,SDT,SCPROCA | 
|---|
| 22 | S SDOE0=$G(^SCE(+SDOE,0)),SDT=+SDOE0,DFN=+$P(SDOE0,"^",2),SDSCDI=$P(SDOE0,"^",3),SDCL=+$P(SDOE0,"^",4),SDOEP=+$P(SDOE0,"^",6),SDORG=+$P(SDOE0,"^",8),SDDA=+$P(SDOE0,"^",9) | 
|---|
| 23 | S SDCHK=1 | 
|---|
| 24 | I SDOEP S SDCHK=0 G CHKQ | 
|---|
| 25 | I SDORG=1,'$$CODT^SDCOU(DFN,SDT,SDCL) D  G CHKQ:'SDCHK | 
|---|
| 26 | .I $$REQ^SDM1A(SDT)="CO" S SDCHK=0 Q | 
|---|
| 27 | .D DT^SDCO1(DFN,SDT,SDCL,SDDA,0,"",.SDCOQUIT) | 
|---|
| 28 | I $$REQ^SDM1A(SDT)'="CO" G CHKQ | 
|---|
| 29 | I SDORG=1,'$$CLINIC^SDAMU(SDCL) G CHKQ | 
|---|
| 30 | ;I "^1^2^"[("^"_SDORG_"^"),$$INP^SDAM2(DFN,SDT)="I" G CHKQ  ;SD*5.3*466 allow checks for inpatients as outpatients | 
|---|
| 31 | D CLASK^SDCO2(SDOE,.SDCLOEY) | 
|---|
| 32 | I $D(SDCLOEY) D  G CHKQ:'SDCHK | 
|---|
| 33 | .S SDCTI=0 F  S SDCTI=$O(SDCLOEY(SDCTI)) Q:'SDCTI  I $G(SDCLOEY(SDCTI))="" S SDCHK=0 | 
|---|
| 34 | ;sent encounter to ASCD for review | 
|---|
| 35 | I $D(SDCLOEY(3)) D | 
|---|
| 36 | .N SCDXS,SCAMDX,DXS D GETDX^SDOE(SDOE,"SCDXS") | 
|---|
| 37 | .S DXS=0 F  S DXS=$O(SCDXS(DXS)) Q:'DXS  S SCAMDX(+SCDXS(DXS))="" | 
|---|
| 38 | .I $O(SCAMDX(0)) D ST^SDSCAPI(SDOE,.SCAMDX) | 
|---|
| 39 | I $$PRASK^SDCO3(SDOE),'$$PRV^SDOE(SDOE) S SDCHK=0 G CHKQ | 
|---|
| 40 | I $$DXASK^SDCO4(SDOE),'$$GETPDX^SDOE(SDOE) S SDCHK=0 G CHKQ | 
|---|
| 41 | I '$$CPT^SDOE(SDOE) S SDCHK=0 G CHKQ | 
|---|
| 42 | CHKQ Q +$G(SDCHK) | 
|---|
| 43 | ; | 
|---|
| 44 | UPD(SDOE) ;Update Check Out Process Completion Date | 
|---|
| 45 | ; Input  -- SDOE     Outpatient Encounter file IEN | 
|---|
| 46 | ; Output -- Update Check Out Process Completion Date | 
|---|
| 47 | N DA,DE,DIE,DQ,DR | 
|---|
| 48 | G UPDQ:'$D(^SCE(+SDOE,0)) | 
|---|
| 49 | S DA=+SDOE,DIE="^SCE(",DR=".07///NOW" | 
|---|
| 50 | D ^DIE | 
|---|
| 51 | UPDQ Q | 
|---|
| 52 | ; | 
|---|
| 53 | MSG ;Check Out Message | 
|---|
| 54 | W !!?8,"...checked out ",$$FTIME^VALM1($P($G(^SCE(+SDOE,0)),"^",7)) | 
|---|
| 55 | Q | 
|---|